-
객체 지향1. 캡슐화(Encapsulation)은 무엇일까?Java 2018. 7. 13. 15:23반응형
객체 지향이 가지는 특징에 대해 자세히 알아보고 싶어 작성하였습니다. ^^
1. 캡슐화(Encapsulation)이란?
- 데이터와 데이터를 처리하는 함수를 하나의 단위로 묶은 것입니다.
- 캡슐화를 통해 객체의 정보를 보호하고 정보를 은닉(Data Hiding)합니다.
▶ 각 객체끼리의 응집도는 높아지고, 결합도는 낮아집니다.
▶ 결합도가 낮아지니 생산성이 높아집니다.
- 캡슐화 된 클래스의 변수들은 접근제어자(Access Modifier)를 통해 접근을 제어합니다.
- private를 사용하여 클래스 내부의 변수를 선언합니다.
- setter, getter 메서드를 통해 변수의 값들을 조회하거나 수정할 수 있습니다.
2. 접근 제어자 ( Access Modifier )
- 접근 제어자로는 public > protected > default > private 로 4가지 입니다.
- 멤버 또는 클래스에 사용되어 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 합니다.
- 접근 제어자를 생략하면 자동으로 default가 됩니다.
- 접근 제어자는 클래스, 멤버 변수, 메서드, 생성자에 사용될 수 있습니다.
- 접근 제어자를 통해 외부로부터 데이터를 변경하지 못하게 데이터를 보호하고, 접근을 제한합니다.
종류
모든 클래스
하위 클래스
동일 패키지
현재 클래스
public
O
O
O
O
protected
X
O
O
O
default
X
X
O
O
private
X
X
X
O
* 간단한 예시를 만들어보았습니다.
1234567891011121314151617181920212223242526272829public class RentCar {private String model;private String color;public RentCar(String model, String color) {this.model = model;this.color = color;}public String getModel() {return model;}public void setModel(String model) {this.model = model;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}}cs - RenCar라는 클래스에서 인스턴스 변수인 model, color는 private으로 선언하였습니다.private으로 선언하였기에 model, color에 접근을 제한하고 메소드는 public으로 setter, getter를 이용해 접근할 수 있도록 하였습니다.반응형'Java' 카테고리의 다른 글
객체 지향2-1. 오버로딩(Overloading)과 오버라이딩(Overriding)은 무엇일까? (0) 2018.07.16 객체 지향2. 상속(Inheritance)은 무엇일까? (0) 2018.07.16 가비지 컬렉션(Garbage Collection)??? (0) 2018.07.12 JVM 메모리 구조 (0) 2018.07.12 자바의 아버지는 누구인가? (0) 2018.07.11