Probleme mit dem rückgabetyp void

Shakra

Aktives Mitglied
Hi
ich habe schon wieder ein void problem..
Hier ist der teilcode:
Java:
void info()
	{System.out.println("Glas1:"+glas1.info());
	 System.out.println("Glas2:"+glas2.info());
	 System.out.println("Glas3:"+glas3.info());}
Der compiler sagt: void typ not allowed here..Ich weiss nicht warum aber aus irgendeinem grund, sagt er das immer wen irgendwas falsch ist..Aber der fehler ist dann meistend woanders oder ich kann zusammenhang nicht herstellen..
Also ist in dem teilcode irgendeinen fehler oder muss ich den ganzen code einfügen=)
 
OK=)
HIer ist er viel spass=)
Java:
class vorratskammer
{	marmelade glas1, glas2, glas3;

	vorratskammer(marmelade glas1, marmelade glas2, marmelade glas3)
	{this.glas1 = glas1;
	 this.glas2 = glas2;
	 this.glas3 = glas3;}
	
	void info()
	{System.out.println("Glas1:"+glas1.info());
	 System.out.println("Glas2:"+glas2.info());
	 System.out.println("Glas3:"+glas3.info());}


}



class marmelade
{	int inhalt;
	String art, datum;
	
	marmelade(String art, int inhalt,String datum)
	{this.inhalt = inhalt;
	 this.art = art;
	 this.datum = datum;}


	public boolean leer()
	{return (inhalt == 0);}

	void auftragen(int entnehmen)
	{if(!leer())
	 {if(inhalt > entnehmen)
	  {inhalt -= entnehmen;
	   System.out.println("Auftragen von "+entnehmen+" Unzen");}
	 else
	   System.out.println("Inhalt reicht nicht aus");}
	else
	   System.out.println("Das Glas ist leer!");} 
		

	
	void info()
	{System.out.println("Art:"+art+"\t"+" inhalt:"+inhalt+"\t"+" datum:"+datum);}
}


class marmo
{	public static void main(String[] args)
	{

	 marmelade glas3 = new marmelade("X",50,"23.11.2012");
	 marmelade glas1 = new marmelade("Z",100,"20.9.2012");
	 marmelade glas2 = new marmelade("Y",200,"30.03.2012");
	 vorratskammer kammer1 = new vorratskammer(glas1,glas2,glas3);
	 
	 glas1.auftragen(10);
	 kammer1.info();

	}
}

Fragt nicht was das soll..ist son übungsaufgabe..
 
Sieht furchtbar aus. Lass den Quelltext mal vernünftig formatieren. Dann sieht man vielleicht schon, was nicht stimmt.
 
[c]glas1..3.info()[/c] gibt void zurück. Das kannst du nicht ausgeben. Entweder lässt du die Ausgabe in [c]glas1..3.info()[/c] und lässt in dem anderen [c]info()[/c] das Sysout weg, oder du gibst in den Methoden einen String zurück, welchen du dann ausgeben kannst.
 
Java:
System.out.println("Glas1:"+glas1.info());

Die Methode
Code:
 info()
hat den Rückgabetyp
Code:
void
, gibt also nichts zurück. Deswegen kannst du sie auch nicht in einen
Code:
System.out.println
aufrufen.

So würde das gehen:

Java:
System.out.println("Glas1:");
glas1.info();
 
na ja,
Code:
glas1.info()
gibt keinen String zurück, sondern druckt selber aus. Dementsprechend kannst du es nicht der
Code:
System.out.print
- Methode übergeben...sondern es bspw. so lösen:

Java:
	void info() {
		System.out.print("Glas1:");
		glas1.info();
		System.out.print("Glas2:");
		glas2.info();
		System.out.print("Glas3:");
		glas3.info();
	}
 
Java:
	void info() {
		System.out.print("Glas1:");
		glas1.info();
		System.out.print("Glas2:");
		glas2.info();
		System.out.print("Glas3:");
		glas3.info();
	}

Ja, so klappt es..Diese rückgabe angelegenheiten muss ich mal unter die lupe nehmen..in dem tutorium mit ich arbeite, hat man diesen teil weggelassen bzw. noch nicht übersetzt..schade..

und vielen Dank für die Antworten
 

Neue Themen


Zurück
Oben