Elementare Typen und Referenztypen

Babylu

Mitglied
Hi,

ich bin ein Anfänger und versuche mich mit dem Buch Kopf bis Fuß einzuarbeiten
hab ein Verständnisproblem und bitte euch wider um Hilfe 😀

Das Skript (Buch S.62) ( mit der Definition meiner denke):
Java:
class Hund {
	String name;											// deklariert einen String mit dem Namen name

	public static void main(String[] args) {
		
		Hund hund1 = new Hund();							// deklariert eine Referenz Hund hund1 mit dem Objekt new Hund	
		hund1.bellen();										// weist dem hund1 den Punktoperator bellen
		hund1.name = "Bert";								// weist dem hund1 den Namen Bert zu
		
		Hund [] meineHunde = new Hund [3];					// deklariert meineHunde Array variable mit dem Objekt Hund (3x)
		meineHunde[0] = new Hund();							// gibt dem variablen 0 das Objekt Hund
		meineHunde[1] = new Hund();							// gibt dem variablen 1 das Objekt Hund
		meineHunde[2] = hund1;								// gibt dem variablen 2 das Objekt hund1
		
		meineHunde[0].name = "Fred";						// weist dem variablen 0 den Namen Fred zu
		meineHunde[1].name = "Margot";						// weist dem variablen 1 den Namen Margot zu
		
		System.out.print("Der Name des letzten Hundes ist ");  
		System.out.println(meineHunde[2].name); 
		int x = 0;											// deklariert einen int mit dem Wert 0
		while (x < meineHunde.length){						// führe solange aus bis die Bedingung nicht mehr wahr ist
			meineHunde[x].bellen();							// führe bei jedem meineHunde.bellen aus
			x = x + 1;										// nach dem durchlauf immer +1 auf x
		}
	}
	public void bellen (){									// keine Ahnung wie ich das ausdrücken soll
		System.out.println(name + " sagt WauWau");			// gibt in einer neuen Zeile den Namen von dem Hund das auf
	}														// meineHunde[x].bellen(); zugreift mit dem Text aus
			
	}
und das ist die Lösung

null sagt WauWau
Der Name des letzten Hundes ist Bert
Fred sagt WauWau
Margot sagt WauWau
Bert sagt WauWau[/code]

und nun zu meinem Problem:

[JAVA=18] System.out.print("Der Name des letzten Hundes ist "); [/code]
woher kennt der den Namen vom letzten Hund ich sehe nichts was drauf führt das er den Namen vom letzten Hund kennt! ???:L

[JAVA=19] System.out.println(meineHunde[2].name); [/code]
gibt er hier nur den Namen von hund2 aus oder von allen (wenn alle, wieso) ???:L

[JAVA=26] public void bellen (){ [/code]
wäre das nicht besser wenn es am Anfang stehen würde anstatt zum Schluss ???:L

[JAVA=33] null sagt WauWau[/code]
wie kommt er auf die null ???:L

wie immer bin ich für jede Hilfe/tipp dankbar 😀 und die Erklärung bitte einfach halten damit ich es verstehe :bloed:
 
Java:
18 System.out.print("Der Name des letzten Hundes ist ");
woher kennt der den Namen vom letzten Hund ich sehe nichts was drauf führt das er den Namen vom letzten Hund kennt! ???:L
hier steht kein ln hinter dem print, das heißt er macht keine neue zeile. also er gibt den namen in 18 nicht aus, er gibt ihn in 19 aus. das ist der letze hund. Warum ist 2 der 3.? Weil wir bei 0 anfangen, 0,1,2 2 ist der 3. der letze...
Java:
19 System.out.println(meineHunde[2].name);
gibt er hier nur den Namen von hund2 aus oder von allen (wenn alle, wieso) ???:L
Wie schon gesagt, der name von hund2, das ist der letze
Java:
26 public void bellen (){
wäre das nicht besser wenn es am Anfang stehen würde anstatt zum Schluss ???:L
variablen, methoden... is so üblich und technisch egal
Java:
33 null sagt WauWau
wie kommt er auf die null ???:L
Das ist die ausgabe von Zeile 7. Der name war noch nicht gesetzt also null
 
> woher kennt der den Namen vom letzten Hund ich sehe nichts was drauf führt das er den Namen vom letzten Hund kennt!

was verstehst du denn unter 'kennen' usw.? du interpretierst vielleicht zuviel hinein, was jetzt schwer auszuradieren ist,
dem Code nach gibt es drei Hunde, der letzte soll hier der an Arrayindex 2 sein,
dieser 'letzte' Hund existiert, dafür hat man schließlich Code geschrieben, von diesem letzten Hund wird gleich der Name ausgegeben, weil der Programmierer es so will, deswegen ist Zeile 19 im Code drin,
das macht man einfach, man programmiert das was man will

es ist also klar alles so, dass gleich 'der Name des letzten Hundes' ausgegeben wird,
und das einzige was nun noch passiert, ist dass davor eine Ausgabe mit beliebigen Text erscheint, was kann daran schlecht sein?

-----

die anderen Fragen könnten im Grunde auch mehr Erklärungen von dir vertragen (was sollte denn statt 'null sagt WauWau' anderes erscheinen?), lasse ich aber auch für andere 😉
(bzw. bin zu spät)
 
ersteinmal danke für die antwort ARadauer

und nun zu dir SlaterB

> woher kennt der den Namen vom letzten Hund ich sehe nichts was drauf führt das er den Namen vom letzten Hund kennt!

was verstehst du denn unter 'kennen' usw.? du interpretierst vielleicht zuviel hinein, was jetzt schwer auszuradieren ist,
dem Code nach gibt es drei Hunde, der letzte soll hier der an Arrayindex 2 sein,
dieser 'letzte' Hund existiert, dafür hat man schließlich Code geschrieben, von diesem letzten Hund wird gleich der Name ausgegeben, weil der Programmierer es so will, deswegen ist Zeile 19 im Code drin,
das macht man einfach, man programmiert das was man will

es ist also klar alles so, dass gleich 'der Name des letzten Hundes' ausgegeben wird,
und das einzige was nun noch passiert, ist dass davor eine Ausgabe mit beliebigen Text erscheint, was kann daran schlecht sein?

die anderen Fragen könnten im Grunde auch mehr Erklärungen von dir vertragen (was sollte denn statt 'null sagt WauWau' anderes erscheinen?), lasse ich aber auch für andere
(bzw. bin zu spät)
Heute 12:20

hääää ???:L
bin ich hier im falschen film ???:L wieso machst du mich hier so dumm an ???:L
ich wollt doch nur hilfe

es ist also klar alles so, dass gleich 'der Name des letzten Hundes' ausgegeben wird,
und das einzige was nun noch passiert, ist dass davor eine Ausgabe mit beliebigen Text erscheint, was kann daran schlecht sein?

wo bitte im Text der von mit erfasst wurde steht das es schlecht ist ???:L
ich wollt einfach nur wissen wie man darauf kommt

die anderen Fragen könnten im Grunde auch mehr Erklärungen von dir vertragen (was sollte denn statt 'null sagt WauWau' anderes erscheinen?), lasse ich aber auch für andere
(bzw. bin zu spät)
Heute 12:20

wo bitte hab ich geschrieben dass da was anderes erscheinen soll ???:L
hast du dir es überhaupt richtig angeschaut sieht nach meiner Meinung nicht so aus
 
wie in den Code interpretierst du meiner Ansicht nach auch in meine Antwort Dinge hinein,
'schlecht ist' steht für beliebiges (z.B. komisch/ unverständlich, dein Smily war schließlich 😕 usw.) 😉

aber egal, wenn dir die andere Antwort schon hilft dann könnten wir über meinen Teil ja einfach nicht mehr weiter reden
 
dann gib mir doch liebern tipp wie ich es besser machen kann 😀
ich bin ein Anfänger und kenne mich kaum aus
das wissen was ich hab basiert auf das Buch (und es ist nicht viel wie man an meinen Fragen erkennen sollte da ich noch recht am Anfang bin!)
 

Zurück
Oben