본문 바로가기
Java

자바 중급 028. 오버라이딩(overriding) 조건-재정의- Object 클래스 toStirng ()메소드

by Smart Factory in 2020 2021. 9. 13.
728x90
반응형

안녕하세요. 스마트 팩토리입니다. 
자바 중급 028. 오버라이딩(overriding) 조건-재정의- Object  클래스 toStirng ()메소드 에 대해 알아보겠습니다

 

1.오버라이딩(overriding)-재정의- Object  클래스 toStirng ()메소드 

가. Object 클래스 to Stirng()메소드 오버라이딩 조건

 (1) 오바라이딩 조건
  - 메서드의 선언부는 동일해야 한다. 
  - 리턴값, 메소드명, 매개변수가 동일
  - 구현부만 다르게 작성

나.  Object 클래스 to Stirng()메소드 오버라이딩 예시 

<< 오버라이딩 전>>

PapaPoint2 클래스를 작성하고 객체를 생성해 보았습니다. 

Object클래스는 최고 조상이기 때문에 extends Object 클래스가 생략된 것이라고 보면 됩니다. 

System.out.println(pa1.toString());
System.out.println(pa1);

오브젝트 클래스의 toStirng ()메소드를 실행하니 결과값으로 주소값이 나오는 것을 볼 수 있습니다. 

즉 객체의 주소가 나오도록 되어 있습니다. 

이를 해당 클래스에서 오버라이딩 해보겠습니다. 

package ex07_01;

class PapaPoint2 {
int x;
int y;

PapaPoint2(int x, int y){
this.x=x;
this.y=y;
}
}

public class ex07_02tostringoverride {
public static void main(String[] args) {
   
PapaPoint2 pa1=new PapaPoint2(5,3);
System.out.println(pa1.toString());
System.out.println(pa1);

}

}

 

 

<< 오버라이딩 하기>>

클래스 내 마우스를 놓고  ctrl+space를 클릭

--> tostring()-String-Override method in 'Object' 클릭

 

.

         toString() {~} 이하 { } 이 부분을 변경합니다. 

      위처럼 변경했습니다. 

 

 

 

toStirng() 메소드 부분을 오버라이딩을 하면 객체를 출력했을때 바로 메소드 수정 부분의 실행문을 출력하게 됩니다. 
toStirng() 메소드 작성을 하지 않고 객체명만 사용해도 되기에 코드가 훨씬 간단해 집니다.

 

package ex07_01;

class PapaPoint2 extends Object{
int x;
int y;

PapaPoint2(int x, int y){
this.x=x;
this.y=y;

   }
@Override
public String toString() {
return "(x,y) = "+"( "+x+","+ y + ")";
}
}
 

public class ex07_02tostringoverride {
public static void main(String[] args) {
   
PapaPoint2 pa1=new PapaPoint2(5,3);
System.out.println(pa1.toString());
System.out.println(pa1);

}
}
728x90
반응형

댓글