inheritance Quiz

JK·2022년 12월 21일
0

JAVA

목록 보기
12/28
post-thumbnail
  • 강사, 직원, 학생의 번호, ID, 이름, 과목(강사), 부서(직원), 반(학생)을 나타내는
    프로그램 만들기
  • 번호는 자동으로 순차 출력되도록 한다.
  • 출력
(번호)student1	(ID)A01	(이름):강유미	(반)JAVA반
(번호)student2	(ID)A02	(이름):홍길동	(반)C++반
(번호)staff1		(ID)S01	(이름):유길동	(부서)운영지원팀
(번호)staff2		(ID)S01	(이름):유길동	(부서)취업지원팀
(번호)lec1		(ID)G01	(이름):이길동	(과목)객체지향

1.Person

  • 모든 클래스의 공통 데이터를 모아놓는다.
  • infoString 만들기
  • getter&setter
package com.lec.ex13_quiz;

public class Person {
	private String no;
	private String id;
	private String name;
	public Person(String id, String name) {
		this.id = id;
		this.name = name;
	}
	public String infoString() {
		return "(번호)" + no + "\t(ID)" + id + "\t(이름):" + name;
	}
	public String getNo() {
		return no;
	}
	public void setNo(String no) {
		this.no = no;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

2. Gangsa

  • Person을 extends받은 Gangsa class
  • 과목, 번호 변수
package com.lec.ex13_quiz;

public class Gangsa extends Person {
	private String subject;
	public static int count=0;

	public Gangsa(String id, String name, String subject) {
		super(id, name);
		this.subject = subject;
		setNo ("lec" + (++count));
	}
	@Override      //Person의 infoString을 Override
	public String infoString() {
		// TODO Auto-generated method stub
		return super.infoString() + "\t(과목)" + subject + "\n";
	}
}

3. Staff

package com.lec.ex13_quiz;

public class Staff extends Person {
	private String department;
	public static int count=0;

	public Staff(String id, String name, String department) {
		super(id, name);
		this.department = department;
		setNo ("staff" + (++count));
	}
	@Override
	public String infoString() {
		// TODO Auto-generated method stub
		return super.infoString() + "\t(부서)" + department + "\n";
	}
}

4. Student

package com.lec.ex13_quiz;

public class Student extends Person {
	private String ban;
	public static int count=0;

	public Student(String id, String name, String ban) {
		super(id, name);
		this.ban = ban;
		setNo ("student" + (++count));
	}
	@Override
	public String infoString() {
		// TODO Auto-generated method stub
		return super.infoString() + "\t(반)" + ban + "\n";
	}
}

5. Main

  • 배열에 데이터 입력
  • 확장for문 이용하여 출력
package com.lec.ex13_quiz;

public class Main {

	public static void main(String[] args) {
		Person st1 = new Student ("A01", "강유미", "JAVA반");
		Person st2 = new Student("A02", "홍길동", "C++반");
		Person sf1 = new Staff("S01", "유길동", "운영지원팀");
		Person sf2 = new Staff("S01", "유길동", "취업지원팀");
		Person ga1 = new Gangsa("G01", "이길동", "객체지향");
		Person[] p = {st1, st2, sf1, sf2, ga1};
		for(Person pp : p)
			System.out.print(pp.infoString());
	}
}
profile
씨앗 개발자

0개의 댓글