SW공부 28일차

Guryena·2023년 2월 6일
0

CS

목록 보기
21/34

1. is a 관계와 has a 관계에 대하여 설명하시오.

  • IS - A관계(is a relationship : inheritance)
    일반적인(general) 개념과 구체적인(specific) 개념과의 관계

    상위 클래스 : 일반적인 개념 클래스( 예 - 포유류)
    하위 클래스 : 구체적인 개념 클래스( 예 - 사람, 호랑이, 독수리 등)

    단순히 코드를 재사용하는 목적으로 사용하지않는다. 의미를 부여해야한다.
  • HAS - A관계(composition)
    한 클래스가 다른 클래스를 소유한 관계

2. 다형성(polymorphism)이란 무엇인가?

  • 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들(상수, 변수, 식, 오브젝트, 함수, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다.
    반댓말은 단형성(monomorphism)으로, 프로그램 언어의 각 요소가 한가지 형태만 가지는 성질을 가리킨다.

3.다음을 만족하는 클래스 Employee를 작성하시오

  • 클래스 Employee(직원)은 클래스 Regular(정규직)와 Temporary(비정규직)의 상위 클래스
  • 필드: 이름, 나이, 주소, 부서, 월급 정보를 필드로 선언
  • 생성자 : 이름, 나이, 주소, 부서를 지정하는 생성자 정의
  • 메소드 printInfo() : 인자는 없고 자신의 필드 이름, 나이, 주소, 부서를 출력

4. 다음을 만족하는 클래스 Regular를 작성하시오.

클래스 Regular는 위에서 구현된 클래스 Employee의 하위 클래스
생성자 : 이름, 나이, 주소, 부서를 지정하는 상위 생성자 호출
Setter : 월급 정보 필드를 지정
메소드 printInfo() : 인자는 없고 "정규직"이라는 정보와 월급을 출력

package Test;

public class Test {

	public static void main(String[] args) {
		Employee regular = new Regular("김씨", 20, "서울", "인사", 4000000);
		regular.printInfo();
	}

}
public class Regular extends Employee {
	private int salary;
	
	public Regular(String name, int age, String adress, String Dep, int salary) {
		super(name, age, adress, Dep);
		this.salary = salary;
	}
	public void printInfo() {
		super.printInfo();
		System.out.println("정규직 " + salary);
	}
//	클래스 Regular는 위에서 구현된 클래스 Employee의 하위 클래스
//	생성자 : 이름, 나이, 주소, 부서를 지정하는 상위 생성자 호출
//	Setter : 월급 정보 필드를 지정
//	메소드 printInfo() : 인자는 없고 "정규직"이라는 정보와 월급을 출력
	
	
}
public class Employee {
	private String name;
	private int age;
	private String adress;
	private String Dep;

	public Employee(String name, int age, String adress, String Dep) {
		this.name = name;
		this.age = age;
		this.adress = adress;
		this.Dep = Dep;
	}

	public void printInfo() {
		System.out.println(name +" "+ age +" "+ adress + " "+Dep);
	}
	// - 필드: 이름, 나이, 주소, 부서, 월급 정보를 필드로 선언
//		- 생성자 : 이름, 나이, 주소, 부서를 지정하는 생성자 정의
//		- 메소드 printInfo() : 인자는 없고 자신의 필드 이름, 나이, 주소, 부서를 출력

}

0개의 댓글