- 강사, 직원, 학생의 번호, 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());
}
}