접근 제한자
객체지향을 하는 프로그래밍 언어라면 빠질수 없는것이 바로 접근제한자 입니다.
자바 또한 객체지향 프로그래밍 추구하기 때문에 접근제한자가 존재하며 총 4단계의 접근제한자가 존재합니다.
접근 제한자 이유
접근제한자를 사용하는 이유는 코드의 무결성(無缺性)을 위해서 입니다. 코드는 언제나 정확 하고 또 일관성이 있어야 하기 때문입니다.
package test.package01
public class A{
int number = 1;
}
예를들어 위 코드 처럼 A 클래스 안에 number 라는 필드를 선언했고 해당 값이 무조건 1을 유지해야 한다고 할 경우 누군가 다른 곳에서 접근하여 수정이 가능하기 때문에 접근제한자 를 사용하여 코드의 접근을 제한하는 것입니다.
package test.package01
public class A{
private int number = 1;
}
public
가장 낮은 단계의 제약을 가지고 있으며 어느곳에 있던 마음대로 접근이 가능합니다.
package test.package01
public class A {
}
위 처럼 A 라는 클래스가 존재할경우
package test.package02 // 패키지가 다름
public class B {
A a;
}
B 클래스 와 A 클래스의 package 위치가 다르다고 할지라도 A 클래스에 언제든지 접근이 가능합니다.
protected
public 보다 한단계 접근이 강화된 접급 제한자로 public 과 달리 같은 패키지에서만 접근을 허용하고 다른 패키지에서 접근하고자 할때는 자식객체 즉 상속을 받았을때만 접근이 가능합니다.
default
동일한 패키지 일때만 접근을 허용하는 제한자로 만약 접근제한자를 생략할경우 default 로 접근제한자가 적용됩니다. protected 는 상속을 받아 사용가능하다. default 는 protected 보다 한단계 더 제한이 강화되어 있다.
package test.package01
protected class A {
}
package test.package01
public class B {
A a;
}
private
가장 강력한 접근제한자로 동일 한 패키지 , 다른 패키지 전부 접근이 불가하며 같은 클래스 내부에서만 접근을 허용하는 제한자 이다.
package ch06.sec13.exam03.package1;
public class A {
private int number;
public A() {
number = 1; // 같은 클래스 내부일 경우 접근 가능
}
}
마무리
순서대로 정리하면 public -> protected - > default -> private 순으로 접근이 제한됩니다.
'개발 언어 > JAVA' 카테고리의 다른 글
Getter , Setter 메소드 사용 이유 (0) | 2023.01.29 |
---|---|
++ , -- 증감 연산자의 앞뒤 차이 (0) | 2023.01.29 |
자바 text 은행 만들기 (0) | 2023.01.29 |
자바 짝수의 합 (0) | 2023.01.29 |
자바 개행문자 \n 치환 방법 (0) | 2023.01.29 |