본문 바로가기

말하는 감자 탈출하기

Java 과제

1. static 변수로 회사원 사번 정리하기

회사원 클래스가 있을 때, 회사원이 한 명 입사할 때마다 사번이 자동으로 증가하도록 구현하세요. static 변수를 활용하세요

실행되는 EmployeeTest 클래스는 다음과 같습니다.

public class EmployeeTest {

	public static void main(String[] args) {

		Employee employeeLee = new Employee("이순신");
		System.out.println(employeeLee.employeeName + " 사번:"  
		                        + employeeLee.employeeID);
		
		Employee employeeKim = new Employee("김유신");
		System.out.println(employeeKim.employeeName + " 사번:"  
		                        + employeeKim.employeeID);
	}
}

//Employee.java
package test1;

public class Employee {
	
	static int serialNum=1000;
	int employeeID;
	String employeeName;
	
	
	public Employee(String name) {
		serialNum++;
		employeeID=serialNum;
		employeeName=name;
	}

}

2. HashMap 사용하기

다음 테스트 코드에서 CarTest 클래스의 결과가 true, true, false가 되도록 HashMap을 사용하여 CarFactory 클래스를 구현하세요 (Singleton 패턴도 사용하세요)

public class Car {
	String name;
	
	public Car() {}
	public Car(String name ) {
		this.name = name;
	}
}

public class CarTest {

	public static void main(String[] args) {
		CarFactory factory = CarFactory.getInstance( );
        Car car1 = factory.createCar("희수차");
		Car car2 = factory.createCar("희수차");
		System.out.println(car1 == car2); // true
	
		Car car3 = factory.createCar("도연차");
		Car car4 = factory.createCar("도연차");
		System.out.println(car3 == car4); // true
		System.out.println(car1 == car3); // false
	}

}

//CarFactory.java
package test2;

import java.util.HashMap;

public class CarFactory {

	private static CarFactory instance = new CarFactory();
	HashMap<String, Car> carMap = new HashMap<>();
	
	private CarFactory(){} // 생성자를 private으로 선언하여 외부에서 객체 생성을 막음
	public static CarFactory getInstance() {
		
		//getInstance 메서드를 이용해서 instance 값을 반환한다
		if(instance ==null) {
			instance = new CarFactory();
		}
			
		return instance;
		
	}
	public Car createCar(String name) {
		
		if(carMap.containsKey(name)) {
			return carMap.get(name);
		}
		
		Car car = new Car();
		carMap.put(name, car);
		return car;
		
	}
	
}

3. 배열 활용하기

Book클래스 코드의 일부가 다음과 같습니다. getter/setter를 추가하고 showBookInfo() 메서드를 만듭니다. BookTest 클래스에 Book[]를 만들고 Book 인스턴스를 추가한 후 각 인스턴스의 showBookInfo() 메서드가 호출될 때 실행 결과가 나오도록 Book과 BookTest 클래스를 구현하세요.

public class Book {
	private String author;
	private String title;
	
	public Book(String author, String title) {
		this.author = author;
		this.title = title;
	}
}

// Book.java
package test3;

public class Book {
	private String author;
	private String title;
	
	public Book(String author, String title) {
		this.author = author;
		this.title = title;
	}
	public String getAuthor() {
		return author;
	}


	public void setAuthor(String author) {
		this.author = author;
	}


	public String getTitle() {
		return title;
	}


	public void setTitle(String title) {
		this.title = title;
	}
    
    
	public void showBookInfo() {
		System.out.println(title+","+author);
	}
	 
}
// BookTest.java
package test3;

public class BookTest {

	public static void main(String[] args) {
		Book[] book = new Book[5];
				
		book[0]=new Book("조정래","태백산맥");
		book[1]=new Book("박완서","나목");
		book[2]=new Book("박경리","토지");
		book[3]=new Book("헤르만 헤세","데미안");
		book[4]=new Book("헤밍웨이","노인과 바다");
		
        for (Book b:book) {

            b.showBookInfo();

        }
    }

}

 

'말하는 감자 탈출하기' 카테고리의 다른 글

Java 중간 평가  (0) 2023.06.01
데이터베이스 설계  (0) 2023.05.30
Java day11  (0) 2023.05.29
Java day10  (0) 2023.05.28
원리틀 투리틀 쓰리리틀 인디언  (0) 2023.05.20