public class Book {
private int no;
private String name;
private int price;
public Book() {}
public Book(int no, String name, int price) {
this.no = no;
this.name = name;
this.price = price;
}
// Getter, Setter
public int getNo() {return no;}
public String getName() {return name;}
public int getPrice() {return price;}
public void setNo(int no) {this.no = no;}
public void setName(String name) {this.name = name;}
public void setPrice(int price) {this.price = price;}
}
public class BookService {
private Book[] database = new Book[10];
private int position = 0;
// 새로운 책 정보를 전달받아서 등록하는 기능
public void addBook(Book book) {
if (position < database.length) {
database[position] = book;
position++;
}
}
// 모든 책 정보를 출력하는 기능
public void printAllBooks() {
for (Book book : database) {
if (book != null) {
System.out.println("도서번호 : " + book.getNo());
System.out.println("도서제목 : " + book.getName());
System.out.println("도서가격 : " + book.getPrice());
}
}
}
// 최저 가격과 최고 가격을 전달받아서 해당하는 책 정보를 출력하는 기능
public void printBooksByPrice(int min, int max) {
for (Book book : database) {
if (book != null) {
if (book.getPrice() >= min && book.getPrice() <= max) {
System.out.println("도서번호 : " + getNo());
System.out.println("도서제목 : " + getName());
System.out.println("도서가격 : " + getPrice());
}
}
}
}
// 책 번호를 전달받아서 해당 책을 출력하는 기능
public void printBookByNo(int no) {
for (Book book : database) {
if (book != null && book.getNo() == no) {
System.out.println("도서번호 : " + getNo());
System.out.println("도서제목 : " + getName());
System.out.println("도서가격 : " + getPrice());
}
}
}
// 책 정보를 전달받아서 그 책 번호에 해당하는 책 정보를 변경하는 기능
public void updateBook(Book book) {
for (Book b : database) {
if ( b != null && b.getNo() == book.getNo()) {
b.setName(book.getName());
b.setPrice(book.getPrice());
// 또는
// String name = book.getName();
// int price = book.getPrice();
// b.setNAme(name);
// b.setPrice(price);
}
}
}
// 책 번호를 전달받아서 해당 책을 삭제하는 기능
public void deleteBook(int no) {
// 삭제할 책의 인덱스를 담을 변수
int index = -1; // 절대 일어나지 않을 번지
for (int i=0; i<position; i++) {
Book book = database[i];
if (book.getNo() == no) {
index = i;
break;
}
}
if (index != -1) {
if (index < (position -1)) {
database[index] = database[position - 1];
}
database[position-1] = null;
position--;
}
}
}
import java.util.Scanner;
public class BookApp {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
BookService service = new BookService();
for (;;) {
System.out.println("1. 등록 2. 전체 출력 3. 가격별 출력 4. 번호별 출력 5. 수정 6. 삭제 0. 종료");
/*
1. 책 번호, 이름, 가격을 입력받아서 Book객체에 담고, Book 객체를 BookService 객체의 addBook메소드에 전달해서 저장
2. BookService객체의 printAllBooks메소드를 실행해서 전체 책 정보 출력
3. 최저 가격, 최고 가격을 입력받아서 BookService객체의 printBooksByPrice메소드에 전달해서 책 정보 출력하기
4. 상품 번호를 입력받아서 BookService객체의 printBookByNo메소드에 전달해서 책 정보 출력하기
5. 정보를 변경할 책 번호와 새 이름, 새 가격을 입력받아서 Book 객체에 담고, Book 객체를 BookService 객체의 updateBook 메소드에 전달해서 정보 변경하기
6. 삭제할 책 번호를 입력받아서 BookService객체의 deleteBook 메소드에 전달해서 책 정보 삭제하기
*/
}
}
}
package kr.co.jhta.vo;
public class Professor {
private String name;
public Professor() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package kr.co.jhta.vo;
public class Student {
private int no;
private String name;
public Student() {
}
public int getNo() {
return no;
}
public String getName() {
return name;
}
public void setNo(int no) {
this.no = no;
}
public void setName(String name) {
this.name = name;
}
}
package kr.co.jhta.app; // 패키지 선언
//import kr.co.jhta.vo.Professor;
//import kr.co.jhta.vo.Student; // 다른 패키지에 있는 클래스는 import 구문으로 해당 클래스의 전체 경로(패키지 경로 + 클래스)를 명시해야 한다.
import kr.co.jhta.vo.*;
public class StudentApp {
public static void main(String[] args) {
Student s1 = new Student();
s1.setNo(20);
s1.setName("홍길동");
System.out.println("번호 : " + s1.getNo());
System.out.println("이름 : " + s1.getName());
Professor p = new Professor();
p.setName("김교수");
System.out.println("교수명 : " + p.getName());
}
}