모든 클래스의 부모(extends Object)
모든 클래스의 최상위 클래스 Object
package test;
public class Book {
// 클래스 Book
// 멤버변수 int bookNumber, String bookTitle
// 생성자 (두 멤버변수 받는 생성자)
int bookNumber;
String bookTitle;
public Book(int bookNumber, String bookTitle) {
this.bookNumber = bookNumber;
this.bookTitle = bookTitle;
}
}
package test;
public class Test1 {
public static void main(String[] args) {
// 객체생성
// 참조변수 출력
// 참조변수.toString() 출력
Book b = new Book(1,"어린왕자");
System.out.println(b); // test.Book@7c30a502
System.out.println(b.toString()); // test.Book@7c30a502
}
}
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
public String toString() {
return bookNumber+","+bookTitle;
Book b = new Book(100,"어린왕자");
System.out.println(b);// 100, 어린왕자
System.out.println(b.toString()); // 100, 어린왕자
// alt+shift+s 대문자 S
@Override
public String toString() {
return "Book [bookNumber=" + bookNumber + ", bookTitle=" + bookTitle + "]";
}
자동으로 생성됨
Book b = new Book(100,"어린왕자");
System.out.println(b);// Book [bookNumber=100, bookTitle=어린왕자]
System.out.println(b.toString()); // Book [bookNumber=100, bookTitle=어린왕자]
equals() 메서드
주소에 해당하는 실제 기억장소 값이 (물리적) 같다
Book book1 = new Book(1,"삼국지");
System.out.println(book1);
Book book2 = new Book(1,"삼국지");
System.out.println(book2);
// 주소비교
System.out.println(book1==book2); // false
// 주소에 해당하는 인스턴스(기억장소) 비교
System.out.println(book1.equals(book2)); // false
Book book3 = book1;
// 주소에 해당하는 인스턴스(기억장소) 비교
System.out.println(book1==book3); // true
System.out.println(book1.equals(book3)); // true
package test;
public class Student {
//멤버변수
String name;
int number;
//생성자
public Student(String name,int number ) {
this.name=name;
this.number=number;
}
}
Student hong1 = new Student("홍길동",100);
Student hong2 = new Student("홍길동",100);
Student hong3 = hong1;
System.out.println(hong1==hong2); // false
System.out.println(hong1.equals(hong2)); // false
System.out.println(hong1==hong3); // true
System.out.println(hong1.equals(hong3)); // true
//String, Integer equals()
String str1=new String("abc");
String str2=new String("abc");
System.out.println(str1==str2); // false
// equals() 재정의 => 기억장소는 틀려도 내용 일치하면 true
System.out.println(str1.equals(str2)); // true
Integer i1 = new Integer(100);
Integer i2 = new Integer(100);
System.out.println(i1==i2); // false
// equals() 재정의 => 기억장소는 틀려도 내용 일치하면 true
System.out.println(i1.equals(i2)); // true
학생번호 같으면 true
@Override
public boolean equals(Object obj) {
if(obj instanceof Student) {
Student student=(Student)obj;
if(this.number == student.number) {
return true;
}else {
return false;
}
} return false;
}
Student hong1 = new Student("홍길동",100);
Student hong2 = new Student("홍길동",100);
System.out.println(hong1==hong2); // false
System.out.println("재정의 :"+hong1.equals(hong2)); // true