ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Power JAVA 10장 ) 상속 - LAB
    IT/솔루션) Power Java 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 의 경우는 에러없이 접근 가능.
     */

    댓글

다치지 말고 운동하자.