[JAVA] 접근제어자 (01.13)

늘보·2025년 1월 13일

Java

목록 보기
13/17
post-thumbnail

접근 제어자

  • 제어자는 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여해준다.
  • 맴버 또는 클래스에 사용하여 외부에서 접근하지 못하도록 제한한다.
  • 지정해주지 않으면 default로 지정된다.

접근 제어자 종류

public: 접근 제한이 전혀없다.
protected: 같은 패키지 내, 다른 패키지의 자손 클래스에 접근이 가능하다.
default: 같은 패키지 내에서만 접근이 가능하다.
private 같은 클래스 내에서만 접근이 가능하다.

💡위의 접근제어자를 제외하고는 static, final, abstract가 있다.


접근 제어자 사용 및 주의점

클래스: public, default, final, abstract
메서드: public, protected, default, private, final, abstract, static
맴버 변수: public, protected, default, private, final, static
지역변수: final

❗제어자 사용시 주의사항

  • 메서드에 static & abstrat같이 사용할 수 없다.
  • 클래스에 abstract & final동시에 사용할 수 없다.
  • abstract 메서드의 접근제어자가 private일 수 없다.
  • 매서드에 private & final을 같이 사용할 필요는 없다.

Getter와 Setter

직접적으로 값을 변경 및 읽어오는 것을 막기 위해서 사용한다.

Getter

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

private double speed;  
private char gear = 'P'; 
private boolean lights;


public String getModel() {
    return model;
}

public String getColor() {
    return color;
}

public double getPrice() {
    return price;
}

private double speed; 필드의 값들이 private로 설정된 경우 getter 메서드를 통해 외부에서 값을 가져올 수 있다.


Setter

💡 외부에서 객체의 private한 필드를 저장, 수정할 필요가 있을 때 사용한다.

private double speed;  
private char gear = 'P'; 
private boolean lights;


public void setModel(String model) {
    this.model = model;
}

public void setColor(String color) {
    this.color = color;
}

public void setPrice(double price) {
    this.price = price;
}

private double speed; 필드의 값들이 private로 설정된 경우 setter 메서드를 통해 외부에서 값을 수정할 수 있다.
❗위의 예시에서는 private한 필드의 값을 외부에서 전달한 매개변수 값으로 수정한다.

profile
누워만 있지 말고 제발 뭐라도 하자.

0개의 댓글