Java费用类

Java费用类,java,object,Java,Object,我有个问题…我的教授一直在跳舞 “chooseCategory方法将与您的setCatNumsetter方法一起使用 setCatNumsetter方法应如下所示: public void setCatNum( ) { catNum = chooseCategory( ); } 这与传统的setter方法具有不同的外观 chooseCategory应打印所有6个类别,然后使用费用说明 提示并返回类别号。您需要使用扫描仪。“ 这是否意味着他们希望我有一个对象调用chooseCategory方

我有个问题…我的教授一直在跳舞

chooseCategory
方法将与您的
setCatNum
setter方法一起使用

setCatNum
setter方法应如下所示:

public void setCatNum( ) {
  catNum = chooseCategory( );
}
这与传统的setter方法具有不同的外观

chooseCategory
应打印所有6个类别,然后使用费用说明

提示并返回类别号。您需要使用扫描仪。“

这是否意味着他们希望我有一个对象调用
chooseCategory
方法,然后有
chooseCategory
方法,如下所示:

private void chooseCategory() {

    //should print all 6 of your categories, then, using the expense description,
    //prompt and return the category number. You will need to use Scanner.
    System.out.println("Choose a category <number> for " + description);
    for(int i =0; i<categories.length; i++){
        System.out.println(i + " :  " + categories[i]);
        }
    Scanner userInput = new Scanner(System.in);
    int catUn = userInput.nextInt();
    catNum = catUn;
    System.out.println(catNum);

}
private void chooseCategory(){
//应打印所有6个类别,然后使用费用说明,
//提示并返回类别号。您需要使用扫描仪。
System.out.println(“为“+说明”选择一个类别);

对于(int i=0;i您没有在
chooseCategory()
中返回值以设置为
catNum
。请尝试以下操作:

private int chooseCategory() {

    //should print all 6 of your categories, then, using the expense description,
    //prompt and return the category number. You will need to use Scanner.
    System.out.println("Choose a category <number> for " + description);
    for(int i =0; i<categories.length; i++){
        System.out.println(i + " :  " + categories[i]);
    }
    Scanner userInput = new Scanner(System.in);
    int catUn = userInput.nextInt();
    return catUn;
}
private int-chooseCategory(){
//应打印所有6个类别,然后使用费用说明,
//提示并返回类别号。您需要使用扫描仪。
System.out.println(“为“+说明”选择一个类别);

老实说,我不知道你的教授要你做什么,我想这里没有人能告诉你。如果你想确定的话,去问问他

但是,让我建议一种改进代码的通用方法。您应该在这里使用返回值

实现您的类,以便:

public void setCatNum(int categoryNumber) {
  catNum = categoryNumber;
}

private int chooseCategory() {
  int userSelection = 0;

  // Make user chose a category
  // userSelection = ...

  return userSelection;
}
以后可以像这样使用类(例如,在
main()
方法中):

在这里,您创建一个新的
YourClass
实例,并将其绑定到
yourObject
变量。接下来,调用对象的方法(从内部到外部嵌套调用)。首先,执行
chooseCategory()
。该方法保存一个本地
userSelection
变量以存储用户的选择(使用
Scanner
读取)。最后,该方法将返回用户选择。然后,返回值将传递给
setCatNum()
,并在此处作为方法参数提供(称为
categoryNumber
)。然后可以将
categoryNumber
分配给
catNum
成员变量


//编辑:现在您发布了您的UML:

public void setCatNum(int categoryNumber) {
  catNum = categoryNumber;
}

private void chooseCategory() {
  int userSelection = 0;

  // Make user chose a category
  // userSelection = ...

  this.setCatNum(userSelection);
}

问你的教授你是否需要对你的家庭作业进行澄清。我能看到的唯一一件事是,它确实会在你打印出六个类别后提示。另外,
chooseCategory()
a
void
?它们不返回值,但它们在
setCatNum()中的值上下文中使用
。我想是的,但是你需要返回输入的值。我试着问我的教授……他们没有回答问题,当我继续问的时候,他们会有点不高兴。这就是为什么我来到这里希望有人能理解。chooseCategory应该是一个空白。但是谢谢你的回答!谢谢你的回答。但是我的教授wants chooseCategory()为空而不返回。这就是为什么我感到困惑的原因…非常感谢您的解释tho!您还回答了对象问题!如果不允许
chooseCategory()返回任何值(=定义为
void
),则无法分配
catNum=chooseCategory()
).也许这就是你的老师想让你学习的课程?否则,再去问他,因为从技术上讲这是不可能的。只要再看一遍你的作业,你的方法就可以返回一个值:“…
chooseCategory
应打印所有6个类别,然后使用费用说明提示并返回类别编号“我按你的方式编辑,效果很好。我会在我的代码中留下评论,说明我为什么这样做!非常感谢你的帮助和快速回复!!看看我的最新编辑,也许这正是你的教授想要的。:)
public void setCatNum(int categoryNumber) {
  catNum = categoryNumber;
}

private void chooseCategory() {
  int userSelection = 0;

  // Make user chose a category
  // userSelection = ...

  this.setCatNum(userSelection);
}