因此,我目前正在学校上课,当时我的学校名为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的情况。在这种情况下,superClothing。同样,由于您是从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() + "]";
   }

 }


希望这可以帮助您入门。

07-28 14:18