Ⅰ. 접근지정자 (접근제어자)
※ 제어자 : 어떤 자원에 대해 기능을 제한하거나 확장하는 키워드
1. 멤버 및 생성자의 접근지정자
※ 접근 지시 제어자 : 자원의 활동 범위를 지시함
- 멤버 및 생성자에서 사용되는 4가지 접근지정자 (public, protected, default, private)
※ default 는 아무것도 안 쓴 것이므로 사실상 접근지정자는 3개임
- 멤버 및 생성자에서 사용되는 4가지 접근지정자의 사용가능 범위
- 접근 가능한 범위 : public > 아무것도 안 쓴 것 > protected > private
- public : 프로젝트의 아무 곳에서나 쓸 수 있음
- private : 클래스 바깥에서는 쓸 수 없음
- protected : 클래스 및 상속 관계에서는 쓸 수 있음
- 아무것도 안씀(default) : 패키지 내에서는 쓸 수 있음
- default 클래스는 다른 패키지에서 import 자체가 불가능
- 다른 패키지에서 사용하려면 public 클래스 선언
// Example
package sample;
// Cafe는 패키지 내 다른 곳에서는 다 접근 가능 (default)
class Cafe{
public String name; // 아무데서나 접근 가능
private String comment; // 오직 이 클래스 안에서만 접근 가능
// ※ 정보은닉 : 보호해야 할 데이터를 보호하기 위한 기법
Cafe(String name, String comment) {
this.name = name;
this.comment = comment;
} // 이렇게 하면 comment도 사용 가능
}
public class Main {
public static void main(String[] args) {
/*
Cafe starbucks = new Cafe();
starbucks.name = "스타벅스";
// starbucks.comment = "가장 유명한 카페다"; 이 부분은 작동 불가능 (private라서)
*/
Cafe starbucks = new Cafe("스타벅스", "가장 유명한 카페다");
}
}
// public static void main(String[] args) {...}을 없애면 Main.java에도 사용 가능
'Programming Language > Java' 카테고리의 다른 글
상속과 다형성 - 1. 클래스의 상속 (0) | 2022.07.12 |
---|---|
자바 제어자1 (modifier) - 2. Static (0) | 2022.07.12 |
클래스 외부 구성요소 - 2. 외부클래스(external class) (0) | 2022.07.11 |
클래스 외부 구성요소 - 1. 패키지(Package)와 임포트(Import) (0) | 2022.07.11 |
클래스 내부 구성요소 - 4. this 키워드와 this( ) 메소드 (0) | 2022.07.09 |