본문 바로가기
JS/정리

[JAVA] 접근제한자

by oda 2023. 1. 11.

접근 제한자

- 중요한 필드와 메소드가 외부로 노출되지 않도록하여 객체의 무결성을 유지하기 위해 접근 제한자를 사용한다.

- 접근 제한자는 public, protected, private 의 3가지 종류가 있다.

접근 제한자

 

클래스의 접근 제한

- 클래스를 선언할 때 public 접근 제한자를 생략하면(default) 클래스는 다른 패키지에서 사용할 수 없다.

- 클래스를 선언할 때 public 접근 제한자를 붙이면 클래스는 같은  패키지 뿐만 아니라 다른 패키지에서도 사용할 수 있다.

 

생성자의 접근 제한

- 생성자는 public, default, private 접근 제한을 가질 수 있다.

생성자 접근 제한

필드와 메소드의 접근 제한

- 필드와 메소드는 public, default, private 접근 제한을 가질 수 있다.

필드와 메소드의 접근 제한


Setter

- 데이터를 검증해서 유효한 값만 필드에 저장하는 메소드

- 같은 클래스 내부에 있는 private 필드에 접근해서 값을 변경할 수 있도록한다.

Getter

- 필드값이 객체 외부에서 사용하기 부적절한 경우, 적절한 값으로 변환해서 리턴할 수 있는 메소드

- 같은 클래스 내부에 잇는 private 필드에 접근해서 값을 가져온다.

객체의 필드(데이터)를 외부에서 마음대로 읽고 변경할 경우 객체의 무결성(결점이 없는 성질)이 깨질 수 있다.
객체 지향 프로그래밍에서는 직접적인 외부에서의 필드 접근을 막고 대신 메소드를 통해 필드에 접근하는 것을 선호한다. => private를 사용하여 접근을 제한한다.
Getter/Setter 메소드 자동생성
이클립스에서 클래스에 선언된 필드에 대해 자동으로 Getter와 Setter메소드를 생성시키는 기능이 있다.
필드 선언 후 메뉴에서 Source - Generate Getter and Setters 선택 - 선언된 필드에 대한 Getter와 Setter를 생성할 필드 선택 - Generate

 

싱글톤 패턴

- 생성자를 private 접근 제한해서 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아서 외부에서 마음대로 객체를 생성하지 못하게한다.

- 대신 싱글톤 패턴이 제공하는 정적 메소드를 통해 간접적으로 객체를 얻을 수 있다.

 

 

* static으로 선언한 필드, 클래스는 하나만 생성이 된다.

- 즉, 값이 변경되면 모두 변경되고, 변경하지 않는다면 마지막 변경값을 유지한다.

(- static으로 선언하면 같은 주소를 공유하는 클래스, 필드를 만들 수 있다.)

'JS > 정리' 카테고리의 다른 글

[자바스크립트] DOM(2)  (0) 2022.12.20
[자바스크립트] DOM  (0) 2022.12.19
[자바스크립트] 객체(2)  (0) 2022.12.16
[자바스크립트] 객체 (1)  (0) 2022.12.16
[자바스크립트] 이벤트  (0) 2022.12.15

댓글