OOP_캡슐화

Brogod97·2022년 12월 15일
0

KH TIL

목록 보기
17/37
post-thumbnail

캡슐화 (Encapsulation)

추상화를 통해 정리된 데이터들과 기능을 하나로 묶어 관리하는 기법

클래스의 가장 중요한 목적인 데이터의 직접 접근제한을 원칙으로 하여

클래스 외부에서 데이터의 직접적인 접근을 막고, 대신 간접적으로 데이터에 접근할 수 메소드를 클래스 내부에 작성하는 방법 (getter, setter)

이로 인해 부가적으로 정보 은닉 효과가 발생함

직접 접근 예시

class Person {
	String name;
}
Person p1 = new Person();

p1.name = "홍길동"; // 직접 접근

// Person 클래스를 p1이라는 이름으로 생성하고 p1.name에 접근 하는 방식이 직접 접근

publicprivate으로 설정하면, 외부에서 접근 불가

용어 정리

  • 규약: 어떻게 하자는 것, 안지키는 경우도 있음
  • 규칙: 안지키면 패널티
  • 원칙: 위배하는 순간 큰 문제 야기

Java에서 캡슐화는 원칙이므로, 꼭 지켜야 함


캡슐화 원칙

  1. 클래스의 멤버 변수에 대한 접근 권한은 private을 원칙으로 한다.

  2. 클래스의 멤버 변수에 대한 연산처리를 목적으로 하는 멤버 메소드는 클래스 내부에 작성한다.

  3. 멤버 메소드는 클래스 밖에서 접근할 수 있도록 public으로 설정한다.
    → getter, setter


객체(Instance)의 할당

현실의 객체는 Object의 느낌
컴퓨터에서는 객체를 Instance라고 함

new 연산자와 생성자를 사용하여 객체 생성 시 Heap 메모리 영역에 서로 다른 자료형의 데이터가 연속으로 나열/할당된 객체 공간

Student s = new Student();

0개의 댓글