面向对象--例题--将类作为引用数据类型定义成员变量和传参

例题

将类作为数据类型定义成员变量、将类作为引用数据类型传参

 

 

/*
    商品类别类:
        类别编号,类别名称
 */
public class GoodsKind {
    private String kindId;
    private String kingName;

    public GoodsKind() {
    }

    public GoodsKind(String kindId, String kingName) {
        this.kindId = kindId;
        this.kingName = kingName;
    }

    public String getKindId() {
        return kindId;
    }

    public void setKindId(String kindId) {
        this.kindId = kindId;
    }

    public String getKingName() {
        return kingName;
    }

    public void setKingName(String kingName) {
        this.kingName = kingName;
    }

    public void show(){
        System.out.println("类别编号:"+kindId+",类别名称:"+kingName);
    }
}




/*
    商品详细信息类:
        属性:商品编号,商品名称,所属类别,商品数量(大于0),商品价格(大于0),
        方法:盘点的方法,描述商品信息。
        内容包括商品名称,商品数量,商品价格,现在商品总价以及所属类别信息
 */
public class GoodsInfo {
    private String goodsId;
    private String goodsName;
    private GoodsKind goodsKind;                     //将类作为引用数据类型定义成员变量
    private int numbers;
    private double price;

    public GoodsInfo() {
    }

    public GoodsInfo(String goodsId, String goodsName, GoodsKind goodsKind) {          //传入的是类的对象的地址值
        this.goodsId = goodsId;
        this.goodsName = goodsName;
        this.goodsKind = goodsKind;
    }

    public String getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(String goodsId) {
        this.goodsId = goodsId;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public GoodsKind getGoodsKind() {
        return goodsKind;
    }

    public void setGoodsKind(GoodsKind goodsKind) {
        this.goodsKind = goodsKind;
    }

    public int getNumbers() {
        return numbers;
    }

    public void setNumbers(int numbers) {
        if (numbers > 0) {
            this.numbers = numbers;
        } else {
            this.numbers = 0;
        }

    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        if (price > 0) {
            this.price = price;
        } else {
            System.out.println("设置的价格有问题,请重新输入");
        }
    }

    //盘点的方法
    public void show() {
        if (numbers == 0) {
            System.out.println("库存数量异常,请联系管理员");
        }
        System.out.println("商品名称:" + goodsName);
        System.out.println("所属类别:" + goodsKind.getKingName());
        System.out.println("商品售价:" + price);
        System.out.println("库存数量:" + numbers);
        System.out.println("商品总价:" + (numbers*price));
    }
}




public class GoodsTest {
    public static void main(String[] args) {
        //创建第一种类别
        GoodsKind kind1 = new GoodsKind("1001", "洗发水");

        //创建第一个商品
        GoodsInfo goods1 = new GoodsInfo("sj001", "潘婷洗发水400ml", kind1);                //将kind1作为实参传递
        goods1.setNumbers(10);
        goods1.setPrice(25.0);
        goods1.show();

        System.out.println("=============================================");
        //创建第二个商品
        GoodsInfo goods2 = new GoodsInfo("sj002", "蜂花洗发水250ml", kind1);                //将kind1作为实参传递
        goods2.setNumbers(0);
        goods2.setPrice(11.5);
        goods2.show();

    }
}
posted @ 2021-12-06 23:12  赤兔胭脂小吕布  阅读(64)  评论(0)    收藏  举报