TIL 11일차. 객체배열

김기현·2025년 2월 24일

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);
	
}

}

profile
모든게 처음

0개의 댓글