정보보안공부

Java_day17 본문

Language/Java

Java_day17

Steady_sp 2017. 3. 6. 02:27

<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
Comments