Java/패스트캠퍼스

Object 클래스

hs_developer 2022. 6. 9. 02:22

java.lang 패키지

 

-프로그래밍시 import 하지 않아도 자동으로 import 됨

 

-import.java.lang.*;

 

-많이 사용하는 기본 클래스들이 속한 패키지

 

-String, Integer, System..

 

 

모든 클래스는 Object 클래스를 상속 받는다

 

-java.lang.Object 클래스

 

-모든 클래스는 Object에서 상속 받고, Object 클래스의 메서드 중 일부는 재정의 해서 사용할 수 있음

 

-컴파일러가 extends Object를 추가함

class Student -> class Student extends Object

 

 

toString() 메서드

 

-객체의 정보를 String으로 바꿔서 사용 함

 

-String이나 Integer 클래스는 이미 재정의 되어 있음

 

 

toString() 메서드 재정의 예제

데미안, 헤르만 헤세
class Book
{
	private String title;
	private String author;
	
	public Book(String title, String author)
	{
		this.title = title;
		this.author = author;
	}
	
	public String toString()
	{
		return title + ", " + author;
	}
}

public class BookTest {

	public static void main(String[] args) {
		
		Book book = new Book("데미안", "헤르만 헤세");
		
		System.out.println(book);
	}
}

 

 

Object 클래스의 메서드 활용

 

equals() 메서드

-두 인스턴스 주소 값을 비교 해 true/false 반환

 

-재정의 하여 두 인스턴스가 논리적으로 동일함을 구현 함

 

-인스턴스가 다르더라도 논리적으로 동일한 경우 true를 반환하도록 재정의 할 수 있음

 

 

 

clone() 메서드

-객체의 원본을 복제하는데 사용

 

-생성 과정의 복잡한 과정을 거치지 않고 복제할 수 있음

 

-clone() 메서드 사용 시 객체의 정보(멤버 변수 값 등..)가 동일한 또 다른 인스턴스가 생성되는 것이므로, 객체 지향 프로그램에서의 정보 은닉, 객체 보호 환점에서 위배될 수 있음

 

-cloneable 인터페이스 명시해서 사용