Es tut mir leid, wenn dies zu lange, aber ich brauche wirklich Hilfe. Ich machte ein Herzfrequenz-Programm, das den Namen der Person, Geburtsdatum, Alter, Herzfrequenz und den Bereich der Zielherzfrequenz anzeigt. Das Problem ist, ich bin nicht das gewünschte Ergebnis in der Hauptklasse bekommenJava-So verwenden Sie mehrere Klassen für ein Programm
Das erwartete Ergebnis sein sollte:
Geben Sie Ihren Vornamen: Saran
Geben Sie Ihren Nachnamen: Vadlamudi
Geben Sie Ihr Geburtsdatum in YYYYMMDD Format: 1996
Name: Saran Vadlamudi
Geburtsdatum: 1996.08.26
Alter: 20
Herzfrequenz ist 200
Zielherzfrequenzbereich zwischen 100 und 170
Stattdessen bekomme ich das:
Geben Sie Ihren Vornamen: Saran
Geben Sie Ihren Nachnamen: Vadlamudi
Ihr Geburtsdatum in YYYYMMDD Format eingeben: 1996
Name: Saran Vadlamudi
Geburtsdatum: 1996-8-26
Alter: 20
Herzfrequenz ist -1796
Zielherzfrequenzbereich zwischen -898 und -1526
Hier sind meine Klassen:
Test.java
public class Test {
public static void main(String[] args) {
HeartRates hR = new HeartRates();
HRCalc hrc = new HRCalc();
hR.askUser();
System.out.println("Name : " + hR.getFirstName() + " " + hR.getLastName());
System.out.println("Date of birth: " + hR.getYear() + "-" + hR.getMonth() + "-" + hR.getDay());
System.out.println("Age: " + hR.calculateAge());
System.out.println("Heart rate is " + hrc.calculateMaximumHeartRate());
System.out.println("Target heart rate range in between " + hrc.calculateTargetHeartRate1() + " and " + hrc.calculateTargetHeartRate2());
}
}
Hören tRates.java
import java.time.LocalDate;
import java.util.Scanner;
public class HeartRates {
private String fName;//Persons first name
private String lName;//Persons last name
private int year, month, day; //Person's birth date format: YYYY/MM/DD
public HeartRates(String fName,String lName, int year, int month, int day){
this.fName = fName;
this.lName = lName;
this.year = year;
this.month = month;
this.day = day;
}
public HeartRates(){}
public void setFirstName(String fName){
this.fName = fName;
}
public String getFirstName(){
return fName;
}
public void setLastName(String lName){
this.lName = lName;
}
public String getLastName(){
return lName;
}
public void setYear(int year){
this.year = year;
}
public int getYear(){
return year;
}
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 int calculateAge(){
LocalDate date = LocalDate.now();
return date.getYear() - getYear();
}
public void askUser(){
Scanner input = new Scanner(System.in);
System.out.print("Enter your first name: ");
String fname = input.nextLine();
setFirstName(fname);
System.out.print("Enter your last name: ");
String lname = input.nextLine();
setLastName(lname);
System.out.print("Enter your date of birth in YYYYMMDD format: ");
int year = input.nextInt();
setYear(year);
int month = input.nextInt();
setMonth(month);
int day = input.nextInt();
setDay(day);
}
}
HRCalc.java
public class HRCalc {
public int calculateMaximumHeartRate(){
HeartRates hR = new HeartRates();
return (220 - hR.calculateAge());
}
public int calculateTargetHeartRate1(){
HeartRates hR = new HeartRates();
return (int) (0.5 * (220 - hR.calculateAge()));
}
public int calculateTargetHeartRate2(){
HeartRates hR = new HeartRates();
return (int) (0.85 * (220 - hR.calculateAge()));
}
}
wirklich verstehen, das Problem nicht ich nachdenken, warum Sie einen downvote (nicht von mir) erhalten Sie bearbeiten Ihre Frage zu machen, clear –
Bitte lesen [ask] –
_ "... berechnet nicht 20 ..." _. Was? – asdf