package javawork;
public class MobileShop {
InnerPurchaseMoney p1;//声明内部类对象
InnerPurchaseMoney p2;
class InnerPurchaseMoney//内部类,内部类可以调用外部类的方法和成员变量
{
private int moneyValue;
InnerPurchaseMoney(int n)
{
this.moneyValue=n;
System.out.println("InnerPurchaseMoney!");
}
public void buyMobile()
{
if(moneyValue>=20000)
{
mobileAmount-=6;//外部类的成员变量
System.out.println("用价值"+moneyValue+"的内部购物券买了6部手机!");
}
else if(moneyValue<20000&&moneyValue>=10000)
{
mobileAmount-=3;
System.out.println("用价值"+moneyValue+"的内部购物券买了3部手机!");
}
}
}
private int mobileAmount;
MobileShop()
{
p1=this.new InnerPurchaseMoney(20000);//初始化内部类
p2=this.new InnerPurchaseMoney(10000);
System.out.println("MobileShop!");
}
public void setMobilePhone(int m)
{
mobileAmount=m;
}
public int getMobileAmount()
{
return mobileAmount;
}
}
public class TestMain {
public static void main(String args[])
{
MobileShop shop=new MobileShop();
shop.setMobilePhone(30);
System.out.println("手机店共有"+shop.getMobileAmount()+"部手机");
shop.p1.buyMobile();
System.out.println("手机店共有"+shop.getMobileAmount()+"部手机");
shop.p2.buyMobile();
}
}
InnerPurchaseMoney!
InnerPurchaseMoney!
MobileShop!
手机店共有30部手机
用价值20000的内部购物券买了6部手机!
手机店共有24部手机
用价值10000的内部购物券买了3部手机!