extends Object
가 생략되어 있음정보 은닉
외부에서 필드를 직접 접근하지 못하도록, 필드는 메소드를 통해서만 접근해서 사용하도록 한다.
그렇기 때문에, 필드는 웬만해서 private
을 붙여야 한다.
예) private int price;
이 price 필드를 다른 클래스에서 사용하기 위해서는 직접 price 필드를 접근하게 하는 것보다, 이 필드의 값을 수정하고 얻기 위해 메소드를 만들어주는 것이 좋다 -> getter, setter 메소드(프로퍼티)
private int price;
public int getPrice() {
return this.price; // 자신이 가지고 있는 price를 리턴
}
public void setPrice(int price) { //외부로부터 받은 price값을 가지고 (매개변수로 받은 price가지고)
this.price = price; // 이 this.price필드(=private price필드) 값을 바꿔준다.
}
price 필드
는 클래스가 가지고 있는 것이고,
price 프로퍼티
는 getter setter 메소드를 의미한다.
캡슐화에 대한 더 자세한 내용은 아래 링크 참고
👉 자바 객체지향프로그래밍 특징