所以我目前正在上课,我的学校称为Ap Computer Science in Java(Mocha)。我被困在舞台4.12.4上。这是练习
在这个问题中,你将设计一些代表服装店不同服装的类。
你将为TShirt,Jeans,Sweatshirt和Clothing编写课程。
服装类应该有两个实例变量:一个用于服装的大小(一个字符串),另一个用于服装的颜色(也是一个字符串)。
服装也应该有两个访问者(getter方法):
public String getSize()
public String getColor()
Sweatshirt类应该有一个私有实例变量(或字段)来存储它是否有引擎盖,以及相应的getter方法
public boolean hasHood()
TShirt类应该有一个私有字段来存储结构,以及一个名为
的相应的getterpublic 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
我不知道我做错了什么,所以请任何人帮助我,我已经坚持了几天了。
答案 0 :(得分:2)
扩展Clothing类的类似乎抛出了错误。一个来自TShirt(我没有看到代码),另一个来自Jeans,另一个来自Sweatshirt(两次发布的代码)。
每当扩展一个Class时,如果你没有立即初始化继承的Class的构造函数,编译器会抱怨。在显示的所有扩展类中,都没有这样做。因此,为了帮助您入门,我提供了一个初始化super
构造函数的运动衫类,或者在每次创建运动衫对象时初始化Clothing
。在这种情况下,super
为Clothing
。此外,由于您从Clothing类扩展,因此无需在扩展类中重新定义“大小”和“颜色”属性。
使用具有相同名称但“Case”不同的不同变量时也要小心,例如。查看您提供的代码,查看Clothing类构造函数。您输入的值:尺寸和颜色未被使用。它应该是this.size = Size和this.color = Color。由于您使用类自己的变量来设置自己,我很确定您会收到错误或者根本没有得到正确的值。我不建议命名仅在Case中不同的不同变量。
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() + "]";
}
}
希望这有助于您开始使用。
答案 1 :(得分:1)
这就是我所做的:
SweatShirt
public class Sweatshirt extends Clothing
{
private boolean hood;
public Sweatshirt(String size, String color, boolean hood)
{
super (size,color);
this.hood=hood;
}
public boolean hasHood()
{
return this.hood;
}
}
牛仔裤
public class Jeans extends Clothing
{
public Jeans(String size)
{
super(size,"blue");
}
}
T恤
public class TShirt extends Clothing
{
private String fabric;
public TShirt(String size, String color, String fabric)
{
super(size,color);
this.fabric=fabric;
}
public String getFabric()
{
return this.fabric;
}
服装
public class Clothing
{
// all instance variables should be private
private String size;
private String color;
// private int x;
// default constructor
/*
public Clothing ()
{
// intialize all instance variables
size="";
color="";
x=0;
}
*/
// only intialize when the parameter is empty or zero argument
public Clothing(String size, String color)
{
this.size=size;
this.color=color;
// this.x=0;
// always initialize all the instance variables
//even though the parameters are incomplete
}
public String getSize()
{
return this.size;
}
public String getColor()
{
return this.color;
}
}
你可能已经完成了这件事,但以防万一。