최상위 객체 Object, 캡슐화

dy7888·2023년 8월 22일
0

java.lang.Object

  • 자바 최상위 클래스, 모든 클래스의 최상위 클래스
  • 클래스를 상속받지 않은 모든 클래스에는 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 프로퍼티의 차이?

price 필드는 클래스가 가지고 있는 것이고,
price 프로퍼티는 getter setter 메소드를 의미한다.


캡슐화에 대한 더 자세한 내용은 아래 링크 참고
👉 자바 객체지향프로그래밍 특징

profile
나의 기록하는 개발 일지

0개의 댓글