본문 바로가기
Backend/Java

Java - 접근 제한자

by 퐁고 2023. 2. 19.
반응형

접근 제한자

  • 객체의 필드를와 메소드가 외부로 노출되지 않도록 도와주는 역할
  1. public
  2. protected
  3. default
  4. private

public

  • 제한 범위 없음 같은 패키지 뿐만 아니라 다른 패키지에도 사용가능

protected

  • 같은 패키지 혹은 자식 객체에만 사용 가능

default

  • 접근 제한자를 생략했다면 기본으로 default
  • 같은 패키지에서만 사용가능

private

  • 객체 내부, 클래스 내부에서만 사용가능

Getter와 Setter

  • 객체의 필드를 외부에서 마음대로 읽고 변경한다면 객체의 무결성이 깨질 수 있다. 이러한 문제 때문에 객체 지향 프로그래밍에서는 직접적인 외부에서의 필드 접근을 막고, 메소드를 이용해 필드에 접근하는 것을 선호한다.
  • private 접근 제한을 가질 때 사용하는 메서드
// getter 메서드 - 읽을 때

private double speed;

public double getSpeed(){
		double km = speed * 1.6;
		return km;		
}

getter, setter 메서드 기본 사용법

private String fieldName;

public String getFieldName(){
		return fieldName;
}

public void setFeildName(String fieldName){
		this.fieldName = fieldName;
}

//필드 타입이 boolean인 경우는 get으로 시작하지않고 is로 시작 isFieldName()

싱글톤 패턴

  • 애플리케이션 전체에서 단 한 개의 객체만 생성해서 사용하고 싶다면 싱글톤 패턴 사용
  • 생성자를 private 접근 제한해서 외부에서 new 연산자로 생성자를 호출할 수 없도록 막음
private static 클래스 singleton = new 클래스();

댓글