【实验要求】手机专卖店为了促销自己的产品,决定发行内部购物券,但其他商场不能发行该购物券,编写一个MobileShop类(模拟手机专卖店),该类中有一个名字为InnerPurchaseMoney的内部类(模拟内部购物券)。
【实验步骤】
NewYear.java
class MobileShop {
InnerPurchaseMoney purchaseMoney1; //用内部类InnerPurchaseMoney声明对象purchaseMoney1
InnerPurchaseMoney purchaseMoney2; //用内部类InnerPurchaseMoney声明对象purchaseMoney2
private int mobileAmount; //手机的数量
MobileShop () {
purchaseMoney1=new InnerPurchaseMoney(20000); //创建价值为20000的purchaseMoney1
purchaseMoney2=new InnerPurchaseMoney(10000); //创建价值为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()+"部手机");
}
}
运行结果:
【实验要求】车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。
【实验步骤】
Goods.java
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;
}
}
DangerException.java
public class DangerException extends Exception {
String message;
public DangerException() {
message = "危险品";
}
public void toShow() {
System.out.print( message+" ");
}
}
Machine.java
public class Machine {
public void checkBag (Goods goods) throws DangerException {
if (goods.isDanger() ) {
DangerException danger = new DangerException();
throw danger; //抛出danger
}
else {
System.out.print( goods.getName()+"不是危险品!");
}
}
}
Check.java
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<name.length; i++) {
try { machine.checkBag( goods[i]);
System.out.println(goods[i].getName()+"检查通过");
}
catch( DangerException e ) {
e.toShow(); //e调用toShow() 方法
System.out.println(goods[i].getName()+"被禁止!");
}
}
}
}
运行结果: