面向对象--例题--将类作为引用数据类型定义成员变量和传参
例题
将类作为数据类型定义成员变量、将类作为引用数据类型传参
/*
商品类别类:
类别编号,类别名称
*/
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();
}
}