Search

Object

class Person implements Cloneable { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } // toString() ์žฌ์ •์˜ @Override public String toString() { return "Person{name='" + name + "', age=" + age + "}"; } // equals() ์žฌ์ •์˜ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Person person = (Person) obj; return age == person.age && name.equals(person.name); } // hashCode() ์žฌ์ •์˜ @Override public int hashCode() { return name.hashCode() + age; } // clone() ์žฌ์ •์˜ (์˜ˆ์™ธ ์ฒ˜๋ฆฌ ํ•„์š”) @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } public static void main(String[] args) { try { Person p1 = new Person("Aloha", 25); Person p2 = new Person("Aloha", 25); Person p3 = (Person) p1.clone(); // ๋ณต์ œ System.out.println("p1: " + p1); System.out.println("p2: " + p2); System.out.println("p1 == p2: " + (p1 == p2)); // false (๋‹ค๋ฅธ ๊ฐ์ฒด) System.out.println("p1.equals(p2): " + p1.equals(p2)); // true (๋™์ผํ•œ ๊ฐ’ ๋น„๊ต) System.out.println("p1.hashCode(): " + p1.hashCode()); System.out.println("p2.hashCode(): " + p2.hashCode()); System.out.println("p3 (clone): " + p3); System.out.println("p1 == p3: " + (p1 == p3)); // false (๋‹ค๋ฅธ ๊ฐ์ฒด) System.out.println("p1.equals(p3): " + p1.equals(p3)); // true (๋™์ผํ•œ ๊ฐ’ ๋น„๊ต) } catch (CloneNotSupportedException e) { e.printStackTrace(); } } }
Java
๋ณต์‚ฌ