Attribut Werte eines Objekts mit gettern ausgeben

WonderWoman

Mitglied
Hallo :)
So ich habe eine Klasse Student angelegt und sie mit einer Main getestet. Dort sollte ich alle Attribute mit Hilfe der Setter setzen und das Objekt mittels System.out.... ausgeben.
Das funktioniert aus und sieht so aus:

//Klasse Student
Java:
 public class Student {

	private String name;
	private String vorname;
	private int telenummer;
	private int geburtsjahr;
	
	public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return name;
	}
	
	public void setVorname(String vorname){
		this.vorname = vorname;
	}
	
	public String getVorname(){
		return vorname;
	}
	
	public void setTelenummer(int telenummer){
		this.telenummer = telenummer;
	}
	
	public int getTelenummer(){
		return telenummer;
	}
	
	public void setGeburtsjahr(int geburtsjahr){
		this.geburtsjahr = geburtsjahr;
	}
	
	public int getGeburtsjahr(){
		return geburtsjahr;
	}
	
	public String toString(){
		String erg = "Name: " + name + " " + "Vorname: " + vorname + " " + "Tel: " + telenummer + " " + "Geburtsjahr: " + geburtsjahr;
		return erg;
	}
}

//Main

Java:
public class Main {

	public static void main(String[] args) {
		
		Student s;
		s = new Student();
		
		s.setName("Mueller");
		s.setVorname("Melanie");
		s.setTelenummer(62534);
		s.setGeburtsjahr(1986);
		
		System.out.println(s);
}
}

Der Zweite Teil der Aufgabe und mein Problem ist das wir nun die Werte der Attribute des Objekts mit Hilfe der Getter ausgeben sollen?!?
Ich habe es so versucht:


//Selbe Main wie oben plus den Code
Java:
Student t;
		t = new Student();
		
		t.getName();
		t.getVorname();
		t.getTelenummer();
		t.getGeburtsjahr();
		
		System.out.println(t);

Allerdings bekomme ich da die Ausgabe Name: null Vorname: null Tel: 0 Geburtsjahr: 0 und nicht
Name: Mueller Vorname: Melanie Tel: 62534 Geburtsjahr: 1986.
Irgendwie werden meine vorher gesetzten Werte nicht übernommen?!? Ich verstehe wohl etwas grundlegendes absolut falsch bei den gettern. Vielleicht kann mir ja jemand von euch helfen und mir erklären was es auf sich hat mit der Ausgabe über die Getter.

Lieben Gruss
 

wef34fewrg

Aktives Mitglied
1.
Das Objekt s und das Objekt t sind zwei unterschiedliche Objekte. Du hast dem Objekt s "Müller Melanie etc..." zugewiesen.
Dein Objekt t gibt dir deshalb überall null/0 aus, weil du auch dieses Objekt mit Werten initialisieren musst. Tust du dies nicht, wird automatisch alles mit 0 initialisiert.
Entweder machst du das im Konstruktor oder, wie in deiner Variante, mit den setter Methoden. Sprich. Jedes neue Objekt muss auch neu befüllt werden. :)

2.
Wenn du in deine Klassendefinition schaust wirst du sehen, dass deine getter Methoden einen Wert zurück liefern. Wenn du jetzt die getter nacheinander aufrufst, dann sind die Werte schon da (vorausgesetzt du hast sie richtig initialisiert, wie oben geschrieben), aber du machst mit ihnen nichts.

Der Unterschied zwischen der ersten und zweiten Teilaufgabe ist folgender.

Das Objekt s übergibst du der Methode System.out.println(); die wiederum das Objekt in Zeichenkettendarstellung ausgibt. Genau genommen wird die toString() Methode aufgerufen, die du in deiner Klasse auch definiert hast. Dort verknüpfst du die einzelnen Werte und gibst sie als String (zeichenkette) zurück, also genau das was die Methode println() als Parameter möchte.

Mit dem Objekt t kannst du das ebenfalls machen, in dem du als Parameter die Getter Methoden übergibst und diese mit dem + Operator verknüpfst. Also sprich

System.out.println("Name " + t.getName() + " Vorname " +....)
 

WonderWoman

Mitglied
Hey Danke fuer deine schnelle Antwort. Leider verstehe ich es aber immer noch nicht ganz.

Ich habe meiner Klasse Student den folgenden Konstruktor mitgegeben:

Java:
	public Student (String name, String vorname, int telenummer, int geburtsjahr){
		setName("Mueller");
		setVorname("Melanie");
		setTelenummer(65432);
		setGeburtsjahr(1986);
	}

und außerdem meiner Main den folgenden Code

Java:
		Student t;
		t = new Student();
		
		t.getName();
		t.getVorname();
		t.getTelenummer();
		t.getGeburtsjahr();
		
		System.out.println("Name: " + t.getName() +" "+ "Vorname: " + t.getVorname()+ " " + "Telefonnummer: " + t.getTelenummer()+" " + "Geburtsjahr: " + t.getGeburtsjahr());

Eclipse meckert nun an
Java:
t = new Student();
rum. Weil der Konstruktor Student() undefiniert ist. Eclipse löst das Problem per Klick mit

Java:
		t = new Student(null, null, 0, 0);

Meine Frage ist nun, ob ich jedesmal wenn ich die Methode ueber die Getter wähle fuer einen String das Argument null und fuer ein int das Argument 0 übergeben muss?

Danke Dir!!
 

Big-Taylor

Mitglied
Wenn du eine Klasse schreibst, existiert immer auch ein Default-Konstruktor. Dieser wird automatisch von Java erzeugt. Dieser Konstruktor hat keine Parameter und du kannst ihn aufrufen mit:
Java:
Student t = new Student();
Wobei Student() die Konstruktor-Methode (der von Java spendierte Default-Konstruktor) ist.

Solltest du jetzt aber einen eigenen Konstruktor deklarieren, ob mit oder ohne Parameter, so existiert der von Java vorgegebene Konstruktor nicht mehr und du musst den von dir erstellten benutzen.
Da du einen Konstruktor mit Parameter gewählt hast, musst du bei der Erzeugung eines Objektes diese Parameter auch angeben, sonst meckert der Compiler.

Also nicht:
Java:
Student t = new Student();

sondern:
Java:
Student t = new Student(Mueller, Melanie, 65432, 1986);
 

Big-Taylor

Mitglied
Um deine unten stehende Frage konkret zu beantworten. Das was du vergessen hast, hat Eclipse nachgeholt. Da aber Eclipse nicht weiß, welche Werte die Attribute deines Objektes haben sollen, setzt er dafür Default-Werte ein. Bei primitiven Datentypen wie Integer ist das "0" und bei Refenzen "null".
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
berserkerdq2 Wie lege ich ein Attribut comparator an? Java Basics - Anfänger-Themen 13
M Wie kann ich festlegen, dass ein Attribut maximal den Wert 0 erreicht, also nicht in den negativen Bereich fällt? Java Basics - Anfänger-Themen 4
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
C Setter-Methode mit final-Attribut Java Basics - Anfänger-Themen 9
T Inhalt aus TextField in Attribut einer Instanz schreiben Java Basics - Anfänger-Themen 5
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
C Zugriff auf Attribut von Oberklasse Java Basics - Anfänger-Themen 8
D Attribut Telefonnummer - eigene Klasse oder String Java Basics - Anfänger-Themen 13
itsmejo Erste Schritte Auf Attribut einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 14
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
X Attribut initialisieren Java Basics - Anfänger-Themen 1
Z Attribut ändern ohne Kontrollstruktur Java Basics - Anfänger-Themen 2
S NIO lesbares und beschreibbares Attribut setzen Java Basics - Anfänger-Themen 1
X Auf Attribut einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 2
H Objekt als Attribut speichern Java Basics - Anfänger-Themen 11
N Fehler bei string Attribut! Java Basics - Anfänger-Themen 18
B Attribut vom Typ einer Klasse? Java Basics - Anfänger-Themen 3
D Klassen Warum wird das Attribut nicht ausgegeben? Java Basics - Anfänger-Themen 8
N Attribut einer anderen Klasse übertragen/verwenden Java Basics - Anfänger-Themen 5
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
S Zugriff auf Attribut einer unbekannten Klasse erhalten Java Basics - Anfänger-Themen 6
N Methoden Attribut Abfrage eines anderen Objektes Java Basics - Anfänger-Themen 36
A Kann man ein Attribut aus einer anderen Klasse nutzen? Java Basics - Anfänger-Themen 3
A Private Attribut aus fremder Klasse lesen ? Java Basics - Anfänger-Themen 19
J Objekt mit Attribut "ansprechen" Java Basics - Anfänger-Themen 7
J Innerhalb Interfacemethode: Interface als Attribut Java Basics - Anfänger-Themen 2
V Attribut aus aus jedem ArrayListen index auf Bildschirm ausgeben Java Basics - Anfänger-Themen 9
C Probleme bei einem Stringvergleich - Attribut "value" unterscheidet sich Java Basics - Anfänger-Themen 9
B Klassenübergreifendes Objekt Attribut Java Basics - Anfänger-Themen 7
P Ausnahme, wenn Attribut nicht definiert Java Basics - Anfänger-Themen 4
V Auf Objektreferenz über Attribut zugreifen Java Basics - Anfänger-Themen 10
M Objekt mit Liste als Attribut seralisieren? Java Basics - Anfänger-Themen 5
S Ein Attribut/Instanz eines bestehendes Objektes mit SETTER Methode ändern Java Basics - Anfänger-Themen 3
R Variablen final String Variable als Attribut veränderbar? Java Basics - Anfänger-Themen 21
V Methoden Zeilen nach bestimmtem Attribut sortieren Java Basics - Anfänger-Themen 4
Blindxantos Datentypen Uhrzeit in einem Attribut speichern Java Basics - Anfänger-Themen 3
H DOM Attribut als ID kennzeichnen Java Basics - Anfänger-Themen 12
L Methoden In einer Klasse ein Attribut aus einer anderen Klasse setzen Java Basics - Anfänger-Themen 8
M JLabel attribut wert zuweisen Java Basics - Anfänger-Themen 2
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
C Liste mit Attribut Abstract vererben Java Basics - Anfänger-Themen 11
I Von einer Methode eines Objektes auf Attribut eines Objektes anderer Klasse zugreifen Java Basics - Anfänger-Themen 4
Ollek Collections ArrayList Object - Attribut von dem Object vergleichen Java Basics - Anfänger-Themen 7
M .toString(); // Ausgabe: Attribut von Vaterklasse Java Basics - Anfänger-Themen 12
K OOP Datenkapselung mittels private - length Attribut bei Array Java Basics - Anfänger-Themen 3
K Attribut als Referenz auf Objekt Java Basics - Anfänger-Themen 8
J Variable vs Attribut Java Basics - Anfänger-Themen 4
S Klasse als Attribut implementieren Java Basics - Anfänger-Themen 2
W Maven2 <packaging>jar</packaging> über Attribut auf WAR ändern Java Basics - Anfänger-Themen 5
X Attribut in n Objekten suchen Java Basics - Anfänger-Themen 8
G Objekte mit dem Attribut title mit Comparator sortieren Java Basics - Anfänger-Themen 5
P Objekte als Attribut: Referenz oder Kopie? Java Basics - Anfänger-Themen 3
D Zugriff auf attribut anderer Klasse privat/public? Java Basics - Anfänger-Themen 9
R Suchen nach Attribut Java Basics - Anfänger-Themen 5
S Attribut beim erzuegen eines Objektes automatisch erhöhen Java Basics - Anfänger-Themen 6
? Zugriff auf Attribut einer anderen Klasse Java Basics - Anfänger-Themen 2
M probleme mit array (als attribut einer klasse) Java Basics - Anfänger-Themen 2
W Attribut nur in Unterklasse ändern Java Basics - Anfänger-Themen 10
J Attribut casten Java Basics - Anfänger-Themen 3
I Mehrere Klasseninstanzen ueber Attribut sortieren? Java Basics - Anfänger-Themen 2
J Attribut vom Objekt einer eigenen Klasse setzen Java Basics - Anfänger-Themen 6
megachucky wie bekomm ich ein private attribut aus einer andren klasse? Java Basics - Anfänger-Themen 18
J Wie greife ich vonEvent-Handler auf Attribut einer Klasse zu Java Basics - Anfänger-Themen 5
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
K Warum sind Werte in den Feldern ? Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
TeacherMrSSimon Schachspiel, Werte in Figur eintragen klappt nicht Java Basics - Anfänger-Themen 23
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
T ungeordnete Werte-Paare in einer Liste Java Basics - Anfänger-Themen 7
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
Chris.089 2 Werte im Array tauschen Java Basics - Anfänger-Themen 6
docmas 2DArray Werte werden nur untereinander ausgegeben Java Basics - Anfänger-Themen 1
M Nur int-Werte erlauben Java Basics - Anfänger-Themen 11
F Werte in einer Arraylist Zählen Java Basics - Anfänger-Themen 2
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
P Doppelte werte in einer Liste zählen Java Basics - Anfänger-Themen 11
M Wie kann eine Methode eine andere Methode um Werte wie z.B. 1 erhöhen? Java Basics - Anfänger-Themen 6
Igig1 Wie lasse ich dir Werte in einem Array zusammenrücken? Java Basics - Anfänger-Themen 4
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
J Methoden Positive Werte zählen Java Basics - Anfänger-Themen 3
E Meine JCombobox werte an ohne selectiert zu haben Java Basics - Anfänger-Themen 6
H OOP Werte mit Set verändern Java Basics - Anfänger-Themen 6
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
cmn489 Werte beim Funktionsaufruf in ein Feld übertragen(falls dieses leer ist) Java Basics - Anfänger-Themen 1
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32

Ähnliche Java Themen

Neue Themen


Oben