getter 와 setter :
private으로 생성 된 변수를 다른 클래스 내에서도 사용하기 위해 get / set 을 이용하여 데이터에 접근한다.
왜? 굳이 private 으로 만들고 그렇게 하는 이유는 데이터의 무결성을 지키기 위해서.
무결성이란, 데이터의 정확성과 일관성을 유지하고 보증하는 것
음식의 가격이나 갯수에 음수가 온다면 데이터 형식에 맞지 않는다. 혹은 시험 점수가 -50 점일 수가 없으니까 이러한 데이터의 정확성과 일관성을 유지해 주는 것을 무결성이라고 하고 그걸 아무나 수정하지 못하도록 private 을 통해 실현 하는 것이다.
set :
- setter 는 값 할당만 함으로 반환 값은 void
- public void set + 멤버변수명 (멤버변수와 동일한 타입 변수) {
this.a = a; // 값 할당
}
get :
- getter 는 private 멤버의 값을 반환하는 public 메서드 private 밖에서도 값을 읽을 수 있게 하려고 존재하는 메서
- public 멤버와 같은 타입 get+멤버변수명 (파라미터값 필요 없다) {
return 멤버변수값;
}
클래스에 변수 선언 해주었다면 하기와 같이 자동 생성 가능하다.
package week_two;
class Book {
private String title, name, publish;
private int price;
public Book() {
};
public Book(String title, String name, String publish, int price) {
super();
this.title = title;
this.name = name;
this.publish = publish;
this.price = price;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPublish() {
return publish;
}
public void setPublish(String publish) {
this.publish = publish;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "book [title=" + title + ", name=" + name + ", publish=" + publish + ", price=" + price + "]";
}
}
public class VoTest1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Book b = new Book();
b.setTitle("ddd");
b.setName("해");
b.setPublish("펭귄");
b.setPrice(11000);
System.out.println("제목 : " + b.getTitle());
System.out.println("작가명 : " + b.getName());
System.out.println("출판사 : " + b.getPublish());
System.out.println("가격 : " + b.getPrice());
System.out.println();
Book b1 = new Book("냐냐", "해니", "어디게", 23000);
System.out.println(b1);
System.out.println();
// 책을 더 만들어 볼까 양이 많아 지니까 배열로 만들고
Book[] books = { new Book("냐냐1", "해니1", "어디게1", 24000), new Book("냐냐2", "해니2", "어디게2", 22000),
new Book("냐냐3", "해니3", "어디게3", 21000), };
// 출력을 위해 for 문 돌리고 이렇게 해
for (int i = 0; i < books.length; i++) {
System.out.println(books[i]); // books 배열이 생성 되었으니까 books i 를 출력
}
}
}
'JAVA' 카테고리의 다른 글
[JAVA] 객체지향 - 문자열 비교 (0) | 2023.03.01 |
---|---|
[JAVA] 객체지향 - 싱글톤(Singleton) 패턴 (0) | 2023.03.01 |
[JAVA] 객체지향 - 접근 제어자 (0) | 2023.02.28 |
[JAVA] 객체지향 - fianl 키워드 (0) | 2023.02.28 |
[JAVA] 객체지향 - 초기화 블록 (0) | 2023.02.28 |