Я получаю сообщение об ошибке, не статическую переменную, на которую нельзя ссылаться из статического контекста parts[0] = new Part("Nut", 12, 0.05);
Как бы реализовать перегруженные конструкторы с помощью «этих» вызовов.Реализовать перегруженные конструкторы с помощью «этих» вызовов
Part[] parts = new Part[5];
parts[0] = new Part("Nut", 12, 0.05);
parts[1] = new Part("Bolt", 15, 0.07);
// default name "Unknown"
parts[2] = new Part();
// default quantity -1
parts[3] = new Part("Screw");
// default price .01
parts[4] = new Part("Grommet", 4);
System.out.println("\nPARTS LIST");
for(Part p : parts)
{
System.out.println(p.getDescription() + ", " + p.getQuantity()
+ ", " + p.getCost());
}
parts[0].setDescription("Hex nut");
parts[1].setQuantity(30);
parts[2].setCost(0.19);
parts[3].setDescription("Rubber grommet");
parts[4].setQuantity(40);
System.out.println("\nPARTS LIST AFTER CHANGES");
for(Part p : parts)
{
// Uses the toString method!
System.out.println(p);
}
}
class Part
{
private String partDesc;
private int quantity; // parts quantity
private double cost; // parts cost
public Part(String d, int q, double c) // Constructor for Part
{
partDesc = d;
quantity = q;
cost = c;
}
public Part(String partDesc, double cost)
{
this("Unknown", -1, cost);
}
public Part(String partDesc)
{
this(partDesc, -1, .01);
}
public Part(String PartDesc, int quantity)
{
this(partDesc, quantity, 0.1);
}
public String getDescription() // getter for parts description
{
return partDesc;
}
public int getQuantity() // getter for parts quantity
{
return quantity;
}
public double getCost() // getter for parts cost
{
return cost;
}
public String setDescription(String d) //setter for parts description
{
partDesc = d;
return partDesc;
}
public int setQuantity(int newQuantity) //setter for parts quantity
{
quantity = newQuantity;
}
public double setCost(double newCost) //setter for parts cost
{
cost = newCost;
}
public String toString()
{
return partDesc + " , " + quantity + " , " + cost;
}
}
Какая строка кода показывает вашу ошибку? – Eran
_what является целью иметь объекты, сконфигурированные неполными или с недопустимыми значениями? _ Несколько конструкторов, как правило, облегчают жизнь программе, избегая необходимости определять значения, которые на данный момент не отображаются. Но в реальности они делают нашу жизнь сложнее, потому что мы не можем полагаться на объекты beeig, настроенные правильно и лаконично, поэтому нам нужно распространять проверки целостности всей программы. Пожалуйста, упростите нашу жизнь, предоставив несколько конструкторов, только если у вас есть веская причина для них, кроме удобства. –