반응형

[쉽게 배우는 자바 프로그래밍] 

    Chapter 06. 상속

        프로그래밍 문제 

 

2. 다음 표와 실행 결과를 참고해서 답하시오. show() 메서드는 객체의 정보를 문자열로 반환한다.

 

  Person Student ForeignStudent
필드 이름, 나이 학번 국적
메소드 접근자와 생성자, show()
생성자 모든 필드를 초기화하는 생성자

 

① Person, Person의 자식, Student, Student의 자식, ForeignStudent를 클래스로 작성한다.

 

② Person 타입 배열이 Person, Student, ForeignStudent 타입의 객체를 1개씩 포함하며, Person 타입 배열 원소를 for-each 문을 사용해 각 원소의 정보를 다음과 같이 출력하도록 테스트 프로그램을 작성하시오.

 

사람 [ 이름 : 길동이, 나이 : 22 ]

학생 [ 이름 : 황진이, 나이 : 23, 학번 : 100 ]

외국학생 [ 이름 : Amy, 나이 : 30, 학번 : 200, 국적 : U.S.A ]

 

 

        Person.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Person {
 
    private String name;
    private int age;
 
    public Person() {
        name = "";
        age = 0;
    }
 
    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;
    }
 
    void show() {
        System.out.println("사람 [ 이름 : " + name + ", 나이 : " + age + " ]");
    }
 
}

 

        Student.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Student extends Person {
 
    private String studentId;
 
    public Student() {
        this.studentId = "";
    }
 
    public String getStudentId() {
        return studentId;
    }
 
    public void setStudentId(String studentId) {
        this.studentId = studentId;
    }
    
    public void show() {
        System.out.print("학생 [ 이름 : " + getName() + ", ");
        System.out.print("나이 : " + getAge() + ", ");
        System.out.println("학번 : " + studentId + " ]");
    }
 
}
 

 

        ForeignStudent.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class ForeignStudent extends Student {
 
    private String nationality;
 
    public ForeignStudent() {
        this.nationality = "";
    }
 
    public String getNationality() {
        return nationality;
    }
 
    public void setNationality(String nationality) {
        this.nationality = nationality;
    }
    
    public void show() {
        System.out.print("학생 [ 이름 : " + getName() + ", ");
        System.out.print("나이 : " + getAge() + ", ");
        System.out.print("학번 : " + getStudentId() + ", ");
        System.out.println("국적 : " + nationality + " ]");
    }
 
}

 

        PeopleInformationExample.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class PeopleInformationExample {
 
    public static void main(String[] args) {
 
        Person person = new Person();
        person.setName("길동이");
        person.setAge(22);
 
        Student student = new Student();
        student.setName("황진이");
        student.setAge(23);
        student.setStudentId("100");
 
        ForeignStudent foreignStudent = new ForeignStudent();
        foreignStudent.setName("Amy");
        foreignStudent.setAge(30);
        foreignStudent.setStudentId("200");
        foreignStudent.setNationality("U.S.A");
 
        Person[] people = { person, student, foreignStudent };
 
        for (int i = 0; i < people.length; i++) {
            people[i].show();
        }
 
        System.out.println("\n\n");
 
        for (Person p : people) {
            p.show();
        }
 
    }
 
}
반응형