題目:披薩商店
題目:

普通實(shí)現(xiàn):
package com.gao.Project.Pro2;
public class Pizza {
//父類:共同的屬性:名稱,大小,價(jià)格
//共同的方法:展示披薩的信息
//屬性:
private String name; //名稱
private int size; //大小
private int price; //價(jià)格
//方法:
//為屬性添加Setter,Getter方法 快捷鍵:alt+insert
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
//展示披薩信息:
public String showpizza(){
return "名稱:"+name+"\n價(jià)格:"+price + "元\n大小:"+size +"寸\n";
}
//構(gòu)造器:
//保證空參構(gòu)造器的存在:
//(1)便于通過反射,創(chuàng)建運(yùn)行時(shí)類的對象
//(2)便于子類繼承此運(yùn)行實(shí)類是,默認(rèn)調(diào)用空參構(gòu)造器時(shí),保證父類有此構(gòu)造器
public Pizza() {
}
//包括全部參數(shù)的構(gòu)造器
public Pizza(String name, int size, int price) {
this.name = name;
this.size = size;
this.price = price;
}
}
package com.gao.Project.Pro2;
public class FruitsPizza extends Pizza{
//屬性:配料
private String burdening;
public String getBurdening() {
return burdening;
}
public void setBurdening(String burdening) {
this.burdening = burdening;
}
//構(gòu)造器
//空參構(gòu)造器
public FruitsPizza() {
}
//包括全部參數(shù)構(gòu)造器
public FruitsPizza(String name, int size, int price, String burdening) {
super(name, size, price);
this.burdening = burdening;
}
//重寫父類showpizza方法
@Override
public String showpizza() {
return super.showpizza()+"配料水果:"+burdening;
}
}
package com.gao.Project.Pro2;
public class BaconPizza extends Pizza{
//屬性:克數(shù)
private double weight;
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
//構(gòu)造器
//空參構(gòu)造器
public BaconPizza() {
}
//包括全部參數(shù)的構(gòu)造器
public BaconPizza(String name, int size, int price, double weight) {
super(name, size, price);
this.weight = weight;
}
//重寫父類showpizza方法
@Override
public String showpizza() {
return super.showpizza()+"培根克數(shù):"+weight+"g";
}
}
package com.gao.Project.Pro2;
import java.net.Socket;
import java.sql.SQLOutput;
import java.util.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();//選擇
switch (choice){
case 1:
{
System.out.println("請輸入培根的克數(shù):");
double weight = sc.nextDouble();
System.out.println("請輸入披薩的大小;");
int size = sc.nextInt();
System.out.println("請輸入披薩的價(jià)格:");
int price = sc.nextInt();
//將錄入的信息封裝成培根披薩的信息
BaconPizza bp = new BaconPizza("培根披薩",size,price,weight);
System.out.println(bp.showpizza());
}
break;
case 2:
{
System.out.println("請輸入你想要加入的水果:");
String burdening = sc.next();
System.out.println("請輸入披薩的大小:");
int size = sc.nextInt();
System.out.println("請輸入披薩的價(jià)格:");
int price = sc.nextInt();
//將錄入的信息封裝成水果披薩的信息
FruitsPizza fp = new FruitsPizza("水果披薩",size,price,burdening);
System.out.println(fp.showpizza());
//加代碼塊,作用在不同的作用域
}
break;
}
}
}
利用工廠加強(qiáng):
新加了PizzaStore類
package com.gao.Project.Pro2;
import java.util.Scanner;
public class PizzaStore {
public static Pizza getPizza(int choice){
Pizza p = null;
Scanner sc = new Scanner(System.in);
switch (choice){
case 1:
{
System.out.println("請輸入培根的克數(shù):");
double weight = sc.nextDouble();
System.out.println("請輸入披薩的大小;");
int size = sc.nextInt();
System.out.println("請輸入披薩的價(jià)格:");
int price = sc.nextInt();
//將錄入的信息封裝成培根披薩的信息
BaconPizza bp = new BaconPizza("培根披薩",size,price,weight);
p = bp;
}
break;
case 2:
{
System.out.println("請輸入你想要加入的水果:");
String burdening = sc.next();
System.out.println("請輸入披薩的大小:");
int size = sc.nextInt();
System.out.println("請輸入披薩的價(jià)格:");
int price = sc.nextInt();
//將錄入的信息封裝成水果披薩的信息
FruitsPizza fp = new FruitsPizza("水果披薩",size,price,burdening);
p = fp;
//加代碼塊,作用在不同的作用域
}
break;
}
return p;
}
}
只修改了原代碼的Test類
package com.gao.Project.Pro2;
import java.net.Socket;
import java.sql.SQLOutput;
import java.util.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 pizza = PizzaStore.getPizza(choice);
System.out.println(pizza.showpizza());
}
}

浙公網(wǎng)安備 33010602011771號(hào)