1)객체 배열
객체 배열이란?
객체 참조형 변수를 저장하는 배열로 배열의 자료형을 클래스명(사용자 정의 자료형)으로 지정하여 활용한다
객체배열 선언과 할당
선언 : 클래스명[] 배열명; , 클래스명 배열명[]; ex) Academy arr[];
할당 : 배열명 = new 클래스명[배열크기]; ex) arr = new Academy[5];
선언과 동시에 할당 : 클래스명 배열명[] = new 클래스명 [배열크기];
객체배열 초기화
인덱스를 이용한 초기화 : 배열명[i] = new 클래스명();
ex) arr[0] = new Academy(1,”KH정보교육원);
arr[1] = new Academy(2,”케이에이치);
선언과 동시에 할당 초기화 : 클래스명 배열명[] ={new 클래스명(), new 클래스명()};
ex) Academy arr[] = {new Academy(1,”KH정보교육원), new Academy(2,”케이에이치)};
2)예제 풀이
다음은 객체 배열을 사용하는 예제에 대한 풀이다. 조건은 다음과 같다.
링크텍스트
1)Employee 클래스
package com.hw1.model.vo;
public class Employee {
private int empNo;
private String empName;
private String dept;
private String job;
private int age;
private char gender;
private int salary;
private double bonusPoint;
private String phone;
private String address;
public Employee() {
}
public Employee(int empNo, String empName, int age, char gender, String phone, String address) {
this.empNo = empNo;
this.empName = empName;
this.age = age;
this.gender = gender;
this.phone = phone;
this.address = address;
}
public Employee(int empNo, String empName, String dept, String job, int age, char gender, int salary,
double bonusPoint, String phone, String address) {
this.empNo = empNo;
this.empName = empName;
this.dept = dept;
this.job = job;
this.age = age;
this.gender = gender;
this.salary = salary;
this.bonusPoint = bonusPoint;
this.phone = phone;
this.address = address;
}
//public String information() {
//}
public int getEmpNo() {
return empNo;
}
public void setEmpNo(int empNo) {
this.empNo = empNo;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public double getBonusPoint() {
return bonusPoint;
}
public void setBonusPoint(double bonusPoint) {
this.bonusPoint = bonusPoint;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
2)Run 클래스
package com.hw1.run;
import com.hw1.model.vo.Employee;
public class Run {
public static void main(String[] args) {
Employee[] emp = new Employee[3];
emp[0]=new Employee();
emp[1]=new Employee(1,"홍길동",19,'M',"01022223333","서울 잠실");
emp[2]=new Employee(2,"강말순","교육부","강사",20,'F',1000000,0.01,"01011112222","서울 마곡");
for(int i = 0; i < 3; i++) {
System.out.printf("emp[%d] :%d, %s, %s, %s, %d, %c, %d, %.1f, %s, %s\n",i, emp[i].getEmpNo()
,emp[i].getEmpName(), emp[i].getDept(), emp[i].getJob(), emp[i].getAge(),
emp[i].getGender(),emp[i].getSalary(), emp[i].getBonusPoint(),emp[i].getPhone()
, emp[i].getAddress());
}
System.out.println("===============================================================");
emp[0].setEmpNo(0);
emp[0].setEmpName("김말똥");
emp[0].setDept("영업부");
emp[0].setJob("팀장");
emp[0].setAge(30);
emp[0].setGender('M');
emp[0].setSalary(3000000);
emp[0].setBonusPoint(0.2);
emp[0].setPhone("01055559999");
emp[0].setAddress("전라도 광주");
emp[1].setDept("기획부");
emp[1].setJob("부장");
emp[1].setSalary(4000000);
emp[1].setBonusPoint(0.3);
for(int i = 0; i < 2; i++) {
System.out.printf("emp[%d] :%d, %s, %s, %s, %d, %c, %d, %.1f, %s, %s\n",i, emp[i].getEmpNo()
,emp[i].getEmpName(), emp[i].getDept(), emp[i].getJob(), emp[i].getAge(),
emp[i].getGender(),emp[i].getSalary(), emp[i].getBonusPoint(),emp[i].getPhone()
, emp[i].getAddress());
}
System.out.println("===============================================================");
for(int i = 0; i < emp.length; i++) {
System.out.printf("%s의 연봉 : %d원\n",emp[i].getEmpName(), (int)(emp[i].getSalary()+(emp[i].getSalary()*emp[i].getBonusPoint()))*12);
}
System.out.println("===============================================================");
int everage=0;
for(int i = 0; i < emp.length; i++) {
everage += (int)(emp[i].getSalary()+(emp[i].getSalary()*emp[i].getBonusPoint()))*12;
}
System.out.printf("직원들의 연봉의 평균 : %d원",everage/3);
}
}