본문 바로가기
Java

접근 제어자 (Access Modifier), Getter, Setter

by 우 석 2024. 1. 8.

접근 제어자

멤버 또는 클래스에 사용되며, 외부에서 접근하지 못하도록 제한합니다.

클래스, 멤버 변수, 메서드, 생성자에 사용되고, 지정되어 있지 않으면 default입니다.

 

  • public : 접근 제한이 전혀 없이 누구나 접근할 수 있습니다.
  • protected : 같은 패키지 내에서, 다른 패키지의 자손클래스에서 접근이 가능합니다.
  • default : 같은 패키지 내에서만 접근이 가능합니다.
  • private : 같은 클래스 내에서만 접근이 가능합니다.
접근제어자를 붙이지 않으면 package 멤버로 간주됩니다.
package 멤버는 같은 패키지에 속하는 클래스로부터의 접근만을 허용합니다.
멤버: 클래스를 구성하는 필드와 메서드(생성자는 멤버에 속하지 않습니다.)

 

 

접근 제어자 사용

  • 접근제어자는 클래스 내부에 선언된 데이터를 보호하기 위해서 사용합니다.
  • 유효한 값을 유지하고, 함부로 변경하지 못하도록 접근을 제한할 수 있습니다.
  • 객체의 무결성 즉, 변경이 없는 상태를 유지하기 위해 접근 제어자를 사용합니다.

 

사용가능한 접근 제어자

  • 클래스: public, default
  • 메서드, 멤버변수: public, private , protected, default
  • 지역변수: X

 


객체의 private 필드를 읽어오거나 저장하는 방법 -> Getter, Setter

Getter

외부에서 객체의 private 한 필드를 읽을 필요가 있을 때 Getter 메서드를 사용합니다.

get + 필드이름

public String getModel() {
    return model;
}
public String getColor() {
    return color;
}
public double getPrice() {
    return price;
}

 

Setter

외부에서 객체의 private 한 필드를 저장/수정할 필요가 있을 때 Setter 메서드를 사용합니다.

set + 필드이름

public void setModel(String model) {
    this.model = model;
}
public void setColor(String color) {
    this.color = color;
}
public void setPrice(double price) {
    this.price = price;
}

'Java' 카테고리의 다른 글

Java 문자열 처리 이해: String vs. StringBuffer vs. StringBuilder  (0) 2024.01.10
상속 (Inheritance)  (0) 2024.01.09
List  (0) 2024.01.05
메서드(method)  (0) 2024.01.04
객체지향 프로그래밍  (2) 2024.01.03