캡슐화란?
캡슐화는 속성과 기능(변수, 메서드)으로 구성된 데이터 캡슐을 외부 액세스로부터 보호하기 위한 것입니다.
캡슐화의 주요 이점은 데이터 숨기기입니다.
주요 목적은
1. 프라이버시.
2. 데이터의 불필요한 외부 노출 방지
패키지, 수입
패키지
패키지는 특정 목적을 공유하는 클래스와 인터페이스를 그룹화합니다.
파일 디렉토리가 나타납니다.
ㅏ엄밀히 말하자면, 패키지는 물리적 디렉토리 및 클래스이며 인터페이스 파일은 여기에 있습니다.
또한 패키지는 계층 구조입니다.
마침표(.) 표시를 사용하여 디렉토리를 구분할 수 있습니다.
수입
가져오기는 다른 패키지의 클래스를 사용하는 기능입니다.
package practicepack.test;
public class ExampleImp {
public int a = 10;
public void print() {
System.out.println("Test for import")
}
package practicepack.test2; // case using import
import practicepack.test.ExampleImp // using import
public class PackageImp {
public static void main(String() args) {
ExampleImp x = new ExampleImp(); // package name can be omitted
}
}
액세스 한정자
액세스 수정자 | 패키지 | 상속 클래스에서 | 같은 패키지에 | 같은 수업에서 |
공공의 | 영형 | 영형 | 영형 | 영형 |
보호 | 엑스 | 영형 | 영형 | 영형 |
기본값(생략 가능) | 엑스 | 엑스 | 영형 | 영형 |
사적인 | 엑스 | 엑스 | 엑스 | 영형 |
게터 및 세터
외부에서 데이터를 가져와서 설정하기 위한 것입니다.
데이터가 “비공개”로 선언되면 get, set 메서드를 사용하여 데이터를 가져오고 수정해야 합니다.
public class GetterSetterTest {
public static void main(String() args) {
Worker w = new Worker();
w.setName("Kim coding");
w.setAge(30);
w.setId(5);
}
}
class Worker {
private String name; // no access from outside
private int age;
private int id;
public String getName() { // to get the value, you must use this "get method"
return name;
}
public void setName(String name) { // to change the value, you must use this "set method"
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age < 1) return;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}