手机专卖店为了促销自己的产品,决定发行内部购物券,但其他商场不能发行该购物券。编写一个 MobileShop 类(模拟手机专卖店),该类中有一个名字为 InnerPurchaseMoney 的内部类(模拟内部购物券)。
class MobileShop {
InnerPurchaseMoney purchaseMoney1;//【代码1】//用内部类InnerPurchaseMoney声明对象purchaseMoney1
InnerPurchaseMoney purchaseMoney2;//【代码2】 //用内部类InnerPurchaseMoney声明对象purchaseMoney1
private int mobileAmount; //手机的数量
MobileShop(){
purchaseMoney1=new InnerPurchaseMoney(20000);//【代码3】 //创建价值为20000的purchaseMoney1
purchaseMoney2=new InnerPurchaseMoney(20000);//【代码4】 //创建价值为10000的purchaseMoney2
}
void setMobileAmount(int m) {
mobileAmount = m;
}
int getMobileAmount() {
return mobileAmount;
}
class InnerPurchaseMoney {
int moneyValue;
InnerPurchaseMoney(int m) {
moneyValue = m;
}
void buyMobile() {
if(moneyValue>=20000) {
mobileAmount = mobileAmount-6;
System.out.println("用价值"+moneyValue+"的内部购物卷买了6部手机");
}else if(moneyValue<20000&&moneyValue>=10000) {
mobileAmount = mobileAmount-3;
System.out.println("用价值"+moneyValue+"的内部购物卷买了3部手机");
}
}
}
}
public class NewYear
{
public static void main(String args[]) {
MobileShop shop = new MobileShop();
shop.setMobileAmount(30);
System.out.println("手机专卖店目前有"+shop.getMobileAmount()+"部手机");
shop.purchaseMoney1.buyMobile();
shop.purchaseMoney2.buyMobile();
System.out.println("手机专卖店目前有"+shop.getMobileAmount()+"部手机");
}
}
运行结果:
实践二 检查危险品车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。编写一个 Exception 的子类 DangerException,该子类可以创建异常对象,该异常对象调用 toShow()方法输出“属于危险品”。编写一个 Machine 类,该类的方法 checkBag(Goods goods)当发现参数 goods 是危险品时(goods 的 isDanger 属性是 true)将抛出 DangerException 异常。程序在主类的 main()方法中的 try-catch 语句的 try 部分让 Machine 类的实例调用 checkBag (Goods goods)方法,如果发现危险品就在 try-catch 语句的 catch 部分处理危险品。
public class Check {
public static void main(String args[]) {
Machine machine = new Machine();
String name[] ={"苹果","炸药","西服","硫酸","手表","硫磺"};
Goods [] goods = new Goods[name.length]; //检查6件货物
for(int i= 0;i<name.length;i++) {
goods[i] = new Goods();
if(i%2==0) {
goods[i].setIsDanger(false);
goods[i].setName(name[i]);
}else {
goods[i].setIsDanger(true);
goods[i].setName(name[i]);
}
}
for(int i= 0;i<goods.length;i++) {
try {
machine.checkBag(goods[i]);//【代码1】 //检查物品
System.out.println(goods[i].getName()+"检查通过");
}catch(DangerException e) {
e.toShow();//【代码2】 //e调用toShow()方法
System.out.println(goods[i].getName()+"被禁止!");
}
}
}
}
public class DangerException extends Exception{
public String toShow(){
return "属于危险品";
}
}
public class Goods {
boolean isDanger;
String name;
public void setIsDanger(boolean boo) {
isDanger = boo;
}
public boolean isDanger() {
return isDanger;
}
public void setName(String s) {
name = s;
}
public String getName() {
return name;
}
}
public class Machine {
public void checkBag(Goods goods) throws DangerException {
if(goods.isDanger()) {
DangerException danger=new DangerException();//【代码1】 //抛出danger
throw danger;
}
else {
System.out.print(goods.getName()+"不是危险品! ");
}
}
}
运行结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)