Ich bin neu in der Programmierung und ich möchte fragen, warum ist es so, dass ich in meinem Code keine Rückgabe-Funktion im Konstruktor und Methode verwenden muss?Warum wird in diesem Fall keine Rückgabe benötigt?
Auch warum ist das Alter nach der Verwendung der yearPasses Funktion um 3 und nicht um 1 erhöht?
Apologie für den langen Code
public class Person
{
private int age;
public Person(int initialAge)
{
// Add some more code to run some checks on initialAge
if (initialAge<0)
{
System.out.println("Age is not valid, setting age to 0.");
initialAge = 0;
age = initialAge;
}
else
{
age = initialAge;
}
}
public void amIOld()
{
if (age<13)
{
System.out.println("You are young.");
}
else if (age>=13 && age<18)
{
System.out.println("You are a teenager.");
}
else
{
System.out.println("You are old.");
}
}
public void yearPasses()
{
age = age + 1;
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int i = 0; i < T; i++)
{
int age = sc.nextInt();
Person p = new Person(age);
p.amIOld();
for (int j = 0; j < 3; j++)
{
p.yearPasses();
}
p.amIOld();
System.out.println();
}
sc.close();
}
}
Warum denken Sie, Sie brauchen eine Rückkehr? –
1) Der Konstruktor initialisiert die Klasse, sie soll nichts zurückgeben. 2) Es gibt eine for-Schleife, die 'yearsPasses() '3 mal ausführt. – 0x499602D2
Konstruktoren haben möglicherweise keinen Rückgabetyp, daher keine Rückgabe – StuartLC