IT/솔루션) Power Java
Power JAVA 10장 ) 상속 - LAB
돔찌
2019. 5. 12. 17:50
<2016. 10. 11. 12:23>
Power JAVA 10장 ) 상속 - LAB
==========Human.java======================
//1. 클래스 Human을 정의하여 보자. 다음과 같은 필드를 작성하라.
package LAB;
class Human {
String name;
int age;
//2. 생성자를 작성하여 보자.
public Human(String name, int age) {
this.name = name;
this.age = age;
}
//3. 각 필드에 대하여 접근자와 설정자를 작성하여 보자.
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;
}
//4. 객체의 현재 상태를 나타내는 문자열을 반환하는 toString()을 작성하여 보자. 객체의 현재값을 반환한다.
public String toString() {
return name +","+ age;
}
/* 5. 클래스 Human 안에서 main() 메소드를 추가하여서
* ("춘향",18세), ("몽룡",21세), ("사또",50)에 해당하는 객체를 생성하여 보라.
* 각 객체의 toString을 호출하여서 출력하여 보라.
*/
public static void main(String[] args) {
Human person1 = new Human("춘향",18);
Human person2 = new Human("몽룡",21);
Human person3 = new Human("사또",50);
System.out.println(person1.toString());
System.out.println(person2.toString());
System.out.println(person3.toString());
}
}
====================Student.java============================
package LAB;
//6. 클래스 Human을 상속하여서 Student 클래스를 작성하여 보자. 다음과 같은 필드가 추가된다.
class Student extends Human {
String major;
//7. 다음과 같은 생성자를 정의하여 보자. 부모 클래스의 생성자를 호출하여 보자.
public Student(String name,int age,String major) {
super(name,age);
this.major = major;
}
//8. 각 필드에 대하여 접근자와 변경자를 작성하여 보자.
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setMajor(String major) {
this.major = major;
}
public String getMajor() {
return major;
}
//9. 객체의 현재 상태를 나타내는 문자열을 반환하는 toString()을 작성하여 보자.
// 부모의 toString()을 호출하여 문자열을 만들어라.
public String toString() {
return super.toString() +","+ this.major;
}
/* 10. 클래스 Student 안에서 main() 메소드를 추가하여서
* ("명진", 21세, "컴퓨터") , ("미현", 22세, "경영") , ("용준", 24세, "경제") 에 해당하는 객체를 생성하여 보라.
* 각 객체의 toString을 호출하여서 출력하여 보라.
*/
public static void main(String[] args) {
Student person4 = new Student("명진", 21, "컴퓨터");
Student person5 = new Student("미현", 22, "경영");
Student person6 = new Student("용준", 24, "경제");
System.out.println(person4.toString());
System.out.println(person5.toString());
System.out.println(person6.toString());
}
}
/* 11. Human과 Student 클래스의 생성자들이 어떤 순서로 호출되는지를 화면에 출력하여 보라.
- 부모클래스인 Human의 생성자를 통해 Human의 인스턴스를 만든 후, Student의 생성자를 통해 Student의 인스턴스를 만든다. */
/* 12. name과 age의 접근 지정자를 private, protected, public으로 변화시키면서 Student 클래스에서 접근하여 보라.
* - Human클래스의 필드를 private로 바꿨을때, super(name,age)와 같이 부모클래스의 생성자를 통해 접근할 경우 접근이 가능,
* 자식클래스의 main메소드 안에서 person.name = "XX" 와 같이 직접접근의 경우 제한되어 에러가 발생
* - 그러나 protected나 public 의 경우는 에러없이 접근 가능.
*/