학생 관리 시스템_1

호떡·2022년 7월 24일
0

✍관련 강의: 자바_Day2 접근제한자3

  • Tip
  • 안전한 시스템을 위해
  • toString()의 오버라이딩

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

👍Tip

UI(출력)와 기능은 나뉘어야 한다.
관리 기능은 '-Manager'라는 클래스의 이름으로 따로 관리한다.

안전한 시스템을 위해

안전한 시스템을 만들기 위해 객체의 속성은 private 제한자로 설정한다. 또한 필드에 대한 모든 접근은 메소드를 통해 이루어질 수 있도록 하여 위험에 노출되지 않도록 한다.
가령 필드가 private이고, getter 메소드만 있을 경우엔 해당 클래스는 읽기전용 클래스일 것이고, setter 메소드만 있는 경우는 필드를 읽을 순 없는 대신 필드 조작이 가능한 클래스인 것이다.


toStirng() 오버라이딩__상속

기존의 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()' 을 이용하면 간편하게 생성할 수 있다.

0개의 댓글