기능만 모아놓은 클래스
단순 객체 1개를 표현하는 클래스
기능+보유하고 있는 자료용 객체
관리하기 어렵다.
class 수학성적들{
수학성적[] = {A수학, B수학, C수학};
}
class 영어성적들{
영어성적[] = {........};
}
-------vs-------
class 학생성적
{
수학
영어
국어
}
학생성적[] scores;
scores[0]
매장 클래스
가전제품매장클래스
가구매장클래스
가구 (침대/책상/의자)
public class Employee{
int empNum; //사번
String name;
String birthday;
String position; //직급
boolean isWork; //재직여부
Employee(String name, int empNum){
this(name, empNum);
}
Employee(String name, int empNum, String birthday, String position){
this.name = name;
this.empNum = empNum;
this.birthday = birthday;
this.isWork = true;
}
public class EmployeeManagement{
ArrayList<Employee> emps;
EmployeeManagement(ArrayList<Employee> emps){
this.emps = emps;
}
//전체 사원 조회
void printAllEmp() {
System.out.print("전체 사원(퇴사 포함): ");
for (Employee e : emps) {
System.out.print(e.name + " ");
}
System.out.println();
}
//재직중인 사원만 조회
void printCurrentEmp() {
System.out.print("재직중인 사원: ");
for (Employee e : emps) {
if(e.isWork != false) {
System.out.print(e.name + " ");
}
}
System.out.println();
}
//신규 사원 추가하기
//신규사원 추가(객체 직접 생성해서 넣기)
void addEmployee(Employee e) {
this.emps.add(e);
}
//신규사원 추가(이름, 사번)
void addEmployee(String name, int empNum) {
Employee e = new Employee(name, empNum);
emps.add(e);
}
//퇴사 처리하기
void resign(Employee e) {
if (e.isWork != false) {
e.isWork = false;
}
}
}
public class EmployeeMain {
public static void main(String[] args) {
//이름 사번 생일 직급
Employee e1 = new Employee("김사장", 0, "2023-01-01", "사장");
Employee e2 = new Employee("박팀장", 1, "2023-01-02", "팀장");
ArrayList<Employee> emps = new ArrayList<Employee>();
emps.add(e1);
emps.add(e2);
EmployeeManagement em = new EmployeeManagement(emps);
//신규사원 추가 3명(직접 객체 생성) or (이름, 사번)
em.addEmployee(new Employee("강백호", 2));
em.emps.get(2).setPosition("신입사원");
em.emps.get(2).setBirthday("1950-01-01");
em.emps.get(2).empInfo();
em.addEmployee(new Employee("송태섭", 3));
em.addEmployee("정대만", 4);
em.addEmployee("채치수", 5);
em.printAllEmp(); //전체 사원 조회
em.resign(em.emps.get(2)); //강백호 퇴사처리
em.printCurrentEmp(); //재직중인 사원 조회, 강백호 없음
em.emps.get(2).empInfo(); //퇴사한 강백호 정보출력 재직정보 false
em.printAllEmp(); //다시 전체 사원 조회해보기
}
}