교재 JAVA, JSP, Oracle 각각 가격이 30000, 25000, 15000 이다.
교재 DC는 30000원 이상 25% 할인
20000원 이상 20% 할인
15000원 이상 15%할인
결과> Java 교재는 정가는 30000원 할인된 가격은22500원 입니다.
JSP 교재는 정가는 20000원 할인된 가격은16000원 입니다.
Oracle 교재는 정가는 15000원 할인된 가격은12750원 입니다.
총금액: 51250원
객체지향
책값 DC하는 메서드를 구현
책값을 출력하는 메서드도 따로 구현
package kosta.oop;
public class Book {
String title;
int price;
int dc_price;
public Book() {
}
public Book(String title, int price) {
this.title = title;
this.price = price;
}
public void discount() {
if(price >= 30000) {
dc_price = (int) (price * 0.75);
}else if(price >= 20000 ) {
dc_price = (int) (price * 0.8);
}else if(price >= 15000) {
dc_price = (int) (price * 0.85);
}
}
public void print() {
System.out.println(title+" 교재의 정가는"+price+"원 할인된 가격은"+dc_price+"원 입니다.");
}
}
package kosta.oop;
public class BookMain {
public static void main(String[] args) {
int total = 0;
Book arr[] = {
new Book("Java", 30000),
new Book("JSP", 20000),
new Book("Oracle", 15000),
};
for(Book b : arr) {
b.discount();
b.print();
total += b.dc_price;
}
System.out.println("총금액 :"+total);
}
}
문제> 공통객체 => 클래스 => 객체생성 => 생성자 => 객체활용(메서드 호출)
전화번호부 관리프로그램 구현하자.
1명의 전화번호부 : 이름, 전화번호, 생년월일, 기능: 1명의 전화내역을 출력
전화번호부 크기 제한 : 10명 => 배열크기
실제 전화번호 입력 : 1, 2, 3 => 출력 실제 존재하는 전화번호만 출력
PhoneInfo클래스 Main클래스 Manager클래스
package kosta.phone;
public class PhoneInfo {
//상태 : 이름,전화번호,생년월일
//기능 : 전화번호부 출력
String name;
String phone_number;
String birth;
public PhoneInfo() {
}
public PhoneInfo(String name, String phone_number, String birth) {
this.name = name;
this.phone_number = phone_number;
this.birth = birth;
}
public void print() {
System.out.println("이름 : "+name);
System.out.println("전화번호 : "+phone_number);
System.out.println("생년월일 : "+birth);
System.out.println("==================");
}
}
package kosta.phone;
import java.util.Scanner;
public class Manager {
PhoneInfo[] arr = new PhoneInfo[10];
Scanner sc = new Scanner(System.in);
int count = 0;
public void addPhoneInfo() {
System.out.print("이름 :");
String name = sc.nextLine();
System.out.print("전화번호 :");
String phone_number = sc.nextLine();
System.out.print("생년월일 :");
String birth = sc.nextLine();
arr[count++] = new PhoneInfo(name, phone_number, birth);
}
public void listPhoneInfo() {
for(int i = 0; i < count; i++) {
arr[i].print();
}
}
public void searchPhonInfo() {
System.out.print("검색 :");
String name = sc.nextLine();
int idx = -1;
for(int i = 0; i < count; i++) {
PhoneInfo info = arr[i];
if(name.equals(info.name)) {
info.print();
idx = i;
}
}
if(idx == -1) {
System.out.println("찾을 수 없습니다.");
}
}
}
package kosta.phone;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Manager m = new Manager();
PhoneInfo p[] = new PhoneInfo[3];
while(true) {
System.out.println("1. 추가 2.전체출력 3.검색 4.종료");
System.out.print("메뉴선택 : ");
String menu = sc.nextLine();
switch (menu) {
case "1":
m.addPhoneInfo();
break;
case "2":
m.listPhoneInfo();
break;
case "3":
m.searchPhonInfo();
break;
case "4":
System.out.println("프로그램이 종료 되었습니다");
return;
}
}
}
}