오늘은 접근자를 배워 보려합니다. 말그대로 어디서 접근이 되고, 어디서는 접근이 안되는지 제어를 해주어 데이터 및 필드를 건들지 못하게 해주는 것입니다.
그전에 기본구조를 설명드렸던 내용이 기억나시나요?
다시 한번더 말씀드리면 기본구조는 프로젝트 > 패키지 > 클래스 > 메소드> 소스코드 순서입니다.
2021.07.17 - [프로그래밍 공부/Java] - [lesson] Java 프로그래밍 언어 - 출력 메소드 및 변수 (+ 기본 구조)
접근 권한 제어자는 4가지가 있습니다.
default : 다른 패키지에서 접근 불가
public : 모든 곳에서 접근 가능, 대표 클래스를 의미할 때
( 대표클래스는 하나만있어야 한다. 다른 클래스에 또 public을 사용하면 오류 발생합니다.)
protected : 다른 패키지에서 접근 불가, 자식은 가능
private : 1. 다른 클래스에서 접근 불가
2. 메소드로 접근 (직접 접근하지 말아라 -> getter, setter를 사용하여 데이터를 접근해라)
위에 써드린 기본구조를 토대로 접근자를 보시면 어디 클래스를 호출 할 수 있는지, 없는지 확인이 될 것입니다.
또한 default와 protected는 모두 다른 패키지에서 접근을 할 수 없으나, protected는 상속받은 자식은 접근 할 수 있습니다.
private에서 2번째 사용목적인 직접접근 방지를 위해 getter와 setter를 사용해서 접근하라 했는데 예시를 보며 설명 드리겠습니다.
public class Test3 {
private int total =0;
private double avg =0.0;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public double getAvg() {
return avg;
}
public void setAvg(double avg) {
this.avg = avg;
}
}
위의 코드를 보시면 변수에 int double의 변수가 private라고 되어있습니다. 이로 인해 다른클래스에서 접근을 할 수 없습니다. (직접접근을 막아 놓았다고 보시면 됩니다.) 그러나 class가 public으로 되어있어 class에는 접근이 가능하며 데이터 사용시 get과 set으로 변수를 접근할 수 있는 메소드가 있습니다. 이 메소드들을 getter, setter라고 부릅니다.
(getter, setter 구현 단축키 : ctrl + shift + s + R 원하는 변수들 선택 후 완료!)
여러줄을 동시에 접근제어자 선언 단축키 : alt + shift + a 를 누르면 글씨가 작아지면서 넓게 보입니다.
그상태에서 접근제어자 작성할 처음 변수에 커서를 놓고 shift를 누른상태에서 방향키 위아래를 누르면 범위가 정해집니다. 범위를 정한 후 접근제어자를 작성하면 여러줄 동시에 작성이 가능합니다. 작성 완료후 단축키인 alt + shift + a를 눌러 설정을 해제합니다.
'프로그래밍 공부 > Java' 카테고리의 다른 글
[lesson] Java 프로그래밍 언어 - 내부 클래스, 람다식 (0) | 2021.07.29 |
---|---|
[lesson] Java 프로그래밍 언어 - 추상 클래스 (0) | 2021.07.28 |
[lesson] Java 프로그래밍 언어 - 캐스팅(Casting) (0) | 2021.07.28 |
[lesson] Java 프로그래밍 언어 - 상속 (0) | 2021.07.28 |
[lesson] Java 프로그래밍 언어 - 클래스 (0) | 2021.07.27 |