앞서, 자바의 접근제어자를 확인했었다.
https://standout.tistory.com/141
이중 private은 같은 클래스 내에서만 접근이 가능하다고 했는데,
다른클래스에서 접근을 하고 싶다면 어떻게 해야 할까?
= setter getter를 이용한다.
setter getter
set+변수명: 값 초기화(설정)
get+변수명: 접근하지 못하는 변수에 접근할수있도록 허용 = public
https://standout.tistory.com/138
아래 예를 확인해보자.
private String bookname;
private String author;
public Book(String bookname, String author) {
this.bookname = bookname;
this.author = author;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
// 필드가 퍼블릭일경우 접근해 출력가능
// System.out.println(bookArr[0].bookname);
Book bookArr[] = new Book[5];
bookArr[0] =new Book("책이름1", "저자1");
bookArr[1] =new Book("책이름2", "저자2");
bookArr[2] =new Book("책이름3", "저자3");
bookArr[3] =new Book("책이름4", "저자4");
bookArr[4] =new Book("책이름5", "저자5");
// 필드가 프라이빗일 경우 get으로 접근해 출력
System.out.println(bookArr[0].getBookname());
for (int i = 0; i < bookArr.length; i++) {
System.out.println(bookArr[i].getBookname() + ", " + bookArr[i].getAuthor());
}
필드가 퍼블릭으로 공개되어있을때는 바로 bookname을 접근해 출력이 가능하나,
private로 한번 보호가 되어있기때문에,
setter getter를 이용해 가져오는 단계를 거쳐야 한다.
'JAVA' 카테고리의 다른 글
클래스 속성, field (0) | 2023.03.18 |
---|---|
여러 인스턴스에서 공유하다, static (0) | 2023.03.18 |
요일출력하기, Calendar (0) | 2023.03.18 |
정밀한 시간표현, currentTimeMillis() (0) | 2023.03.18 |
타입검사하기, instanceof (0) | 2023.03.18 |