추상화를 통해 정리된 데이터들과 기능을 하나로 묶어 관리하는 기법
클래스의 가장 중요한 목적인 데이터의 직접 접근제한을 원칙으로 하여
클래스 외부에서 데이터의 직접적인 접근을 막고, 대신 간접적으로 데이터에 접근할 수 메소드를 클래스 내부에 작성하는 방법 (getter, setter)
이로 인해 부가적으로 정보 은닉 효과가 발생함
class Person {
String name;
}
Person p1 = new Person();
p1.name = "홍길동"; // 직접 접근
// Person 클래스를 p1이라는 이름으로 생성하고 p1.name에 접근 하는 방식이 직접 접근
→ public
을 private
으로 설정하면, 외부에서 접근 불가
용어 정리
- 규약: 어떻게 하자는 것, 안지키는 경우도 있음
- 규칙: 안지키면 패널티
- 원칙: 위배하는 순간 큰 문제 야기
Java에서 캡슐화는 원칙이므로, 꼭 지켜야 함
클래스의 멤버 변수에 대한 접근 권한은 private
을 원칙으로 한다.
클래스의 멤버 변수에 대한 연산처리를 목적으로 하는 멤버 메소드는 클래스 내부에 작성한다.
멤버 메소드는 클래스 밖에서 접근할 수 있도록 public
으로 설정한다.
→ getter, setter
현실의 객체는 Object의 느낌
컴퓨터에서는 객체를 Instance라고 함
new
연산자와 생성자를 사용하여 객체 생성 시 Heap 메모리 영역에 서로 다른 자료형의 데이터가 연속으로 나열/할당된 객체 공간
Student s = new Student();