Wie Daten von Objekt-Array ausgeben?
Wie kann ich die Klasse Main so erweitern, dass nach der Eingabe des Mindestalters die Namen aller Personen ausgegeben werden, welche das Mindestalter erfüllen?
Habe mal bis hier Programmiert ab //TODO weiss ich nicht weiter:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner keyScan = new Scanner(System.in);
Person [] personen = new Person[5];
personen[0] = new Person("Hans", 12);
personen[1] = new Person("Peter", 23);
personen[2] = new Person("Klara", 34);
personen[3] = new Person("Berta", 15);
personen[4] = new Person("Ulf", 5);
System.out.print("Bitte Mindestalter eingeben: ");
int min = keyScan.nextInt();
// TODO: Namen aller Personen ausgeben, welche das Mindestalter erfüllen
keyScan.close();
}
}
hier ist die Klasse Person:
public class Person {
private String name;
private int alter;
public Person(String name, int alter) {
this.name = name;
this.alter = alter;
}
public String getName() {
return name;
}
public int getAlter() {
return alter;
}
}
1 Antwort
Mit einer Schleife kannst du über alle Einträge eines Arrays iterieren. Je Schleifenlauf holst du dir im Schleifenkörper vom aktuellen Element das Alter und vergleichst es mit dem Mindestalter. Je nach Resultat wird etwas ausgegeben oder eben nicht.
Ich würde dir zudem raten, mit einem Struktogramm oder einem Programmablaufplan zu arbeiten. Sie sind nützliche Hilfsmittel, um selbst an die Lösung für solche Aufgaben zu kommen.
1) Ich sehe in deinem Code keine Schleife. Du kannst zwar auch jede Person einzeln abfragen, doch dadurch wird der Code nur ewig lang und es ist sicherlich nicht Sinn dieser Übungsaufgabe.
Zu Schleifen kannst du dich hier einlesen.
2) Ein Methodenaufruf besteht immer aus Methodenname und Argumentliste. Wenn die Methode keine Argumente fordert, bleibt sie leer.
Beispiel:
someObject.someMethod();
3) Die Anforderung der Anwendung ist es, alle Personen mit einem Mindestalter auszugeben. Wenn das Mindestalter z.B. 23 wäre, soll nicht nur Peter, sondern auch Klara in den Ausgabekanal geschrieben werden.
Wie ich schon schrieb: Lege dir zuerst ein Struktogramm oder einen Programmablaufplan an und übersetze das erst dann zu Java-Code, sobald der Programmablauf vollständig formuliert ist.
Meinst du so? Weil es funktioniert immernoch nicht.
if (personen[0].getAlter==min) {
System.out.println(personen[0].getName);
} else if (personen[1].getAlter==min) {
System.out.println(personen[1].getName);
} //usw...