我有 Date 类和 DateTest 类。我试图让用户输入日期,我必须使用 get/set 方法和构造函数正确格式化它。但是,当我尝试在输入后检索日期时,我只得到零。
我的代码:
public class Date
{
private int month;
private int day;
private int year;
public Date(int m, int d, int y){
month = m;
day = d;
year = y;
}
public void setMonth(int Month) {
this.month = month;
}
public int getMonth(){
return month;
}
public void setDay(int Day) {
this.day = day;
}
public int getDay(){
return day;
}
public void setYear(int Year) {
this.year = year;
}
public int getYear(){
return year;
}
public String displayDate(){
return String.format("%d / %d / %d", month, day, year);
}
}
还有 DateTest 类:
import java.util.Scanner;
public class DateTest
{
public static void main( String[] args)
{
Scanner input = new Scanner(System.in);
Date myDate = new Date(0, 0, 0);
System.out.println("Please enter the month:");
int month = input.nextInt();
myDate.setMonth(month);
System.out.println();
System.out.println("Please enter the day:");
int day = input.nextInt();
myDate.setDay(day);
System.out.println();
System.out.println("Please enter the year:");
int year = input.nextInt();
myDate.setYear(year);
System.out.println();
System.out.printf("The date is %s%n", myDate.displayDate());
}
}
这是我的输出:
Please enter the month: 3
Please enter the day: 10
Please enter the year: 2016
The date is 0 / 0 / 0
它只显示为零。我确信这是一个简单的解决方案,但我无法理解。
最佳答案
public void setYear(int Year) {
this.year = year;
}
Java 区分大小写。 Year
与 year
不同。
您在这里所做的只是分配 this.year = this.year
。
将参数签名的名称改为int year
(也符合通常以小写字母开头的命名规范)。
三个二传手都有同样的问题。
关于java - 如何使用 set 方法设置和检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35908163/