안녕하세요. 스마트 팩토리입니다
자바 중급 026. 상속, 오브젝트 클래스 (object 클래스)- 모든 클래스의 조상 클래스에 대해 알아보겠습니다.
1.오브젝트 클래스(Object class)
가. Object클래스
- 상속 계층에서 최상위 클래스
- 모든 클래스는 Object 를 가지고 있으면 11개의 메소드를 전부 상속 받는다.
나. Object 클래스 예시
<< Objectclass2.java 실행 클래스 >>
class A에 멤버 변수와 멤버 클래스를 위와 같이 작성하였습니다.
A n1=new A(5,3);
n1객체를 생성하여
plus() 메소드를 실행하면
두수 의 합이 8이 출력되는 것을 볼 수 있습니다.
System.out.println(n1);
System.out.println(n1.toString());
여기서 n1을 출력한 값이 대략 주소가 나오는 것을 볼 수 있는데 아래 n1. toString() 메소드를 실행해도 동일한 값이 나온다는 것을 볼 수 있습니다. n1. 은 객체이기 때문에 해당 클래스의 멤버를 접근할 수 있습니다.
이는 class A 다음에 extends Object를 넣어도 동일한 결과값이 나오는 것을 볼 수 있습니다. 이는 결과적으로 Object 클래스를 상위 조상으로 가지고 있다는 것을 말합니다. 상속관계를 생각해 보면
A extends B 인 경우
A가 부모 클래스, B가 자식 클래스입니다.
이런 부모 자식 , 자식 관계에서 최고 조상은 Object클래스 입니다.
package exampleObjectclass;
class A {
int x;
int y;
A(int x, int y){ --> 생성자
this.x=x;
this.y=y;
}
void plus() {
int c=x+y;
System.out.println(" 두 수의 합:"+ c);
}
}
public class Objeclass2 {
public static void main(String[] args) {
A n1=new A(5,3);
n1.plus();
System.out.println(n1);
System.out.println(n1.toString());
}
}

다. toString() 메소드 선언 내용
System.out.println(n1);
System.out.println(n1.toString());
의 값이 결과적으로 주소값 비슷므리한 값으로 나오는 것을 볼 수 있는데
해당 toString() 메소드가 가지고 있는 선언내용을 보면 어느정도 이해할 수 있습니다.
class A extends Object 로 보통 object클래스 부분은 생략되면 있는 것으로 간주되어
오브젝트 클래스 안에 있는 11개의 메소드 중 하나인 to Stiring 메소드를 사용하여 해당 값이 출력되게 됩니다.
그 값을 확인해 보면
to String () 를 선택--> 오른쪽 마우스 클릭
Open Declaration 클릭( 단축키 f3)
toString() 메소드가 선언된 내용을 볼수가 있는데 그 중 하나에 리턴값으로 다음과 같이 선언되어 있어서 출력되게 됩니다.
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }

다. Object클래스의 11개의 메서드
객체를 생성하고 그 다음 멤버 접근을 하기 위해서 . 연산자 다음에 ctrl+space를 누르면
접근할 수 있는 멤버들을 볼 수 있습니다.
Object 로 된 부분이 오브젝트 클래스에 선언되어서 접근할 수 있는 것들입니다.
clone();
equals(Object obj);
finalize();
getClass();
hashCode();
notify();
notifyAll();
toString();
wait();
wait(long timeoutMills);
wiat(long timeoutMills,int nanos)
이에 대한 설명은 각 단계에 맞게 적용될 시기에 포스팅 하도록 하겠습니다.

'Java' 카테고리의 다른 글
자바 중급 028. 오버라이딩(overriding) 조건-재정의- Object 클래스 toStirng ()메소드 (0) | 2021.09.13 |
---|---|
자바 중급 027. 오버라이딩(overriding)-재정의 (0) | 2021.09.12 |
자바 중급 025. final 필드 (0) | 2021.09.11 |
자바 중급 024. 상속(inheritance) -부모클래스 , 자식클래스 관계(2) (0) | 2021.09.10 |
자바 중급 023. 상속(inheritance) -부모클래스 , 자식클래스 관계(1) (0) | 2021.09.10 |
댓글