본문 바로가기

Java/본격 Java 퀴즈 기초

[Java] 사원 정보 출력(클래스 이용)

사원 정보 출력 프로그램을 만들었다.

사원 번호, 이름, 연봉 데이터를 멤버변수로 사용하였다.

.

.

Employee 클래스를 따로 만들어서 작업하였다.

연봉올리기(raiseSalary) 메소드는 소수점 없애는 법이 어려워서 반올림을 하였다.

사실 int형으로 반환하면 자동으로 소수점 자리를 없앨 수 있다.

package ex4;
import java.math.*;

public class Employee {
	private int id, salary;
	private String firstName;
	private String lastName;
	
	public Employee(int id, String firstName, String lastName, int salary) {
		this.id = id;
		this.firstName = firstName;
		this.lastName = lastName;
		this.salary = salary;
	}
	
	public int getID() { return id;}
	public String getFirstName() { return firstName;}
	public String getLastName() { return lastName; }
	public String getName() {return firstName + " " + lastName; }
	public int getSalary() { return salary; }
	public void setSalary(int salary) { this.salary = salary; }
	public int getAnnualSalary() { return salary * 12; }
	
	public int raiseSalary(int percent) {
		float raiseRate = 1 + percent/100f;
		float raise = salary * raiseRate;
		return salary = Math.round(raise);
        // int형으로 반환해도 된다.
	}
	
	public String toString() {
		return "Employee[ id = " + id + ", name = " +getName() + ", salary = " + salary + "]";
	}
}

.

.

package ex4;

public class TestEmployee {

	public static void main(String[] args) {
		Employee person1 = new Employee(100, "철수", "김", 1000000);
		Employee person2 = new Employee(101, "영희", "이", 1100000);
		Employee person3 = new Employee(102, "길동", "홍", 1300000);
		
		dispSalary(person1);
		person1.raiseSalary(15);
		dispSalary(person1);
		
		Employee[] busiArr = new Employee[3];
		busiArr[0] = person1;
		busiArr[1] = person2;
		busiArr[2] = person3;
		
		for(int i = 0; i < busiArr.length; i++) {
			System.out.println(busiArr[i].toString());
		}
	}
	
	public static void dispSalary(Employee e) {
		System.out.println("ID : " + e.getID());
		System.out.println("Name : " + e.getLastName() + e.getFirstName());
		System.out.println("Salary : " + e.getSalary());
		System.out.println("Annual : " + e.getAnnualSalary());
        
        //System.out.printf()를 이용해도 된다.
	}

}

철수의 연봉이 15%올랐을때도 출력할 수 있게 하였다.

728x90
반응형