繼承 封裝、多態集合的小練習

編寫程序實現披薩的製作。需求說明編寫程序,接收輸入信息,選擇需要製作的披薩。可供選擇的披薩有:培根披薩和海鮮披薩。
實現思路及關鍵代碼
1)分析培根披薩和海鮮披薩。
2)定義披薩類(作爲父類)。
屬性: 名稱、價格、大小;
方法:展示哦(show);
3)定義培根披薩和海鮮披薩,分別繼承披薩類。
4)定義披薩工廠類,根據輸入信息生產具體的披薩對象。
運行結果如下圖所示
這裏寫圖片描述
這裏寫圖片描述
創建父類 pizza類


/**
*
* @author Dwarf
*創建父類。
*/
public class Pizza {
private String name;
private double price ;
private int size ;
//創建get set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
//創建構造器,以供子類重載,空構造器一定要有
public Pizza() {
super();
}
//創建構造方法,方便子類重載方法
public Pizza(String name, double price, int size) {
super();
this.name = name;
this.price = price;
this.size = size;
}
//創建一個展示的方法
public String show (){
return “我是父類的展示方法,你們可以隨意重寫我”;
}

}

———-

創建子類培根披薩:
/**
*
* @author Dwarf
*海鮮披薩
*/
public class BaconPizza extends Pizza {
private int gram;//克重

//創建set get方法
public int getGram() {
return gram;
}

public void setGram(int gram) {
this.gram = gram;
}
//創建構造器,空構造器一般都是會寫出來的

public BaconPizza() {
super();
}

//創建帶三個父類屬性和一個子類屬性的構造方法,以備後面重載
public BaconPizza(String name, double price, int size, int gram) {
super(name, price, size);
this.gram = gram;
}

//重寫父類的show方法
public String show (){
return “名稱:”+getName()+”\n價格:”+getPrice()+”\n大小:”+getSize()+”\n培根克數:”+gram;
}

}

———-

創建子類、:海鮮披薩
/**
*
* @author Dwarf
*海鮮披薩
*/
public class SeeFoodPizza extends Pizza {
private String ingredients ;//配料、
//創建set get方法

public String getIngredients() {
return ingredients;
}

public void setIngredients(String ingredients) {
ingredients = ingredients;
}
//創建構造方法

public SeeFoodPizza() {
super();
}

//創建帶三個父類屬性和一個子類屬性的構造方法,以備後面重載
public SeeFoodPizza(String name, double price, int size, String ingredients) {
super(name, price, size);
this.ingredients = ingredients;
}

//重寫父類的show方法
public String show (){
return “價格:”+getPrice()+”大小:\n”+getSize()+”配料:\n”+ingredients;
}

}

———-

創建披薩工廠類
/**
*
* @author Dwarf
*工廠類
*/
import java.util.Scanner;//導入Scanner包

public class PizzaFactory {
private int choice;
//創建一個方法
public static Pizza getPizza(int choice){//父類作方法的返回值,返回的是子類
Pizza p = null;
Scanner sc = new Scanner(System.in);//創建掃描器

switch(choice){
case 1:

    System.out.println("請輸入培根克數:");
    int gram = sc.nextInt();
    System.out.println("請輸入披薩的大小:");
    int size = sc.nextInt();
    System.out.println("請輸入披薩價格:");
    double price = sc.nextDouble();
    //調用有參構造方法並賦值
p = new  BaconPizza("培根披薩", price, size, gram);

break;

case 2:
System.out.println(“請輸入配料信息”);
String ingredients = sc.next();
System.out.println(“請輸入披薩的大小:”);
size = sc.nextInt();
System.out.println(“請輸入披薩的 價格:”);
price = sc.nextDouble();
p= new SeeFoodPizza(“海鮮披薩”, price, size, ingredients);

    break;
}
return p;
}

}

———-

創建測試類
package com.bjsxt.com.test3;
/**
*
* @author Dwarf
*測試類
*/
import java.util.Scanner;//導入Scanner 包

public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//創建掃描器
System.out.println(“請選擇您要製作的披薩:1.培根披薩 2.海鮮披薩”);
int choice = sc.nextInt();
//類名直接調用類中的方法
Pizza p = PizzaFactory.getPizza(choice);
//打印輸出結果
System.out.println(p.show());
}
}
小生不才,初學JAVA,有不足之處,請各位大佬指教。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章