본문 바로가기
Develop/Java

JAVA this, super 수정자

by J0DEV 2021. 8. 8.
반응형

thisSuper.zip
다운로드


클래스 기초 및 생성자

this와 super 레퍼런스 변수

  • super

상속관계에 있어서 자식 클래스에서 오버라이딩된 부모클래스의 메소드를 호출하기 위해 사용한다.

상속받은 자식클래스의 인스턴스가 생성되면 부모클래스를 지칭하는 레퍼런스 변수인 super를 사용할 수 있다.

EX) super.메소드명(), super.멤버변수명
  • this

상속받은 자식클래스 자신을 가리키는 레퍼런스 변수이다.

자식클래스의 인스턴스가 생성될 때 자동으로 생성된다.

예제

 

상속과 관련된 생성자 문제

  • 클래스 상속과 관련되어 생성자 작성시 주의해야 될 사항
  1. 생성자는 상속되지 않는다.
  2. 자식클래스는 자동적으로 부모클래스의 디폴트 생성자를 호출한다.
  3. 부모클래스에 있는 인자 생성자가 정의되었을 경우 디폴트 생성자를 같이 작성하지 않으면 자식클래스를 컴파일할 때 에러가 발생한다.
  4. 부모 클래스에 있는 인자 생성자를 정의하려면 반드시 인자가 없는 생성자도 같이 정의하도록 하며 내용은 기술하지 않아도 된다.
  5. 부모클래스에서 생성자에 아무것도 정의하지 않았을 경우라도 자식클래스 컴파일시 특별한 문제가 없다.
  6. 부모클래스에 디폴트 생성자가 정의되어 있지 않으로 경우 자동으로 클래스 내부에서 디폴트 생성자를 정의한다.

static 수정자

static 수정자 개요

  • static 수정자란?

클래스 내부의 변수 또는 메소드를 인스턴스 생성 없이도 메모리에 생성시킬 수 있도록 하는 문법 > 특정한 클래스의 인스턴스에 속한 것이 아니라 해당 클래스 전체에 속한 것이다.

  • static 수정자의 특징

static수정자를 사용한 멤버변수나 메소드는 클래스를 통해 생성된 모든 인스턴스에 접근할 수 있다.

멤버변수나 메소드를 포함한 클래스 자체의 내용에 모든 인스턴스가 공유하므로, 전역변수처럼 사용되어진다.

static수정자는 멤버변수 또는 메소드에 대해 사용할 수 있다.


예제

예제

final 수정자

final 수정자 개요

  • final 수정자란?

‘마지막’의 의미로서 세 가지 경우에 대해서 사용되며 약간씩 의미가 다르다.

1. 클래스명이 앞에 붙는 경우
- 이 클래스의 상속을 허락하지 않게 한다.

2. 메소드명 앞에 붙는 경우
- 이 메소드가 소속된 클래스를 상속 받은 자식클래스에서 오버라이딩을 하지 못하도록 한다.


3. 변수명 앞에 붙는 경우
- 이 변수에 값이 초기화되면 그 값을 변화시킬 수 없게 된다.

 

예제

 

 

반응형

'Develop > Java' 카테고리의 다른 글

JAVA 자바중요클래스  (0) 2021.08.09
JAVA 추상클래스, 인터페이스, 내부클래스  (0) 2021.08.08
JAVA 상속과 접근제어  (0) 2021.08.08
JAVA 메소드, 생성자  (0) 2021.08.08
JAVA 객체지향 프로그래밍  (0) 2021.08.06