Erste Schritte Anfänger, Konstruktor, Attribute kapseln, Objekte erzeugen, UML

TheBeast

Neues Mitglied
Guten Tag,

ich muss eine KLASSE PERSON schreiben, mit 3 Attributen Vorname,Nachname,Geburtsdatum.
Für jedes Attribut enthält die Klasse get und set Methoden.
Attribut Geburtsdatum wird über den KONSTRUKTOR initialisiert, restlichen Attribute über set-Methoden.
Danach die Java Anwendung FAMILIE, die Familie ist ein Array von Personenobjekten, die 3 Attribute soll ich mithilfe Dialogfenster fragen/lesen. Anschließend soll ich aus dem Array die Personenobjekte auslesen, und für jede Person die Inhalte der Attribute auf dem Bildschirm ausgeben.

Bin ein Anfänger, hab es jetzt so programmiert. Komme mit der Ausgabe von Geburtsdatum nicht klar, ich verstehe diesen Part nicht... Oder habe ich mehrere Fehler :oops::(;);(

Java:
class Person{
	private String vorname, nachname;
	private int geburtsdatum;

	//Konstruktor
	Person(){
	this.geburtsdatum=geburtsdatum;
	}
	
	//set-methoden
	void setVorname(String vorname){
	this.vorname = vorname;
	}
	
	void setNachname(String nachname){
	this.nachname = nachname;
	}
	
	void setGeburtsdatum(int geburtsdatum){
	this.geburtsdatum = geburtsdatum;	
	
	}
	
	//get-methoden
	public String getVorname(){
	return vorname;
	
	}
	
	public String getNachname(){
	return nachname;
	
	}
	public int getGeburtsdatum(){
	return geburtsdatum;
	}
}


Java:
import javax.swing.JOptionPane;
public class Family{
	public static void main (String args[]){

	Person[] family;
	family = new Person[3];
	
	for (int i = 0; i < family.length; i++)
	family[i] = new Person();

	String geburtsdatum;
	int g;
	
	
	//Objekte mit Werten belegen
	
	for ( int i = 0; i < familyy.length; i++){
	
	family[i].setVorname (JOptionPane.showInputDialog ("Geben Sie die Vornamen des "+ (i+1) +". Personen ein."));
	family[i].setNachname(JOptionPane.showInputDialog ("Geben Sie die Nachnamen des "+ (i+1) +". Personen ein"));
	
	
	family[i].geburtsdatum ( JOptionPane.showInputDialog ("Geben sie das Geburtsdatum "+ (i+1) +". Personen ein"));
	g = Integer.parseInt(geburtsdatum);
	
	}

	//Ausgabe der Daten
	
	String ausgabe;
	ausgabe = "Vorname: \tNachname: \tGeburtsdatum: \n";
	
	for ( int i = 0; i < family.length; i++){
	
	ausgabe += family[i].getVorname() + "\t" + family[i].getNachname() + "\t" + family[i].geburtsdatum() +"\n";
	}
	System.out.println(ausgabe);
	}
}
 
Zuletzt bearbeitet:

Fansana

Mitglied
soweit ich sehen kann hast du dich nur verschrieben.
Ersetzte dass
[Java]
family.geburtsdatum ( JOptionPane.showInputDialog ("Geben sie das Geburtsdatum "+ (i+1) +". Personen ein"));
[/code]
Durch dass
Java:
family[i].setGeburtsdatum ((int) JOptionPane.showInputDialog ("Geben sie das Geburtsdatum der "+ (i+1) +". Personen ein"));

Merke bitte das das GeburtsDatum nur aus Zahlen bestehen darf, keine Punkte oder Buchstaben.
Wenn du Punkte haben möchstes musst du in Person
setGeburtsDatum(int geburtsDatum)
in
setGeburtsDatum(String geburtsDatum)
ändern.
 
Zuletzt bearbeitet:

Joose

Top Contributor
Attribut Geburtsdatum wird über den KONSTRUKTOR initialisiert, restlichen Attribute über set-Methoden.

Java:
//Konstruktor
	Person(){
	this.geburtsdatum=geburtsdatum;
	}
......
family.setVorname (JOptionPane.showInputDialog ("Geben Sie die Vornamen des "+ (i+1) +". Personen ein."));
family.setNachname(JOptionPane.showInputDialog ("Geben Sie die Nachnamen des "+ (i+1) +". Personen ein"));
family.geburtsdatum ( JOptionPane.showInputDialog ("Geben sie das Geburtsdatum "+ (i+1) +". Personen ein"));
}[/code]


Wie Fansana schon angemerkt hat, hast du die einfach ein bisschen verschrieben.
setGeburtsdatum() statt nur geburtsdatum (bei der Ausgabe hast du diese Problem ebenfalls.
Anmerkung: "Geben Sie den Vor-/Nachname der 1.Person ein" nicht "Geben sie die Vornamen/Nachnamen des 1.Personen ein."

Ansonsten steht in der Aufgabenbeschreibung: Das Attribut Geburtsdatum soll über den Konstruktor initialisiert werden.
Initialisieren heißt normalerweise einem Attribut einen Wert zuweisen, du übergibst aber dem Konstruktor der Klasse Person aber keine Wert für Geburtsdatum!

Komme mit der Ausgabe von Geburtsdatum nicht klar, ich verstehe diesen Part nicht... Oder habe ich mehrere Fehler :oops::(;);(
Wenn du wo Fehler hast wäre es natürlich hilfreich diese zu posten, wir könnten auch raten aber ich glaube das wäre unnötige Zeitverschwendung ;)
 

Neue Themen


Oben