
자바 기본 문법 – 클래스와 객체 – 3 – 접근 제어자 (public, private, protected)
소제목: 접근 제어자란?
자바에서는 클래스와 객체를 정의할 때, 멤버 변수와 메서드의 접근 범위를 제어하는 접근 제어자를 사용합니다. 이 접근 제어자는 public
, private
, protected
와 같이 세 가지 종류가 있습니다. 접근 제어자를 사용하여 멤버 변수와 메서드에 대한 접근을 제한함으로써 코드의 안정성과 유지보수성을 높일 수 있습니다.
소제목: public 접근 제어자
public
접근 제어자는 가장 넓은 범위를 가지며, 어떤 클래스나 패키지에서도 접근할 수 있습니다. 예를 들어, public
으로 선언된 멤버 변수는 다른 클래스에서도 값을 읽거나 수정할 수 있습니다.
public class Person {
public String name; // public 멤버 변수
public void greet() { // public 메서드
System.out.println("안녕하세요!");
}
}
위의 예시에서 name
이라는 public
멤버 변수는 어디서든 접근할 수 있습니다. 마찬가지로, greet()
라는 public
메서드도 어디서든 호출할 수 있습니다.
소제목: private 접근 제어자
private
접근 제어자는 가장 제한적인 범위를 가지며, 해당 클래스 내부에서만 접근할 수 있습니다. 외부에서는 private
멤버 변수에 직접 접근하거나 수정할 수 없습니다. 대신, public
메서드를 통해 간접적으로 접근할 수 있습니다.
public class Person {
private int age; // private 멤버 변수
public void setAge(int age) { // public 메서드
if (age >= 0) {
this.age = age;
} else {
System.out.println("나이는 음수가 될 수 없습니다!");
}
}
public int getAge() { // public 메서드
return age;
}
}
위의 예시에서 age
라는 private
멤버 변수는 외부에서 직접 접근할 수 없습니다. 대신, setAge()
와 getAge()
라는 public
메서드를 통해 값을 설정하고 가져올 수 있습니다. 이렇게 함으로써 age
의 유효성을 체크하고, 잘못된 값이 들어오는 것을 방지할 수 있습니다.
소제목: protected 접근 제어자
protected
접근 제어자는 같은 패키지 내에서는 접근 가능하며, 다른 패키지에서도 상속 관계에 있는 클래스에서 접근할 수 있습니다. protected
멤버 변수와 메서드는 해당 클래스 내부와 상속 받은 클래스에서 접근할 수 있습니다.
package com.example;
public class Person {
protected String name; // protected 멤버 변수
protected void greet() { // protected 메서드
System.out.println("안녕하세요!");
}
}
위의 예시에서 name
이라는 protected
멤버 변수는 동일한 패키지인 com.example
내에서 접근할 수 있습니다. 또한, Person
클래스를 상속받은 하위 클래스에서도 name
에 접근할 수 있습니다.
주의해야 할 점
public
접근 제어자는 어디서나 접근할 수 있으므로, 코드의 노출 범위를 신중하게 결정해야 합니다. 공개해도 상관 없는 경우에만public
으로 선언해야 합니다.private
접근 제어자를 사용하여 멤버 변수를 숨기고, 간접적인 접근 방법을 제공함으로써 데이터의 무결성을 보장할 수 있습니다.protected
접근 제어자는 상속 관계에서 유용하게 사용될 수 있지만, 남용하면 캡슐화 원칙에 어긋날 수 있습니다. 적절한 경우에만 사용해야 합니다.
자바에서의 접근 제어자는 클래스와 객체의 멤버들을 적절하게 보호하고 제한하여 안정성을 높이는 중요한 개념입니다. public
, private
, protected
접근 제어자를 올바르게 사용하면 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.
자바 기본 문법 – 클래스와 객체 – 3 – 접근 제어자 (public, private, protected)에 대해 알아보았습니다. 이 내용을 토대로 자바 프로그래밍에서의 접근 제어자 개념을 잘 이해하고, 적절하게 활용해보세요!