java我的对象值不会保存。显示空值
我有三门课:
- 运动装(超类)
- 泽西岛(亚类)
- 司机
我的车手里有一个ArrayList,用来存放我所有的运动衫。 当用户输入所有值(库存、价格、产品、团队、套件、尺寸、性别)时, 它会将它们显示回来,它会显示空值:
Product: null
In stock: 0
Price: 0
Team:
Kit:
Size:
Gender:
超类(Sportswear)有变量stock, price and product
(因此我可以包括其他产品,而不仅仅是运动衫)
子类(Jersey)包含变量team, kit, size, gender
。它还包含方法jerseyDisplay()
,它显示了上面的内容
输入值后,我在驱动程序中输入:
Jersey jersey = new Sportswear(stock, price, product, team, kit, size, gender);
sportswear.add(jersey);
jersey.jerseyDisplay();
这完全错了吗?为什么输入的值没有显示出来
子类Jersey
中的jerseyDisplay()
方法是:
public void jerseyDisplay()
{
super.sportswearDisplay();
System.out.println("Team: "+team);
System.out.println("Kit: "+kit);
System.out.println("Size: "+size);
System.out.println("Gender: "+gender);
}
@DessertIvy这是运动服超类:
public class Sportswear
{
//instance variables
private int stock;
private float price;
private String product;
//blank constructor
public Sportswear()
{
this.stock = 0;
this.price = 0;
this.product = "";
}
//detailed constructor
public Sportswear(int s, float p, String pd)
{
this.stock = stock;
this.price = price;
this.product = product;
}
//setters
public void setStock(int stock)
{
this.stock = stock;
}
public void setPrice(float price)
{
this.price = price;
}
public void setProduct(String product)
{
this.product = product;
}
//getters
public int getStock()
{
return stock;
}
public float getPrice()
{
return price;
}
public String getProduct()
{
return product;
}
//increase stock
public int increaseStock()
{
stock = stock++;
return stock;
}
//decrease stock
public int decreaseStock()
{
stock = stock - 1;
return stock;
}
public void sportswearDisplay()
{
System.out.println("Product: "+product);
System.out.println("In stock: "+stock);
System.out.println("Price: "+stock);
}
}
Jersey子类中的构造函数:
public Jersey(int stock, float price, String product, String team, String kit, String size, String gender)
{
super(stock, price, product);
this.team = "";
this.kit = "";
this.size = "";
this.gender = "";
}
# 1 楼答案
问题在您的两个承包商内:
及
您应该使用作为参数传递的值初始化变量。。。或者使用
setXXX
方法。在构造函数中,它应该如下所示:此外,正如前面提到的,这一行
Jersey jersey = new Sportswear(stock, price, product, team, kit, size, gender);
甚至不应该编译。。。你可能是指Jersey jersey = new Jersey(stock, price, product, team, kit, size, gender);