Java

5. 클래스 정리2 : final, 접근 제한자,

문정훈 2022. 1. 20. 23:25

1.  fiinal필드와 상수, final 메소드, final 클래스, final 지역변수

1) final 필드

final 키워드는 인스턴스 필드를 생성시 바로 값을 할당해 다시는 못바꾸게 하는 방법과 final 인스턴스 필드를 값을주지 않고 선언한 후 생성자를 통해 딱 한번 초기화 할 수 있다. 

 

2) 상수
Static final는 정적 필드를 생성시 값을 주어 다시는 못바꾸게 하는 방법과 파이널 정적 필드를 값을 주지 않고 선언 후 정적 블록을 통해 딱 한번 초가화 할 수 있다.

이는 상수를 선언하는 방법으로 사용된다.

 

3) final 메소드 

- final 메소드는 상속은 되나 자식 클래스에서 재정의할 수 없는 메소드이다.

 

4) final 클래스
- final 클래스는 상속할 수 없는 클래스 이다.

 

5) 지역변수에 final 키워드
- method에서 final 변수는 선언 후 그 메소드 아무곳에서 초기화를 딱 한번 할 수 있다. 

 

 

 

2. 접근 제한자

1) public 

적용 대상 : 클래스, 필드, 생성자, 메소드

접근 제한이 없다.

같은 패키지에서 선언된 public class는 객체를 생성하고 바로 접근이 가능하다.

서로 다른 패키지에 선언된 public class는 클래스를 import 한 뒤 객체를 생성하여 접근할 수 있다. 

 

2) protected 

적용 대상 : 필드, 생성자, 메소드

이 접근 제한자는 만약 같은 패키지에 선언되어 있다면 public과 같이 그냥 객체를 생성하여 접근할 수 있다.

하지만 다른 패키지에 선언된 protected 접근 제한은 import를 한다면 상속 받은 자식 객체에서만 허용하게 된다. 

 

3) default

적용 대상 : 클래스, 필드, 생성자, 메소드

같은 패키지 내애 default라면 public과 같이 그냥 객체를 생성하여 접근하면 됨

다른 패키지에 default라면 import를 해도 접근이 안됨

 

4) private

적용 대상 : 필드, 생성자, 메소드

private을 선언한 클래스 내부에서만 private에 접근이 가능하다. 

이것이 외에는 모든 외부 클래스에서는 접근이 불가능하다.