오랜만에 Java에서의 접근 제한자(Access Modifier)라는 녀석을 소개해보겠다.
먼저 접근 제한자가 생긴 이유에 대해 생각해보자.
흔히 자바는 대표적인 OOP(Objective Oriented Programming) 객체 지향 프로그래밍이라고 한다.
정보은닉을 통해 외부에서는 기능만을 사용하고 안에 있는 값들은 마음대로 건드리지 못하게 하는 것이 기본이다.
접근제한자의 4가지 종류를 보안이 강한 순서대로 나열해보겠다.
1. private
2. (default)
3. protected
4. public
먼저 private 접근 제한자는 보안이 가장 강력한 녀석이다.
이 접근 제한자가 붙어있는 멤버변수(필드), 멤버함수(메소드)는 본인 클래스 내부에서만 접근이 가능하다.
두 번째로 default 접근 제한자는 ()를 포함해두었다. 왜 그랬을까?
기본적으로 접근 제한자를 명시하지 않으면 default 접근 제한자로 적용된다.
이 접근 제한자가 붙어있다면 같은 패키지 안에서는 객체 외부에서 .연산자로 접근이 가능하다.
당연히 다른 패키지에서는 접근이 불가능하다.
세 번째로 protected 접근 제한자이다. 이 녀석은 default 접근 제한자와 거의 똑같다.
다른 패키지에서는 접근이 불가능하다. 하지만, 상속 관계라면 접근이 가능하다.
마지막으로 public 접근 제한자이다. 예상하다시피 어디에서나 .연산자로 접근이 가능하다.
중간 정리를 하자면 기본적으로 객체지향프로그래밍에서는 정보은닉은 중요한 개념이다.
데이터, 즉 멤버변수는 기본적으로 private으로 설정하고 멤버함수(메소드)는 기본적으로 public으로 설정한다.
이 때 멤버변수에 값을 설정하거나 설정된 값을 가져오려면 Setter와 Getter 메소드가 필요하다.
이 둘은 말 그대로 설정하고 가져오는 메소드이다.
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
위 코드처럼 구현될 수 있다.
하나의 멤버변수가 있고 여기에 2개의 Getter, Setter 메소드가 있다.
다음 글은 생성자에 관해 올려보도록 하겠다.
'Language > Java' 카테고리의 다른 글
static 키워드 (0) | 2022.05.01 |
---|---|
자바의 생성자(Constructor) (0) | 2022.04.29 |
자바의 변수 종류 (0) | 2022.03.25 |
자바에서의 메소드 - 2 (0) | 2022.03.22 |
자바에서의 메소드 (0) | 2022.03.10 |