このプログラムは、ユーザーの選択した日付とユーザーの選択した生年月日を取得し、それらの年齢を計算するために作成されます。これまでのところ私は値を入力して名前を取得するようになっています。 AgeCalculatorクラスの値を返す場合は、mainで印刷されたときにデフォルト値(2000/01/01)を返すので、何もしていないようです。入力後に値を正しく表示するにはどうすればよいですか?どのように値が正しく表示されないのですか?
OurDateクラス//は
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クラス//が
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);
}
}
以下のメインファイル(ASSIGN2)するためのメソッドを作成します。下のAgeCalculatorクラスためのすべての変数やメソッドを宣言しますAssing2クラス//メインファイル
public class Assign2{
public static void main(String[] args) {
AgeCalculator inputFromUser = new AgeCalculator();
inputFromUser.enterData();
AgeCalculator displayMessage = new AgeCalculator();
displayMessage.displayResults();
}
}
ありがとうございます!完璧に働いて、その背後にある推論を理解しています。 :) – obonmarc