반응형
클래스 기초 및 생성자
this와 super 레퍼런스 변수
- super
상속관계에 있어서 자식 클래스에서 오버라이딩된 부모클래스의 메소드를 호출하기 위해 사용한다.
상속받은 자식클래스의 인스턴스가 생성되면 부모클래스를 지칭하는 레퍼런스 변수인 super를 사용할 수 있다.
EX) super.메소드명(), super.멤버변수명
- this
상속받은 자식클래스 자신을 가리키는 레퍼런스 변수이다.
자식클래스의 인스턴스가 생성될 때 자동으로 생성된다.
예제
상속과 관련된 생성자 문제
- 클래스 상속과 관련되어 생성자 작성시 주의해야 될 사항
- 생성자는 상속되지 않는다.
- 자식클래스는 자동적으로 부모클래스의 디폴트 생성자를 호출한다.
- 부모클래스에 있는 인자 생성자가 정의되었을 경우 디폴트 생성자를 같이 작성하지 않으면 자식클래스를 컴파일할 때 에러가 발생한다.
- 부모 클래스에 있는 인자 생성자를 정의하려면 반드시 인자가 없는 생성자도 같이 정의하도록 하며 내용은 기술하지 않아도 된다.
- 부모클래스에서 생성자에 아무것도 정의하지 않았을 경우라도 자식클래스 컴파일시 특별한 문제가 없다.
- 부모클래스에 디폴트 생성자가 정의되어 있지 않으로 경우 자동으로 클래스 내부에서 디폴트 생성자를 정의한다.
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 |