IT/Java

자바 Object toString, equals 오버라이딩

노마드오브 2018. 7. 25. 00:07

package test;



class Dog {

String name;

int age;

String gender;

Dog(String name, int age, String gender) {

this.name = name;

this.age = age;

this.gender = gender;

}


void makeNoise() {

System.out.println("멍멍~~!");

}


@Override

public String toString() { // Object클래스에서 정의되어 있는 equals 메소드를 오버라이딩

StringBuilder builder = new StringBuilder();

builder.append("Dog [name=");

builder.append(name);

builder.append(", age=");

builder.append(age);

builder.append(", gender=");

builder.append(gender);

builder.append("]");

return builder.toString();

}


@Override

public boolean equals(Object obj) {  // Object클래스에서 정의되어 있는 equals 메소드를 오버라이딩

boolean result = false;

Dog dog = (Dog) obj;

if (name.equals(dog.name) && age==dog.age) {

result = true;

} else {

result = false;

}

return result;

}

}



public class Test {


public static void main(String[] args) {

Dog poodle = new Dog("푸들", 3, "수컷");

Dog pome = new Dog("포메라니안", 5, "암컷");

Dog pome2 = new Dog("포메라니안", 5, "수컷");

System.out.println(poodle.toString());

System.out.println(pome);

if (pome.equals(pome2)) {

System.out.println("같은 강아지");

} else {

System.out.println("다른 강아지");

}

} // main()의 끝


}