자바 API 도큐먼트
- 자바에서 기본적으로 제공하는 라이브러리
프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음
- API 도큐먼트
- 쉽게 api를 찾아 이용할 수 있도록 문서화한 것
- html 페이지로 작성되어 있어 웹브라우저로 바로 볼 수 있다.
java.lang 패키지
- 자바 프로그램의 기본적인 클래스를 담은 패키지
- 포함된 클래스와 인터페이스는 import 없이 사용 가능
Object 클래스
- 자바의 최상위 클래스
- 객체 비교 equal() 메서드
1) 기본적으로 == 연산자와 동일한 결과를 리턴(주소값 비교)
2) 논리적 동등을 위해 오버라이딩 해서 사용한다
ch) 논리적 동등 : 객체의 value 값이 동일한 것
Member m1 = new Member();
Member m2 = new Member(); // 서로 다른 두 객체의 주소값은 다르다
System.out.println(m1==m2); // false
System.out.println(m1.equals(m2)); // false, 오버라이딩하지 않은 equals는 주소값을 비교하기 때문에 false 출력
class Member{}
class Member1{
private String name;
public Member(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj){ // equals 오버라이딩
if(obj instance of Member1){ // 같은 클래스를 참조하는 지 확인
Member1 m1 = (Member1) obj; // 속성 비교를 위해 type casting
if(this.name.equals(m1.name)){
return true;
}
}
return false;
}
- 해시코드 hashCode()
1) 해시코드
- 객체의 메모리 번지를 이용해 식별할 수 있는 하나의 정수값을 만들어 리턴 한 것
2) 논리적 동등 비교시 hashCode() 오버라이딩의 필요성
- 컬렉션 프레임워크의 HashSet, HashMap, HashTable과 같은 클래스는
두 객체가 동등한 객체인지 판단할 때 사용된다.
Product p1 = new Product("사과",3000);
Product p2 = new Product("바나나",4000);
Product p3 = new Product("바나나",4000);
System.out.println(p2.hashCode()==p3.hashCode()); // true 출력
class Product{
private String name;
private int price;
public Product(String name, int price) {
this.name = name;
this.price = price;
}
@Override
public int hashCode() { // hashCode 오버라이딩
int code = name.hashCode()+price;
return code;
}
}
- toString()
1) 클래스의 패키지와 클래스명 + 16진수 주소를 리턴
2) 참조변수만 호출했을 때, 나타나는 데이터와 동일하다
3) toString()을 재정의하면 참조변수도 동일한 값으로 변경된다.
Player p01 = new Player("홍길동",0.342);
System.out.println(p01); // 홍길동 : 0.342 출력
System.out.println(p01.toString); // 홍길동 : 0.342 출력
class Player{
private String name;
private double record;
public Player(String name, double record) {
this.name = name;
this.record = record;
}
@Override
public String toString() {
return this.name+" : "+this.record;
}
}