모든 클래스의 조상클래스이다.
public boolean equals(Object obj):ojb가 이 객체와 같은지 검사
public String toString()"객체의 문자열 표현을 반환
public int hashCode():객체에 대한 해쉬 코드를 반환한다.
equals() 메소드
object에서 제공되는 equlas()는 == 연산자를 사용하여서
객체의 주소가 동일한지를 검사하여 true 또는 false를 반환한다.
class Circle {
private int radius;
public Circle(int radius){
this.radius = radius;
}
public int getRadius() {
return radius;
}
//함수 오버라이딩 + object가 최고조상 + 다형성 + instanceof + 다운 캐스팅
@Override
public boolean equals(Object obj) {
if( obj instanceof Circle) {
Circle c1 = (Circle) obj;
if( this.radius == c1.getRadius())
return true;
}
return false;
}
public static void main(String[] args){
Circle circle1 = new Circle(10);
Circle circle2 = new Circle(10);
System.out.println(circle1);
System.out.println(circle2);
if(circle1 == circle2)
System.out.println("2개의 원은 같습니다.");
else {
System.out.println("2개의 원은 같지 않습니다.");
}
if(circle1.equals(circle2))
System.out.println("2개의 원은 같습니다.");
else {
System.out.println("2개의 원은 같지 않습니다.");
}
}
}
toString() 메소드
객체의 문자 정보 리턴
class Student {
private String name;
private String gender;
Student(String name,String gender){
this.name = name;
this.gender = gender;
}
public String toString() {
return "이름은 " + name + "이고 성별은 " + gender + "입니다.";
}
}
public class StudentTest{
public static void main(String[] args) {
Student s= new Student("홍길동","남자");
System.out.println(s);
}
}
String 클래스
문자열을 구성하는 문자들을 내부에 저장한다.
public static void main(String[] args) {
String s1 = "Java";
String s2 = "Java";
String s3 = new String("java");
String s4 = new String("java");
if(s1 == s2) {
System.out.println("같습니다.");
}else {
System.out.println("다릅니다.");
}
if(s3 == s4) {
System.out.println("같습니다.");
}else {
System.out.println("다릅니다.");
}
//문자열 비교하기
if(s3.equals(s4)) {
System.out.println("같습니다.");
}else {
System.out.println("다릅니다.");
}
}