为Shoe类创建UML图

时间:2015-06-21 17:45:36

标签: java class constructor uml

我正在上网,我在这项任务中遇到了一些麻烦。

我遇到第1部分和第34部分的问题;默认构造函数将每个属性初始化为不存在的鞋子的合理默认值。"

以下是我所拥有的:

( - )style:String

( - )color:String

( - )size:整数

(+)setSyle(s:String)

(+)setColor(c:String)

(+)setSize(z:Integer)

(+)getSyle():String

(+)getColor():String

(+)getSize():Integer

分配:

Showy Shiny Shoe Store出售不同风格的鞋子,如凉鞋和休闲鞋。每种款式的鞋子都有不同的颜色,如棕色和黑色。可供选择的鞋子尺码从5码到11码不等,包括整码和半码。通过执行以下操作设计面向对象的计算机程序:

第一部分

。创建Shoe类的类图,其中包含鞋子的样式,鞋子的颜色和大小。这种风格的有效价值的例子是"凉鞋"和"行走"。颜色的有效值的示例是" brown"和"黑"。大小的有效值的示例是6.5和9.0。请务必为属性选择最合适的数据类型。对于此类定义,请包括以下内容:

  • 默认构造函数,用于将每个属性初始化为不存在的鞋子的某个合理默认值。
  • 另一个构造函数方法,其中包含每个数据成员的参数。此构造函数将每个属性初始化为实例化此类型的对象时提供的值。
  • 每个属性的Accessor和mutator方法。 第二部分 -

编写在第一部分的类图中设计的Shoe类的伪代码。 第III部分 -

使用main()模块为鞋店的应用程序编写伪代码,该模块实例化Shoe类的两个对象。第一个对象应该命名为nerdShoes并使用默认构造函数。第二个对象应命名为coolShoes,并使用第二个构造函数将样式初始化为"凉鞋",颜色为" brown",大小为8.5。在main()方法中包含以下指令,顺序如下: 调用将nerdShoes的颜色设置为" tan"。 呼吁将nerdShoes的风格设置为“步行" 调用将nerdShoes的大小设置为9.5。 使用适当的方法调用显示nerdShoes样式的语句。 呼吁将coolShoes的颜色更改为"紫色"。 使用适当的方法调用显示coolShoes样式的语句。

2 个答案:

答案 0 :(得分:2)

通常我不回答整个代码,因为这是你需要处理的事情。当你自己尝试时,你会学到更多,更好。

但是我会发送我的建议,因为我喜欢UML问题......(虽然这里面是简单的UML)。

但我想知道为什么使用size作为整数?你提到你需要一半的尺码?我的建议是使用例如float

Shoe UML

package theshowyshinyshoestore;

public class Shoe {
  String style;
  float size;
  String color;

  public Shoe() {
      setStyle("unknown");
      setSize(0);
      setColor("unknown");
  }

  public Shoe(String style, float size, String color) {
      setStyle(style);
      setSize(size);
      setColor(color);
  }

  public void setStyle( String style ) {
      //perform checks for valid style
      //...
      this.style = style;
  }

  public void setSize( float size ) {
      //perform checks for valid size
      //...
      this.size = size;
  }

  public void setColor( String color ) {
      //perform checks for valid colors
      //...
      this.color = color;
  }

  public String getStyle() {
    return this.style;
  }

  public float getSize() {
    return this.size;
  }

  public String getColor() {
    return this.color;
  }


  public String toString() {
    return "Style: " + this.style + " Size: " + this.size + " Color: " + this.color;
  }


  public static void main(String[] argv) {
    Shoe nerdShoes = new Shoe();
    Shoe coolShoes = new Shoe("sandals", 8.5f, "brown");
    System.out.println( "nerdShoes: " + nerdShoes );
    System.out.println( "coolShoes: " + coolShoes );

    nerdShoes.setColor("tan");
    nerdShoes.setStyle("walking");
    nerdShoes.setSize(9.5f);

    coolShoes.setColor("purple");

    System.out.println( "nerdShoes: " + nerdShoes );

    System.out.println( "nerdShoes style: " + nerdShoes.getStyle() );
    System.out.println( "coolShoes style: " + coolShoes.getStyle() );
  }

}

答案 1 :(得分:0)

通过不接受任何参数来标识默认构造函数。我对默认值的猜测是它们是变量的一些占位符值。可能的解决方案可能如下所示:

public Shoe(){ this.style = ""; this.color = ""; this.size = 0; }