<출처 - https://kephilab.tistory.com/92 >
2.1 getClass()
object.getClass() // getClass()쓰는 방법
public class HelloJava {
public static void main(String[] args) {
GetClassMethod getClass = new GetClassMethod();
System.out.println(getClass.getClass()); // class ch01.GetClassMethod
}
}
2.2 hashCode()
object.hashCode() // hashCode() 사용법
public class HelloJava {
public static void main(String[] args) {
GetClassMethod getHash = new GetClassMethod();
System.out.println(getHash.hashCode()); // 1588970020
}
}
2.3 toString()
object.toString() // toString() 사용법
public class HelloJava {
public static void main(String[] args) {
GetClassMethod toString = new GetClassMethod();
System.out.println(toString.toString()); // ch01.GetClassMethod@5eb5c224
}
}
2.4 equals()
equals()메서드는 두 개체가 같은지 여부를 확인합니다.
equals()메서드는 단일 매개 변수를 사용합니다. ( obj - 현재 객체와 비교할 객체 )
두개체가 같을경우 true / 다를 경우 false
obj1.equals(obj2) // equals() 사용법
예제코드
public class HelloJava {
public static void main(String[] args) {
GetClassMethod equal1 = new GetClassMethod();
GetClassMethod equal2 = new GetClassMethod();
System.out.println(equal1.equals(equal2)); // false
GetClassMethod equal3 = equal1;
System.out.println(equal1.equals(equal3)); // true
}
}
TIP) 비교연산자 "==" , equals() 에대해
- == : 주솟값을 비교합니다.
- equals() : 주솟값이 아닌 객체끼리 내용을 비교합니다.
String str1 = "abc"; String str2 = str1; String str3 = new String("abc"); // == 연산자는 주소를 비교합니다. System.out.println(str1 == str2); // true // str2 에 st1 값을 넣었으므로 주소를 같이 공유합니다. System.out.println(str1 == str3); // false // str1 과 str3는 각각 생성 되었으므로 주소가 다릅니다. // equals() 는 내용을 비교합니다. System.out.println(str1.equals(str2)); // ture System.out.println(str1.equals(str3)); // true // 내용을 비교하기떄문에 abc 내용이 같으므로 true 가 반환됩니다.
2.5 clone()
clone() 메서드는 개체의 얕은 복사본을 만듭니다.
clone()메서드는 매개 변수를 사용하지 않습니다.
객체의 복사본을 반환
clone은 얕은 복사로써 원본을 변경하면 다른 복사된 객체에도 영향을 끼친다.
object.clone() // clone() 사용법
예제코드
class Main implements Cloneable {
// declare variables
String name;
int version;
public static void main(String[] args) {
// create an object of Main class
Main obj1 = new Main();
// initialize name and version using obj1
obj1.name = "Java";
obj1.version = 14;
// print variable
System.out.println(obj1.name); // Java
System.out.println(obj1.version); // 14
try {
// create clone of obj1
Main obj2 = (Main)obj1.clone();
// print the variables using obj2
System.out.println(obj2.name); // Java
System.out.println(obj2.version); // 14
}
catch (Exception e) {
System.out.println(e);
}
}
}
TIP) 깊은복사 얕은 복사
- 얕은 복사는 저장된 객체의 주솟값을 복사해오는 것이고
- 깊은 복사는 저장된 객체의 값을 복사하여 새로운 객체를 형성하는것으로 다른 주솟값을 가진다.
참고