티스토리 뷰

Programing/JAVA

[JAVA] 자바 this, super

alcmskfl17 2020. 7. 29. 23:46

자바에서 this 키워드는 자기 자신을 의미한다.

자기 자신을 의미한다는 것임 무슨 뜻일까?

 

| this

 

animal 클래스는 인스턴스 변수로 name과 type을 가지고 있다. 또한 생성자에서 매개변수로 name과 type을 받고 있는데, 이때 인스턴스 변수 name과 type을 구별하기 위해 this 키워드를 사용한다.

this 키워드를 사용함으로써 this.name 은 인스턴스 변수를 지칭하고,

name은 받은 매개변수 그대로 매개변수 name을 지칭하게 된다.

만약 매개변수 name 값으로 spell가 들어온다면,

아무 값도 없는 인스턴스 변수 name에 spell라는 값이 들어가게 된다.

 

| this()

Animal이라는 생성자는 2개 있다.

생성자 1에서 this()를 사용하고 있는데,

이는 자신(Animal)의 다른 생성자를 호출하게 된다.

생성자1을 실행할 경우 this(DefaultName, DefaultType)를 사용했기 때문에

매개변수로 DefaultName, DefaultType 을 사용하여

생성자2를 호출하게 된다.

이렇게 생성된 Animal 객체는

name 에는 DefaultName이라는 값을,

type 에는 DefaultType이라는 값을 가지게 된다.

 


자바에서는 C에 있는 포인터가 없지만 this 키워드를 사용하여 포인터 비슷한 역할을 수행할 수 있다. 다른 키워드로 super 라는 키워드가 있는데 this 와의 차이점은 부모 클래스를 지칭한다는 점에서 차이가 있다. 만약 B 클래스가 A 클래스로부터 상속을 받고, B 클레스에서 A 에 해당하는 필드값(메소드도 가능)을 지칭하고 싶다면 super.필드명 을 사용하여 부모 클래스의 필드값을 지칭할 수 있다.

 

'Programing > JAVA' 카테고리의 다른 글

자바 오버로딩과 오버라이딩의 차이점은?  (0) 2020.08.20
[JAVA] 자바 배열 선언  (0) 2020.07.30
JAVA 자바 - 데이터 타입  (0) 2020.07.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함