✍관련 강의: 자바_Day2 접근제한자3
public class Student {
// 필드
private boolean health;
private String name;
private int age;
private String major;
//생성자
public Student() {
}
public Student(String name, int age, String major) {
super();
this.health = health;
this.name = name;
this.age = age;
this.major = major;
}
//Getter & Setter
public boolean isHealth{
return health;
} //boolean 타입일 때는 'get'대신 'is'
public void setHealth(boolean health) {
this.health = health;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
} //end class
UI(출력)와 기능은 나뉘어야 한다.
관리 기능은 '-Manager'라는 클래스의 이름으로 따로 관리한다.
안전한 시스템을 만들기 위해 객체의 속성은 private 제한자로 설정한다. 또한 필드에 대한 모든 접근은 메소드를 통해 이루어질 수 있도록 하여 위험에 노출되지 않도록 한다.
가령 필드가 private이고, getter 메소드만 있을 경우엔 해당 클래스는 읽기전용 클래스일 것이고, setter 메소드만 있는 경우는 필드를 읽을 순 없는 대신 필드 조작이 가능한 클래스인 것이다.
기존의 toString() 메소드는 Object에 정의된 함수이며, 출력값의 형태는 '클래스 이름@객체의 주소'인 메소드이다.
// toStirng()을 재정의하지 않았다면,
// 다음 두 경우의 출력값은 '클래스 이름@객체의 주소'이다
System.out.println(st);
System.out.println(st.toString());
객체의 필드에 대한 정보를 좀 더 알아보기 쉽게 출력하기 위해 toString() 메소드를 다음과 같이 오버라이딩한 것이다.
@Override
public String toString() {
return "Student [health=" + health + ", name=" + name + ", age="
+ age + ", major=" + major + ", isHealth=" + isHealth + "]";
}
'우클릭> source> Generate toString()' 을 이용하면 간편하게 생성할 수 있다.