/*
自动贩卖机案例
用户输入1时 出现矿泉水
输入2时 出现可乐
输入3时 出现冰红茶
输入4时 出现雪碧
要求:
分别创建 各种饮料类 使用多态 来进行编写
*/
//创建包
package classes;
//导包
import java.util.Scanner;
//创建饮料类
class Dirnk{
//饮料的属性 为名字 和 价格
//定义属性
//名字属性
private String name ;
//价格属性
private int price ;
//提供无参构造方法
public Dirnk(){}
//提供有参构造方法
public Dirnk(String name , int price){
this.name = name ;
this.price = price ;
}
//提供名字属性的get/set方法
public void setName(String name ){
this.name = name ;
}
//get方法
public String getName(){
return name ;
}
//提供价格属性的get/set方法
public void setPrice(int price){
this.price = price ;
}
//提供get方法
public int getPrice (){
return price ;
}
}
/*
创建矿泉水类并且继承饮料类
*/
class Water extends Dirnk{
//提供无参构造方法
public Water(){}
//提供有参构造方法
public Water(String name , int price){
super(name , price);
}
}
//创建可乐类
class Coce extends Dirnk{
//提供无参构造方法
public Coce(){}
//提供有参构造方法
public Coce(String name , int price){
super( name , price );
}
}
//创建冰红茶类
class IceTea extends Dirnk {
//提供无参构造方法
public IceTea(){}
//提供有参构造方法
public IceTea(String name , int price){
super(name , price);
}
}
//创建雪碧类
class XueB extends Dirnk{
//提供无参构造方法
public XueB(){}
//提供有参构造方法
public XueB(String name , int price){
super(name , price);
}
}
//创建一个自动贩卖机类
class Machine{
//定义一个选择方法
//当用户输入不同的数字时候 跳出不同的饮料
public Dirnk sell(int n){
switch (n){
case 1 : Water wa = new Water(" 自来水 ", 1 );
return wa ;
case 2 : Coce ce = new Coce(" 可口可乐 ", 3 );
return ce ;
case 3 : IceTea te = new IceTea(" 冰红茶 ", 5 );
return te ;
case 4 : XueB xb = new XueB(" 雪碧 ", 5);
return xb ;
default: return null ;
}
}
}
//创建测试类
class TestDirnk{
//main方法
public static void main(String[] args){
//创建Scanner类对象 用来完成用户输入
Scanner sc = new Scanner(System.in);
//输入提示语句
System.out.println(" 给出你的选择 ");
//定义Scanner类对象的数据类型
int n = sc.nextInt();
//创建自动贩卖机对象
Machine ma = new Machine();
//通过ma调用sell方法 传入用户输入的数字
Dirnk dk = ma.sell(n);
//输出语句
System.out.println(" 饮料是: "+dk.getName()+" 价格是: "+dk.getPrice());
}
}