Search
Duplicate
😀

06. 접근 제한자 (Access Modifier)

태그

클래스 Modifier

접근 권한과 Modifier를 지정하지 않으면, 같은 패키지 내의 클래스에서만 접근이 가능하다
서로 다른 패키지의 클래스에 접근하기 위해서는 public으로 지정해야한다.

접근 제한자(Access Modifier)

접근 제한자란 클래스, 변수, 메서드에 접근할 수 있는 권한을 나타내기 위해 사용된다.
접근 관련 modifier를 통해 정보 은닉(Information Hiding)을 구현할 수 있다.

클래스와 final

클래스를 선언할 때 클래스 앞에 final 예약어를 추가하면 상속을 금지하는 의미이다.

변수 Modifier

변수에 대한 접근 권한이나 활용 방법 제어
modifier 미지정 시 같은 패키지 내의 클래스에만 접근이 가능한 객체 변수라는 의미를 가짐

Static 변수 (클래스 변수)

모든 인스턴스에서 공통된 값을 가지는 변수의 경우에는 멤버 변수(인스턴스 변수)로 선언하는 경우에는 불필요한 메모리 낭비가 발생할 수 있다.
객체를 통해 클래스 변수를 변경하는 경우 다른 모든 객체들을 통해 호출되는 클래스 변수도 변경된 상태로 바뀐다.

변수와 final

final이 붙은 변수는 단 한 번 초기화가 가능하다. 하지만 그 이후에는 값을 변경할 수 없는 상수이다. (C++의 const)

메서드 Modifier

Static Method

클래스로부터 인스턴스를 생성하지 않고 호출이 가능한 Method
인스턴스 변수는 인스턴스를 생성해야만 메모리가 잡히기 때문에 클래스 메서드에서는 사용이 불가능하다
클래스 메서드에서는 클래스 메서드만 호출이 가능함!

메서드와 final

자식 class에서 메서드를 재정의할 수 없도록 하는 예약어

추상 Method & 추상 Class

메서드의 시그니쳐(리턴 타입, 메서드명, 매개변수)만 정의되고 구체적인 행위, 즉 블록({}) 부분은 정의되지 않는 메서드를 의미
추상 메서드를 선언할 때는 abstract 예약어는 메서드 앞에 붙인다.
메서드의 구체적인 행위를 표현하는 블록을 생략한다.
추상 메서드를 포함하고 있는 클래스는 추상 클래스로 선언되어야 한다.
하지만 추상 클래스가 추상 메서드를 포함하지 않을수도 있다.