자바 제어자1 (modifier) - 1. 접근지정자

Ⅰ. 접근지정자 (접근제어자)

    ※ 제어자 : 어떤 자원에 대해 기능을 제한하거나 확장하는 키워드

 

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에도 사용 가능