본문 바로가기
Java

super 키워드 this 키워드 사용해서 메소드 호출하기 / 코드 간소화하기

by 자유코딩 2017. 9. 15.

 

super 를 사용해서 작성한 코드를 this 를 사용해서 고쳐보았습니다.

 

this 키워드는 메소드가 들어있는 클래스를 지칭하는 키워드 입니다.

 

this로 가리킬 클래스

{

사용할 메소드 0(파라미터 1)

{

this(파라미터 1에 대입 될 값, 파라미터2에 대입 될 값 , 파라미터3에 대입 될 값)

}

사용할 메소드 1(파라미터 1, 파라미터 2, 파라미터3)

{

System.out.println("메소드가 호출 되었습니다.");

}

}

 

 

this(파라미터 1에 대입 될 값, 파라미터2에 대입 될 값 , 파라미터3에 대입 될 값)

 

이렇게 코드를 작성하게 되면 파라미터의 개수가 3개인 사용할 메소드 1사용할 메소드 0에서 호출해서 사용하게 됩니다.

 

여기서 this 는 this로 가리킬 클래스를 가리킵니다.

 

이렇게 this 를 쓰게 되면 this 로 가리킬 클래스 안에 있는 메소드를 호출 할 수 있습니다.

 

변경 전 , 변경 후 모두 같은 기능을 하는 코드입니다.

 

변경 전

this.teacherNo = teacherNo;

this.schoolName = schoolName;

 

 

변경 전 this 키워드를 사용해서 2줄을 작성해주어야 했습니다.

 

변경 후

 

this("이름없음",-1,"주소없음",teacherNo,schoolName);

System.out.println("call Teacher(int,String));

 

이렇게 코드를 간소화 할 수 있습니다.

this () 괄호 안의 파라미터의 개수를 이용해서 아래에 동일한 개수를 갖는 객체를 참조합니다.

 

 

super 키워드와 this 키워드

 

사진을 보시면 super 와 this 키워드를 사용해서 상위 클래스 또는 자신의 메소드를 호출하고 있습니다.

 

super.print("1");

super 를 사용해서 상위 클래스를 참조합니다.

그리고 상위 클래스의 메소드 print 를 호출합니다.

 

this.print("2");

 

this를 사용해서 부모 클래스가 아닌 자기 자신을 참조합니다.

그리고 해당 클래스 안의 메소드 print를 호출합니다.

 

설명이 부족한 부분은 없으셨나요? 댓글이나 이메일로 질문해주시면 답변 드리겠습니다. 감사합니다.

 

이메일 : forsqna@gmail.com

댓글