Java_생성자/내부클래스

Minki CHO·2022년 11월 3일
0

CodeStates

목록 보기
10/43

1. list

생성자
내부 클래스

2. remind

1) 생성자

: 객체 생성하는 역할을 하는 클래스의 구성요소
: 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드

New 키워드 : 인스턴스 생성을 담당
생성자 : 인스턴스 변수들을 초기화하는데 사용되는 특수한 메서드

생성자 특징
ⅰ. 생성자 이름 = 클래스 이름
ⅱ. 리턴 타입이 없음

기본 구조

클래스명(매개변수){ 
…
}
  • 생성자도 오버로딩 가능하므로, 한 클래스 내에 여러 개의 생성자 존재 가능

2) 기본 생성자

*모든 클래스에는 반드시 하나 이상의 생성자 존재 필요

기본 생성자 기본 구조

클래스명(){}
Ex. DefaultConst(){} // DefaultConst 클래스의 기본 생성자

3) 매개변수가 있는 생성자

: 매개변수가 있는 생성자는 매서드처럼 호출 시에 해당 값을 받아 인스턴스 초기화에 사용됨

4) this()

: 생성자의 상호 호출에 사용하는 메서드
: this() 메서드는 자신이 속한 클래스에서 다른 생성자를 호출하는 경우에 사용

this() 메서드 사용 시 충족시켜야하는 문법 요소
ⅰ. this() 메서드는 반드시 생성자 내부에서만 사용할 수 있음
ⅱ. this() 메서드는 반드시 생성자의 첫 줄에 위치해야 함

5) this

(this()와 전혀 다른 쓰임새를 가짐!)
인스턴스 변수와 매개변수를 이름만으로 구분하기 어려워질 때, 이를 구분해주기 위한 용도로 사용되는 키워드
이것은 인스턴스 변수다!

this는 인스턴스 자신을 가리키며, this를 통해서 인스턴스 자신의 변수에 접근할수 있음
(참조변수를 통해 인스턴스 멤버에 접근할 수 있는 것 처럼!)

6) 내부 클래스

: 클래스 내에 선언된 클래스
: 외부 클래스와 내부 클래스가 서로 연관되어 있을 떄 사용

기본 구조

Class Outer{ //외부 클래스

Class Inner{
//인스턴스 내부 클래스
}

Static class StaticInner{
//정적 내부 클래스
}

Void run(){
Calass LocalInner{
//지역 내부 클래스
}
}
}

내부 클래스 종류
ⅰ. 인스턴스 내부 클래스
ⅱ 정적 내부 클래스
ⅲ. 지역 내부 클래스

ⅰ. 인스턴스 내부 클래스
선언 위치 : 외부 클래스의 멤버변수 선언 위치에 선언(멤버 내부 클래스)
사용가능 변수 : 외부 인스턴스 변수, 외부 전역변수

ⅱ 정적 내부 클래스
선언 위치 : 외부 클래스의 멤버변수 선언 위치에 선언(멤버 내부 클래스)
사용가능 변수 : 외부 전역변수

ⅲ. 지역 내부 클래스
선언 위치 : 외부 클래스의 메서드나 초기화 블럭 안에 선언
사용가능 변수 : 외부 인스턴스 변수, 외부 전역변수

ⅳ. 익명 내부 클래스
선언 위치 : 클래스의 선언과 객체 생성을 동시에 하는 일회용 익명 클래스
사용가능 변수 : 외부 인스턴스 변수, 외부 전역변수

7) 멤버 내부 클래스

: 인스턴스 내부 클래스와 정적 내부 클래스

8) 지역 내부 클래스

: 클래스의 멤버가 아닌 메서드 내에서 정의되는 클래스
: 지역 변수와 유사하게 메서드 내부에서만 사용가능하기 때문에 일반적으로 메서드 안에서 선언 후 바로 객체 생성해서 사용

profile
Developer

0개의 댓글