在默认构造函数中初始化属性

时间:2015-10-20 23:19:36

标签: java this enumeration overloading delegation

我在做作业时遇到了困难,而且我很难理解下一步该做什么。所以我的指示如下:

  
      
  1. 创建一个名为Card的新类。来自超类的构造函数复选框将在代码中创建构造函数存根。

  2.   
  3. 在名为Suit的新源文件中创建枚举类型,其值为NONECLUBSHEARTSSPADES,{{ 1}}。

  4.   
  5. 在与DIAMONDS类相同的包中的新源文件中创建枚举类型,名为Card,其值为RankJOKER,{ {1}},TWOTHREEFOURFIVESIXSEVENEIGHT,{{1 }},NINETENJACK

  6.   
  7. 在课程QUEEN中,
      A)创建一个名为KINGACE的类属性(字段)   B)创建一个名为Cardrank的类属性(字段)   C)为这些字段创建getter和setter。将setter设为私有,因为我们只希望构造函数设置卡Ranksuit(我们不希望程序员或用户设置多个Suit Suit例如)。

  8.   
  9. 创建一个接受RankACE的构造函数,并使用这些值来设置属性。

  10.   
  11. 在默认构造函数中,初始化CLUBSSuit属性。使用此构造函数调用上一步中创建的构造函数,并使用您选择的值初始化rank和suit(例如:Ranksuit)。

  12.   
  13. 在类的main方法中,构造一个默认的rank来演示默认的构造函数初始化。

  14.   
  15. 还使用Rank.ACESuit.CLUBS构造函数构建一些额外的卡片。使用局部变量来保存对象。

  16.   
  17. 使用枚举类型中的Card方法,打印每个Suit创建的RanktoString()

  18.   
  19. 创建一个Suit类,其中包含一个包含五十四张卡(包含)的数组的字段。

  20.   
  21. Rank类上创建一个构造函数,使用标准套牌和两个jokers初始化卡片组,使用Card循环遍历Deck和{{ 1}}使用适当的Deck构造函数设置数组成员。请记住,两个Jokers仅作为for套装存在,只有Jokers使用Suit套装。有许多可能的解决方案只能创建两个笑话者。我使用了一个迭代器,将它们从循环中取出并在开始时单独添加它们。使用Rank语句排除Card循环中的笑话,并在之前或之后添加。

  22.   
  23. NONE类中创建NONE方法,使用另一个if循环通过调用{{1}打印数组中的所有for each每张卡上的方法。此方法通过仅调用toString()对象上的Deck来“询问”for打印其排名和适合度。在此方法中,任何地方都不应引用CardtoString()。让Card' toString()方法完成工作(委托)。

  24.   
  25. 在创建Card的{​​{1}}类中创建Rank方法。然后使用Suit打印卡座。这将调用Card的{​​{1}}方法,该方法会在每个toString()上调用main,打印整个套牌。

  26.   
Deck

1 个答案:

答案 0 :(得分:0)

构造函数用于初始化对象的实例。 Setter用于设置变量的值,getter返回此值。看看下面的例子,

public class Test {

    //private members of the instance
    private String strVariable;
    private int intVariable;

    //constructor
    //constructor sets the values of strVariable and intVariable when a Test object is intialized
    public Test(String strVariable, String intVariable) {

        this.strVariable = strVariable;
        this.intVariable = intVariable;
    }

    //setter method for setStrVariable
    //this will overwrite the value of setStrVariable that was assinged when the object was intilized
    public void setStrVariable(String strVariable) {

        this.strVariable = strVariable;
    }

    //getter for the setStrVariable
    //this will return the value of setStrVariable
    public String getStrVariable() {

        return this.strVariable;
    }
}