Object 클래스는 모든 클래스의 최상위 클래스
가장 많이 사용되는 method - overriding 해서 사용
equals - 객체가 가진 값을 비교할 때 사용. 오버라이딩해서 기준을 정해줘야함
toString - 객체가 가진 값을 문자열로 반환
hashCode - 객체의 해시코드 값 반환
오버라이딩 Overriding 같은 이름을 가진 메서드를 다시 정의하여 사용 - (메소드) 덮어쓰기 정도로 생각
"메소드 오버라이딩" 이렇게 묶어서 해야 다른 오버로딩이랑 안헷갈린다.
import java.util.Objects;
public class Student {
String name;
int number;
@Override
public String toString() {
return "Student [name=" + name + ", number=" + number + "]";
}
@Override
public int hashCode() {
return Objects.hash(number);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
return Objects.equals(number, other.number);
}
public static void main(String[] args) {
Student s1 = new Student();
s1.number = 1;
Student s2 = new Student();
s2.number = 1;
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
System.out.println(s1);
/*
* 32
32
false
true
Student [name=null, number=111]
*/
}
}
https://programmers.co.kr/learn/courses/9/lessons/249
java.lang: import를 하지 않고 사용하는 기본 패키지
wrapper class: 8개의 기본 타입을 객체화 boolean > Boolean
Object, String, StringBuffer, StringBuilder, System, Math
auto boxing
int i = 5;
Integer i2 = new Integer(5);
Integer i3 = 5 // auto-boxing
int i4 = i3.intValue();
int i5 = i3; // auto-unboxing
Math 생성자가 private이고 static method로 사용
<interface> Collection
+ add(Object) : boolean
+ iterator() : iterator
+ size() : int
<interface> Iterator
+ hasNext() : boolean
+ next() : Object
List 순서
+ get(int) : Object
Set 중복x
+ add(Object) : boolean
Map 키 중복x
+ get(Object) : Object
+ keySet() : Set - key에 중복x
+ put(Object, Object) : void