【发布时间】:2016-10-27 23:00:40
【问题描述】:
此程序用于获取用户选择的日期和用户选择的出生日期并计算他们的年龄。到目前为止,我已经让用户输入值并获取他们的名字。至于返回 AgeCalculator 类中的值,它似乎没有做任何事情,因为在 main 中打印时它返回我的默认值(2000/01/01)。输入后如何让值正确显示?
OurDate 类 // 声明 AgeCalculator 类的所有变量和方法下面
import java.util.Scanner;
public class OurDate {
private int year;
private int month;
private int day;
private Scanner scan = new Scanner(System.in);
public OurDate() {
year = 2000;
month = 1;
day = 1;
}
public void setYearFromUser() {
System.out.print("Enter a valid year: ");
year = scan.nextInt();
}
public void setMonthFromUser() {
System.out.print("Enter the month: ");
month = scan.nextInt();
}
public void setDayFromUser() {
System.out.print("Enter the day: ");
day = scan.nextInt();
System.out.println("");
}
public void displayDate() {
System.out.println(month + "/" + day + "/" + year);
}
public int calcDays() {
return (year*360*month*30 + day);
}
}
AgeCalculator 类 // 为主文件(Assign2)创建方法下面
import java.util.Scanner;
public class AgeCalculator {
private OurDate todayDate;
private OurDate birthDate;
private String personName;
private String message;
public AgeCalculator() {
todayDate = new OurDate();
birthDate = new OurDate();
}
public void enterData() {
System.out.println("Enter today's date: ");
todayDate.setYearFromUser();
todayDate.setMonthFromUser();
todayDate.setDayFromUser();
System.out.println("Enter birth date: ");
birthDate.setYearFromUser();
birthDate.setMonthFromUser();
birthDate.setDayFromUser();
System.out.println("Enter person's name:");
Scanner scan = new Scanner (System.in);
personName = scan.nextLine();
}
public void calculateMessage() {
}
public void displayResults() {
System.out.print("Today date: ");
todayDate.displayDate();
System.out.print("Birth date: ");
birthDate.displayDate();
System.out.print(personName);
}
}
Assing2 类 // 主文件
public class Assign2{
public static void main(String[] args) {
AgeCalculator inputFromUser = new AgeCalculator();
inputFromUser.enterData();
AgeCalculator displayMessage = new AgeCalculator();
displayMessage.displayResults();
}
}
【问题讨论】:
标签: java class methods call declaration