객체 지향 프로그래밍(Object Oriented Programming)4 - 캡슐화(Encapsulation)

2021. 10. 30. 16:06Java

캡슐화

  • 관련 있는 변수와 메서드를 하나의 클래스로 묶어, 외부에서 접근하지 못하도록 정보를 은닉하는 것
  • 객체에 대한 직접적 접근을 막음
  • 내부의 정보를 직접 접근 혹은 변경 불가 
  • 공개되는 메서드를 통해서만 접근이 가능 - getter, setter
//정보를 은닉하기 위해 캡슐회
class Book{
    private String title;
    private int price;
    
    //title을 얻을 수 있는 getter
    public String geteTitle(){
    	return this.title
    }
    //title을 변경할 수 있는 setter
    public void setTitle(String title){
    	this.title = title;
    }
    
    //price의 getter setter는 생략 
}

Java의 접근 제한자(modifier)

클래스, 변수, 메서드 선언부에 사용되며, 해당 요소를 외부에서 사용할 수 있는지 설정

  • public - 같은 클래스, 같은 패키지, 다른 패키지의 자손 클래스, 전체 
  • protected - 같은 클래스, 같은 패키지, 다른 패키지의 자손 클래스
  • package(default) - 같은 클래수, 같은 패키지
  • private - 같은 클래스 

 


출처

https://radait.tistory.com/5