分配 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.");
}
}
}
我正在创建一个名为 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.");
}
}
}