자바 중급 026. 상속, 오브젝트 클래스 (object 클래스)- 모든 클래스의...

자바 중급 026. 상속, 오브젝트 클래스 (object 클래스)- 모든 클래스의...

반응형

안녕하세요. 스마트 팩토리입니다

자바 중급 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)

이에 대한 설명은 각 단계에 맞게 적용될 시기에 포스팅 하도록 하겠습니다.

반응형

from http://sf2020.tistory.com/86 by ccl(A) rewrite - 2021-09-12 04:27:43