# "Java von Kopf bis Fuß" - return/get/set-Code - ich tappe im Dunkeln



## I.E. (29. Jun 2014)

Hallo, 

ich arbeite mit dem Buch „Java von Kopf bis Fuß“ und bleibe momentan bei dem Thema „return“ und der set/get-Geschichte hängen. 

Auf der Seite 79 bekommt man den unten angegebenen Code serviert. 
Erstens verstehe ich ihn nicht, zweitens läßt er sich bei mir sowieso nicht kompilieren (Fehlermeldung – ein main-Typ fehlt).

Erklärungen seitens des Buches sind an dieser Stelle mehr als dürftig (obwohl ich vielen anderen Aspekten des Buches bisher sehr viel abgewinnen konnte). 

Kann mir jemand die Idee hinter diesem Code etwas näherbringen? 



public class E_Gitarre {

String marke;
int anzahlTonabnehmer; 
boolean verwendetVonRockStar;

String getMarke() 			                 {return marke;   }

void setMarke(String eineMarke) 	              {marke = eineMarke;}

int getAnzahlTonabnehmer()			{return anzahlTonabnehmer;	}

void setAnzahlTonabnehmer(int zahl)                {anzahlTonabnehmer = zahl;	}	

boolean getVerwendetVonRockStar()	             {return verwendetVonRockStar;}

void setVerwendetVonRockStar(boolean jaOderNein)	{verwendetVonRockStar = jaOderNein;}


}


----------



## turtle (30. Jun 2014)

Zum Ersten: Benutze bitte JAVA-Tags für deinen Code.

Zweitens: Die Datei lässt sich sehr wohl kompilieren, also übersetzen, aber NICHT ausführen.

Warum? Jedes Java-Programm beginnt seine Ausführung in der main-Methode, die folgerndermassen definiert sein muss:

```
public static void main(String[] args) {
    
}
```
Und genau das fehlt in deiner Datei.

Deine Datei stelle ein sogenanntes POJO dar (ein Plain-Old-Java-Objekt). Diese werden oft zusammen mit anderen Klassen (beispielsweise einem Testprogramm mit main-Methode) verwendet.


----------



## husox123 (30. Jun 2014)

Es ist eine Klasse, die alleine nichts bewerkstelligen kann.

z.B könntest du mit Hilfe dieser Klasse das Object "gitarre" erstellen, das die Eigenschaften 

        marke
	anzahlTonabnehmer
	verwendetVonRockStar

annimmt und das du entsprechend verwalten kannst.

Also musst du dir eine main-Methode schreiben, die vielleicht so aussieht.


```
public class TestEG {

	public static void main(String[] args) {

		E_Gitarre eGit = new E_Gitarre();
		
		eGit.setMarke("Hallo");
		eGit.setAnzahlTonabnehmer(6);
		eGit.setVerwendetVonRockStar(true);
				
		System.out.println("Marke              = " +eGit.getMarke());
		System.out.println("Anzahl-Tonabnehmer = " +eGit.getAnzahlTonabnehmer());
		System.out.println("Verwendung von RS  = " +eGit.getVerwendetVonRockStar());
		
	}

}
```


Allerdings sind die Methoden get() und set() hier nicht unbedingt notwendig, da  hier das Object-Eigenschaften noch nicht gekapselt sind. Das wird im Buch bestimmt vorkommen. 

Deswegen kann man auch so eine main-Methode schreiben: 



```
public class TestEG {



	public static void main(String[] args) {

		E_Gitarre eGit = new E_Gitarre();
		
		eGit.marke = "Hallo";
		eGit.anzahlTonabnehmer = 6;
		eGit.verwendetVonRockStar = true;
		
		
		System.out.println("Marke              = " +eGit.marke);
		System.out.println("Anzahl-Tonabnehmer = " +eGit.anzahlTonabnehmer);
		System.out.println("Verwendung von RS  = " +eGit.verwendetVonRockStar);
		
	}

}
```


----------

