4. 제어자

Lumi·2021년 6월 22일
0

자바의 정석

목록 보기
22/35
post-thumbnail

1. 제어자란

클래스 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 제공

1. 접근 제어자 : public, protected, default, private
2. 그 외 : static, final, abstract, native 등등

2. static - 클래스의, 공통적인

1. 멤버변수

  • 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 된다.
  • 클래스변수는 인스턴스를 생성하지 않고도 사용 가능하다.
  • 클래스가 메모리에 로드될 떄 생성된다.

2. 메서드

  • 인스턴스를 생성하지 않고도 호출이 가능한 static메서드가 된다.
  • static메서드 내에서는 인스턴스멤버들을 직접 사용할 수 없다.

3. final - 마지막의, 변경될 수 없는

변수에 사용할시 : 상수가 된다.
메서드에 사용할시 : 오버라딩이 불가
클래스에 사용시 : 상속으로 사용 불가능

생성자를 이용한 final멤버 변수의 초기화
생성자를 만들떄 상수값을 지정해줌으로써 활용이 가능(매개변수를 이용)

4. abstract - 추상의, 미완성의

메서드의 선언부만 작성하고 실제 수행내용을 구현하지 않은 추상 메서드를 선언하는데 사용된다.
-> 인스턴스를 생성할 수 없다.
후에 배울내용

5. 접근제어자

private : 같은 클래스 내에서만 접근이 가능
default : 같은 패키지 내에서만 접근이 가능
protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능
public : 제약이 없음.

접근 범위가 넓은쪽에서 좁은 쪽의 순으로 왼쪽부터 나열하면
public > protected > default > private

접근제어자를 사용 하는 이유

  • 외부로부터 데이터를 보호하기 위해서
  • 외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서

보통 멤버변수를 private로 선언하고 멤버변수의 값을 읽고 변경할수 있는 메서드를 public로 지정함으로써 간접적으로 멤버변수를 다루는 방법이 주로 이용된다.
-> 메서드의 구현부를 통해서 다양한 조건을 넣어줄수 있기 떄문에

생성자의 접근 제어자
생성자를 private로 지정을 함으로써 외부에서 생성자에 접근을 할수가 없게 만들수 있는데 이를 싱글톤 패턴 이라고 한다.

이 방법을 통해서 인스턴스의 갯수를 제한할수 있다.
-> 만들어지는 인스턴스마다 주소값이 동일하다.

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글