java.lang
package ex01_object_class;
public class Person {
public void eat() {
System.out.println("먹는다");
}
}
package ex01_object_class;
public class Main {
public static void main(String[] args) {
// Object 클래스는 모든 객체(변수)를 저장할 수 있다.
Object p = new Person();
// Object 클래스 타입의 객체는 항상 다운캐스팅해서 사용해야 한다.
if(p instanceof Person) {
((Person) p).eat();
} // 먹는다
}
}
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
User user = new User();
System.out.println(user); // User@7637f22 → System.out.println(user.toString());
String message = "Hello " + user;
System.out.println(message); // Hello User@7637f22 → String message = "Hello" + user.toString();
package ex01_object_class;
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void eat() {
System.out.println("먹는다");
}
@Override
public String toString() {
return "이름 : " + name;
// System.out.println(person);에서 사용됨
}
@Override
public boolean equals(Object anObject) { // p1.equals(p2)에서 사용됨
Person p = (Person) anObject;
return name.equals(p.name);
}
}
package ex01_object_class;
public class Main {
public static void main(String[] args) {
// Object 클래스는 모든 객체(변수)를 저장할 수 있다.
Object p = new Person();
// Object 클래스 타입의 객체는 항상 다운캐스팅해서 사용해야 한다.
if(p instanceof Person) {
((Person) p).eat(); // 먹는다
}
// 새로운 Person(toString() 확인용)
Person person = new Person();
person.setName("James");
System.out.println(person); // 이름 : James
// 새로운 Person(equals() 확인용)
// name이 같으면 동일한 객체로 인식하기
Person p1 = new Person();
Person p2 = new Person();
p1.setName("kim");
p2.setName("kim");
System.out.println(p1.equals(p2)); // 동일한 name은 true
}
}
반환값
먹는다
이름 : James
true