Notice
Recent Posts
Recent Comments
Link
bdfgdfg
제어자, 캡슐화/은닉성 본문
반응형
제어자
제어자는 클래스,변수 또는 메서드의 선언부에 사용되어 부가적인 의미를 부여.
크게 여기서 알아볼건 public,protected,default, private등이고, 그 외 static,final,abstract,synchronized,volatile등이 있다.
접근 제어자
접근제어자는 클래스,멤버변수,메소드,생성자에 사용되며 이름 그대로 접근 수준의 레벨을 부여하는 것.
private - 같은 클래스 내에서만 접근이 가능.
default - 같은 패키지 내에서만 접근이 가능. (참고로 접근제어자가 지정되어 있지않다면 이 접근제어자가 기본값.)
protected - 같은 패키지 및 다른 패키지의 자손클래스에서 접근이 가능.
public - 접근 제한이 전혀없음.
접근 제어자를 이용하는 이유는 캡슐화/은닉성과 연관이 있다.
자동차 객체의 시동을 켜는 메소드가 존재한다고 보자.
Car car = new Car();
car.startCar();
100%는 이런식으로 사용을 하겠고, 또한 그게 맞지만 만약 Car클래스의 내부 멤버변수가 public 접근 제어자를 가져 쉽게 접근이 가능하다면.
Car car = new Car();
car.engine = false;
위와 같이 메소드를 통해 정상적으로 오류없이 동작하게끔 하는 코드를 내부적으로 수정해버려 의도치않은 오류가 발생할 수 있다.
그렇기에 내부 멤버는 숨기는게 best이되, 만약 내부 멤버값을 외부에 공개해야한다면 get(), 수정해야한다면 set()함수등을 통해서 안전하게 접근하는게 좋다.
반응형
'웹프로그래밍 > Java' 카테고리의 다른 글
자바 java.lang패키지 및 오토박싱&언박싱 (0) | 2023.07.26 |
---|---|
자바의 예외처리(exception handling) (0) | 2023.07.26 |
package와 import (0) | 2023.07.26 |
자바의 상속,다형성,인터페이스 (0) | 2023.07.26 |
비동기&동기 / 블로킹&논블로킹 IO (0) | 2023.07.26 |
Comments