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

Java 在默认构造函数中初始化属性,java,this,enumeration,overloading,delegation,Java,This,Enumeration,Overloading,Delegation,我在做作业的时候被卡住了,我很难理解下一步该做什么。因此,我的指示如下: 创建一个名为Card的新类。“来自超类的构造函数”复选框将在代码中创建构造函数存根 在名为Suit的新源文件中创建枚举类型,其值为NONE、CLUBS、HEARTS、SPADES、DIAMONDS 在与Card类相同的包中的新源文件中创建一个枚举类型,称为Rank,其值为JOKER,TWO,TWO,TWO,TWO,TWO,TWO,TWO,TWO,TWO,JACK,QUEEN,KING,ACE 在类卡中, A) 创建类

我在做作业的时候被卡住了,我很难理解下一步该做什么。因此,我的指示如下:

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

  • 在名为
    Suit
    的新源文件中创建枚举类型,其值为
    NONE
    CLUBS
    HEARTS
    SPADES
    DIAMONDS

  • 在与
    Card
    类相同的包中的新源文件中创建一个枚举类型,称为
    Rank
    ,其值为
    JOKER
    TWO
    TWO
    TWO
    TWO
    TWO
    TWO
    TWO
    TWO
    TWO
    JACK
    QUEEN
    KING
    ACE

  • 在类
    卡中

    A) 创建类型为
    rank
    的名为
    rank
    的类属性(字段)
    B) 创建一个名为
    suit
    的类属性(字段),类型为
    suit

    C) 为这些字段创建getter和setter。将设置者设置为私有,因为我们只希望构造器设置卡
    Suit
    Rank
    (例如,我们不希望程序员或用户设置多个
    俱乐部的
    ACE

  • 创建一个接受
    套装
    等级
    的构造函数,并使用这些值设置属性

  • 在默认构造函数中,初始化
    suit
    rank
    属性。使用此构造函数调用在上一步中创建的构造函数,并使用您选择的值初始化等级和等级(例如:
    rank.ACE
    suit.CLUBS

  • 在类的main方法中,构造一个默认的
    ,以演示默认的构造函数初始化

  • 还可以使用
    Suit
    Rank
    构造函数构造一些额外的卡。使用局部变量保存对象

  • 使用枚举类型中的
    toString()
    方法,打印创建的每张
    卡的
    套装
    等级

  • 创建一个
    Deck
    类,该类包含一个字段,该字段是由54张卡组成的数组(包含)

  • 牌组
    类上创建一个构造函数,使用迭代
    套装
    等级
    值的
    for
    循环,使用标准牌组和两个小丑初始化卡数组,并使用适当的
    构造函数设置数组成员。请记住,这两个小丑只作为
    NONE
    套装存在,只有小丑才使用
    NONE
    套装。对于只创造两个小丑,有许多可能的解决方案。我使用了一个迭代器,将它们从循环中删除,并在开始时单独添加它们。使用
    if
    语句为每个
    循环排除
    中的小丑,并在循环之前或之后添加他们

  • Deck
    类中创建一个
    toString()
    方法,使用另一个
    for
    循环,通过调用每个卡上的
    toString()
    方法来打印数组中的所有
    卡。此方法仅通过调用
    Card
    对象上的
    toString()
    来“要求”卡打印其等级和西装。此方法中的任何地方都不应提及
    Rank
    Suit
    。让
    Card
    toString()
    方法完成工作(委派)

  • Deck
    类中创建一个创建
    Deck
    main
    方法。然后使用
    System.out.println()
    打印数据组。这将调用
    Deck
    toString()
    方法,该方法将在每个
    卡上调用
    toString()
    ,打印整个卡片组


  • 构造函数用于初始化对象的实例。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;
        }
    }
    

    所以不是这样的。不要期望你可以复制粘贴你的作业和代码;我们利用空闲时间通读了所有这些,以找出你到底被困在哪里;你的问题是。。。等等坦率地说:忘了那件事吧。描述一下你到目前为止尝试了什么,以及你到底被困在哪里。好吧,我想我正确地完成了步骤4/5。我只是需要帮助理解我是否正确地执行了第5步,并需要有人解释第6步希望我做什么?我刚刚发布到whole thing,以便更好地了解需要做什么,以及之前可能会弄糟的步骤。还有,究竟需要哪些getter和setter?如何创建一个接受Suit和Rank的构造函数,并使用这些值来设置属性。
    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;
        }
    }