switch

JAVA OOP 객체지향 프로그래밍 [2. 캡슐화] 본문

java

JAVA OOP 객체지향 프로그래밍 [2. 캡슐화]

5witch 2022. 5. 12. 15:06

캡슐화
특정 객체 안에 관련된 속성과 기능을

 

하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것임


크게 두 가지 목적이 있는데


1. 데이터 보호의 목적
2. 내부적으로만 사용되는 데이터에 대한 불필요한 외부 노출 방지

 


캡슐화의 가장 큰 장점은 정보은닉에 있음


외부로부터 객체의 속성과 기능이 함부로 변경되지 못하게 막고


변경되더라도 다른 객체에 영향을 주지 않기 때문에 독립성을 확보 가능


또한 유지보수와 코드 확장 시에도 오류범위를 최소화할 수 있음

 


접근제어자 (access modifier)


private - 동일 클래스
(default) - 동일 패키지 (기본값)
protected - 동일 패키지 + 다른 패키지의 하위 클래스
public - 제한 없음

 


getter와 setter 메서드
객체지향의 캡슐화 목적을 달성하면서도 데이터 변경이 필요한 경우.. 즉
private접근제어자가 포함된 객체의 변수 데이터 값을 추가하거나 수정하고 싶을 때
getter와 setter메서드를 사용할 수 있다


예시

public class Test {
	public static void main(String[] args) {
		Cat cat = new Cat();
		cat.setName("솜이");
		cat.setAge(1);

		String name = cat.getName;
		sout(name);
		int age = cat.getAge();
		sout(age);
    }
}

class Cat {
	private String name;
	private int age;

	public String getName() {
		return name;
	}

	public void set Name(String name) {
		this.name = name;
	}
}
Comments