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 |