정보보안공부
Java_day17 본문
<1>*** Product
-> 추상메소드는 추상클래스에서만 정의한다.
-> abstract 메소드는 선언만. { } 안한다.
*** ProductEx
-> abstract클래스는 직접객체를 생성하지 못한다. Product p = new Product(); ->X
<2>*** ITest
-> interface ITest
-> void work(); 컴파일 단계에서 public abstarct가 된다. { }하지않는다.
-> default void setOn(); 인스턴스 메소드 선언시 default 필수
-> static void setVersion(); static 메소드 가능
-> 추상메소드 선언 - 기본
*** interfaceEx
-> ITest인터페이스를 상속하기위해 implements사용
-> ITest의 void wokr()를 오버라이딩하여 public void work() { }선언
*** interfaceEx1
-> inerfaceEx i = new interfaaceEx(); interfaceEx클래스의 객체선언
-> i.work();로 work()메소드 실행
<3>*** IBuyer
-> interface로 IBuyer 생성 void summary(); 추상메소드 선언
*** IShopping
-> interface로 IShopping 선언 void buy, void refund 추상메소드 선언
*** Person
-> Vector 사용
-> Person 클래스에 int id = 9999; String pname = "unknown"; 선언
-> public void buyer extends Person implements IBuyer, IShopping 선언
-> buyer클래스안에 public void buy, refund, summary선언
Vector<Product> item = new Vector<Product>(); 선언
-> void buy(Product p) { if (money < p.price) System.out.println("잔액부족")
money -= p.price, bonusPoint += p.bonusPoint,
item.add(p) : 제품을 Product item 벡터에 저장
System.out.println(p + "을/를 구입하였습니다");
-> void refund(Product p) { if (item.remove(p) ) {money += p.price,
bonusPoint -= p.bonus point, System.out.println(p + "을/를 반품하였습니다.") }
else System.out.prinln("반품할 제품이 없습니다.")
-> void summary() { int sum = 0; String itemList = "";
if(item.isEmpty()) { System.out.println("구입 목록이 비었습니다.") }
for(int i=0;i<item.size();i++) { Product p = (Product) item.get(i);
sum += p.price, itemList += p + ", ";
System.out.println("고객성명 : " +pname);
System.out.println("고객아이디 : " + id);
System.out.println("구입하신 물품의 총금액 : " + sum + "만원입니다.");
System.out.println("구입하신 제품 : " + itemList + "입니다.");
System.out.println("현재 남은 돈 : " + money + "만원입니다.");
System.out.println("현재 보너스 점수 : " + bonusPoint + "점입니다.");
*** Product
-> Product 클래스를 선언하고 그안에 int price; int bonusPoint;선언
-> 생성자 Product(int price) { this.price = price; bonusPoint = (int)(price/10.0);}
-> Product를 상속받은 Tv,Computer,Audio각각설정
-> TV,Computer,Audio ( ) { super(100),super(200),super(80)}으로 부모클래스의
Product생성자 int price를 호출한다.
-> public String toString() { return Tv, Computer, Audio; }로 return값설정
*** ProductEx
-> public static void(String [] args ) 안에
-> Buyer b = new Buyer();
-> Tv tv = new Tv();
-> Computer com = new Computer();
-> Audio au = new Audio(); 선언
-> pname = "unknown" 에서 b.pname = "홍길동"으로 멤버를 상속받음
-> id = "9999" 에서 b.id = "20170311" 으로 멤버를 상속받음
-> b.buy(tv)를 통해 Buyer클래스의 buy메소드 실행 이때 tv는 Product p 가된다.
p값은 Public String toString() { return "TV"; } 에의해 리턴값인 TV가 된다.
'Language > Java' 카테고리의 다른 글
Java_day16 (0) | 2017.03.05 |
---|---|
Java_day15 (0) | 2017.03.03 |
Java_day14 (0) | 2017.02.28 |
Java_day13 (0) | 2017.02.27 |
Java_day12_메소드,static과public (0) | 2017.02.27 |