24/12/09(월)
외부에서 사용하지 못하게 막는 코드
- 이상한 값이 기억되는 것을 막을 수 있는 코드이다.
public은 여기저기서 사용할 수 있다면, private는 그 코드에서만 사용할 수 있다.
👀예제
//클래스
public class Book {
private String title;
private int price;
}
//main
Book book1 = new Book();
book1.title = "오브젝트"; // ERROR!
book1.price = 34200; // ERROR!
이렇게 private를 쓴 코드에는 직접적으로 변수를 입력할 수 없다.
⚡따라서 생성자를 사용해서 적용시켜야한다.
public class Book {
private String title;
private int price;
public void changeTitle(String newTitle) {
// 변경할 값을 검사하는 if 문
if (/* 이상한 값이면 */) {
// 에러 발생시키기
}
title = newTitle; // 값 변경
}
}
🧐이렇게만 주어질 때, 읽기와 수정이 다 안된다. 그럼 난 읽고 싶을 때 어떻게 할까?
// 클래스 안에서 우클릭 > Generate (생성) > Getter > 모든 필드 선택
public int getNumber() {
return number;
}
public int getPosition() {
return position;
}
getter함수를 넣어주게 되면, 읽을 수 있는 함수가 된다.
private를 붙이면
.을 찍었을 때 안보인다.
public은 오브젝트의 데이터가 안전하지 않다. 메서드를 통하지 않고 값을 기억시킬 수 있다. -> 이게 안전하지 않음
private은 메서드를 활용해서 무자비한 데이터를 제거할 수 있다.(조건을 넣어 파악할 수 있음)
😐 느낀점
이제는 클래스와 그의 속한 모든 것을 배우는 것이다.
새로운 것들이 와르르 쏟아질 때 계속해서 복습하고, 익히는 연습이 중요하다!!
왜 사용하는지, 사용할 때 편리한 것이 무엇인지 파악하는 것도 중요하다!