타입변환, 객체 타입 확인을 사용 했고
일반관리자만 도서확인이 불가능 하게 동작은 합니다
public class Book {
public String bookName;
public String author;
public int price;
public Book() {
}
public Book(String bookName, String author, int price) {
this.bookName = bookName;
this.author = author;
this.price = price;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public void setAuthor(String author) {
this.author = author;
}
public void setPrice(int price) {
this.price = price;
}
}
public class Manager extends Book{
public Manager() {
}
public String toString() {
return ("책 이름 : " + bookName + ", 저자 : " + author + ", 가격 : " + price);
}
}
import java.util.*;
public class Management {
Book m = new Manager();
Book g = new Book();
ArrayList<Manager> list = new ArrayList<Manager>();
Scanner scan = new Scanner(System.in);
int menu, authority;
int count = 0;
public Management() {
}
void run() {
authority();
for (;;) {
if (authority == 1) {
menu(m);
} else if (authority == 2) {
menu(g);
}
}
}
void authority() {
System.out.println("1. 관리자");
System.out.println("2. 일반");
authority = scan.nextInt();
}
void menu(Book m) {
System.out.println("1. 입력");
System.out.println("2. 출력");
System.out.println("3. 종료");
System.out.println("4. 관리자 변경");
System.out.print("선택 : ");
menu = scan.nextInt();
if (menu == 1) {
input(m);
} else if (menu == 2) {
if (m instanceof Manager) {
Manager manager = (Manager) m;
output(manager);
} else {
System.out.println("권한이 없습니다");
}
} else if (menu == 3) {
System.exit(1);
} else if (menu == 4) {
authority();
}
}
void input(Book m) {
String bookName;
String author;
int price;
System.out.print("책 이름 : ");
bookName = scan.next();
System.out.print("저자 : ");
author = scan.next();
System.out.print("가격 : ");
price = scan.nextInt();
list.add(new Manager());
list.get(count).setBookName(bookName);
list.get(count).setAuthor(author);
list.get(count).setPrice(price);
count++;
}
void output(Manager m) {
if (count == 0) {
System.out.println("도서가 없습니다.");
} else if (count > 0) {
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).toString());
}
}
}
}
public class ManagementExample {
public static void main(String[] args) {
new Management().run();
}
}
인터페이스2(java) (0) | 2021.01.15 |
---|---|
인터페이스(java) (0) | 2021.01.15 |
추상 메소드와 오버라이딩 (0) | 2021.01.14 |
객체 타입 확인 instanceof (java) (0) | 2021.01.14 |
강제 타입 변환(java) (0) | 2021.01.14 |