因此,我目前正在学校上课,当时我的学校名为Java(Mocha)中的Ap Computer Science。我被困在4.12.4的舞台上。这是练习
在这个问题中,您将设计一些类别,分别代表服装店中的不同服装。
您将为TShirt,牛仔裤,运动衫和服装撰写课程。
Clothing类应具有两个实例变量:一个用于表示服装的大小(字符串),另一个用于表示服装的颜色(也是字符串)。
服装也应该有两个访问器(getter方法):
public String getSize()
public String getColor()
Sweatshirt类应具有一个私有实例变量(或字段)以存储它是否具有引擎盖,以及一个相应的getter方法
public boolean hasHood()
TShirt类应该有一个专用字段来存储结构,并为该结构指定一个对应的getter
public String getFabric()
所有牛仔裤应具有蓝色。
构造函数应采用以下格式:
public Clothing(String size, String color)
public TShirt(String size, String color, String fabric)
public Sweatshirt(String size, String color, boolean hasHood)
public Jeans(String size)
这是我的代码。
TShirt.java:
public class TShirt extends Clothing
{
private String size;
private String color;
private String fabric;
public TShirt(String Size, String Color, String Fabric)
{
size = Size;
color = Color;
fabric = Fabric;
}
public String fabric()
{
return this.fabric;
}
}
Jeans.java:
public class Jeans extends Clothing
{
private String size;
private String color = "blue";
public Jeans(String Size)
{
size = Size;
}
public String getColor()
{
return this.color;
}
}
Sweatshirt.java:
public class Sweatshirt extends Clothing
{
private String size;
private String color;
private boolean hasHood;
public Sweatshirt(String Size, String Color, boolean HasHood)
{
//super(Clothing);
size = Size;
color = Color;
hasHood = HasHood;
}
public boolean hasHood()
{
return this.hasHood;
}
}
Clothing.java:
public abstract class Clothing
{
private String size;
private String color;
private String fabric;
public Clothing(String Size, String Color)
{
this.size = size;
this.color = color;
}
public String getSize()
{
return this.size;
}
public String getColor()
{
return this.color;
}
public String getFabric()
{
return this.fabric;
}
}
这是我运行程序时遇到的错误列表
root/TShirt.java:9: error: constructor Clothing in class Clothing cannot be applied to given types;
{
^
required: String,String
found: no arguments
reason: actual and formal argument lists differ in length
root/Jeans.java:7: error: constructor Clothing in class Clothing cannot be applied to given types;
{
^
required: String,String
found: no arguments
reason: actual and formal argument lists differ in length
root/Sweatshirt.java:8: error: constructor Clothing in class Clothing cannot be applied to given types;
{
^
required: String,String
found: no arguments
reason: actual and formal argument lists differ in length
3 errors
Error: Could not find or load main class ClothingTester
我不知道我做错了什么,所以请有人帮助我几天后才坚持上这堂课。
最佳答案
扩展Clothing类的类似乎抛出了错误。一个来自TShirt(我看不到代码),另一个来自Jeans,另一个来自Sweatshirt(这是您发布的代码中的两次)。
每当您扩展Class时,如果您没有立即初始化继承的Class的构造函数,编译器都会抱怨。在所有显示的扩展类中,没有人这样做。因此,为您起步,我提供了最少的Sweatshirt类,该类可初始化super
构造函数,或者在您每次创建Sweatshirt对象时,它都初始化Clothing
的情况。在这种情况下,super
是Clothing
。同样,由于您是从Clothing类扩展而来的,因此无需在扩展类中重新定义Size和Color属性。
当使用名称相同但“大小写”不同的不同变量时也要小心,例如。查看您提供的代码,查看Clothing类的构造函数。在那里输入值:大小和颜色没有被使用。应该是this.size = Size,this.color = Color。因为您使用的是类自变量来设置自身,所以我很确定您会收到错误消息或只是没有获得正确的值。我不建议命名仅区分大小写的不同变量。
public class Sweatshirt extends Clothing
{
//private String size;
//private String color;
private boolean hasHood;
public Sweatshirt(String inSize, String inColor, boolean inHasHood)
{
super(inSize, inColor);
//super(Clothing);
//size = Size;
//color = Color;
hasHood = inHasHood;
}
public boolean getHasHood()
{
return this.hasHood;
}
@Override
public String toString()
{
return "Sweatshirt [hasHood=" + getHasHood() + ", getSize()=" + getSize() + ", getColor()=" + getColor() + "]";
}
}
希望这可以帮助您入门。