分配 1 到 7 之间的值

Assigning a value between 1 and 7

我正在创建一个名为 DateTwo 的新 Java class,并尝试为此 class 声明和初始化一个名为 dayNumber 的成员字段,这将是 1 到 7 之间的数字。

我试过:

public class DateTwo {
    int dayNumber = 1;
    int dayNumber = 2;
    int dayNumber = 3;
    int dayNumber = 4;
    int dayNumber = 5;
    int dayNumber = 6;
    int dayNumber = 7;
}

错误信息:

Variable dayNumber is already defined in class DateTwo

public class DateTwo {
    int dayNumber = (>=1 && <=7);
}

错误信息:

illegal start of expression

有什么想法或想法可以解决这个错误吗?

目前您正在一次又一次地重新定义已经定义的变量。所以,错误来了。使用数组

public class DateTwo {
    int dayNumber[]=new int[7];//declaration and instantiation  
    dayNumber[0] = 1;
    dayNumber[1] = 2;
    dayNumber[2] = 3;
    dayNumber[3] = 4;
    dayNumber[4] = 5;
    dayNumber[5] = 6;
    dayNumber[6] = 7;
}

int dayNumber[]={1,2,3,4,5,6,7};//declaration, instantiation and initialization 

你声明一个带有成员字段的class,使字段private这样其他人都不能碰它,并实现一个get和一个set方法,也称为 "getter" 和 "setter"。 setter 应该有效。

您可能还需要一个 constructor,这样该字段永远不会未初始化。

public class DateTwo {
    private int dayNumber;

    // Constructor
    public DateTwo(int dayNumber) {
        setDayNumber(dayNumber); // Reuses setter to enforce validation
    }

    // Setter
    public void setDayNumber(int dayNumber) {
        if (dayNumber < 1 || dayNumber > 7)
            throw new IllegalArgumentException("Invalid day number: " + dayNumber);
        this.dayNumber = dayNumber;
    }

    // Getter
    public int getDayNumber() {
        return this.dayNumber;
    }
}

您显然只需要 一个 值(不是一组天数)。

此代码将执行此操作:

import java.util.Random;

public class DateTwo {

  private dayNumber;

  // Initialize all class state in your "constructor"
  public DateTwo () {
    // this gives you a random integer between 0 and 6
    dayNumber = new Random().nextInt(7);
    // this shifts the value to between 1 and 7
    dayNumber += 1;
  }

  // This "getter" method allows clients to get your (private) dayNumber
  public getDayNumber () {
    return dayNumber;
  }

}

完成同样事情的更简单方法:

dayNumber = new Random().nextInt(7) + 1;

@KickButtowski 仅供参考,我不是剽窃者。我也不在学校。我的代码参考了他的代码:(无注释)

感谢所有帮助我得出这个结论的人。

(无评论)

public class DateTwo {
    public int dayNumber = 1;


    public void displayDay() {
        if (dayNumber >= 1 && dayNumber <= 7)
            if (dayNumber >=1 && dayNumber <=7)
                System.out.println("That is a day of the week.");
            if (dayNumber == 1)
                System.out.println("It is: Monday");

            else if (dayNumber == 2) {
                System.out.println("It is: Tuesday");
            }
            else if (dayNumber == 3){
                System.out.println("It is: Wednesday");
            }
            else if (dayNumber == 4){
                System.out.println("It is: Thursday");
            }
            else if (dayNumber == 5){
                System.out.println("It is: Friday");
            }
            else if (dayNumber == 6){
                System.out.println("It is: Saturday");
            }
            else if (dayNumber == 7){
                System.out.println("It is: Sunday");
            }
        else {
            System.out.println("That is not a Day of the Week.");
        }
    }
}