티스토리 뷰

반응형

⊙ 문제

 

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

 

 

Person

Student

ForeignStudent

필드

이름,나이

학번

국적

메서드

접근자와 생성자, show()

생성자

모든 필드를 초기화하는 생성자

 

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

 


 

⊙ 문제 접근 과정

 

문제에서 말하는 필드(이름, 나이, 학번, 국적)과 접근자, 생성자, show 메서드 그리고 초기화하는 생성자를 잊지 말고 추가해주자 

 

 


 

⊙ 문제 풀이

 

class Person {
    String name;
    int age;
    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //접근자
    String getName() {
        return name;
    }
    int getAge() {
        return age;
    }
    //설정자
    void setName(String name) {
        this.name=name;
    }
    void setAge(int age) {
        this.age=age;
    }

    String show() {
        return ("사람[이름 : " + name + ", 나이 : " + age + "]");
    }
}

class Student extends Person {
    int class_num;

    Student(String name, int age, int class_num) {
        super(name, age);
        this.class_num = class_num;
    }
    //접근자
    int getClass_num() {
        return class_num;
    }
    //설정자
    void setClass_num(int class_num) {
        this.class_num=class_num;
    }

    String show() {
        return ("사람[이름 : " + name + ", 나이 : " + age + ", 학번 : " + class_num + "]");
    }
}

class ForeignStudent extends Student {
    String country;

    ForeignStudent(String name, int age, int class_num, String country) {
        super(name, age, class_num);
        this.country=country;
    }
    //접근자
    String getCountry() {
        return country;
    }
    //설정자
    void setCountry(String country) {
        this.country = country;
    }
    String show() {
        return ("사람[이름 : " + name + ", 나이 : " + age + ", 학번 : " + class_num +", 국적 : " + country + "]");
    }
}

public class Main {
    public static void main(String[] args) {
        Person[] p = {new Person("길동이",22),new Student("황진이",23,100),new ForeignStudent("Amy",30,200,"U.S.A")};

        for (Person k : p) {
            System.out.println(k.show());
        }
    }
}

 

 


⊙ 결과

 


⊙ 마무리

 

NONE

 

좋아요 로그인하지 않아도 누를 수 있습니다!

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함