public class Javakurse18 { public static void main (String[] args) { //Erzeugen eines Mensch-Objektes und speichern in der Variable "einStudent" Mensch einStudent = new Mensch(); //Aufruf des ersten Konstruktors System.out.println("Bevor der erste dumm wurde: " + einStudent.iq); //Student betrinkt sich und wird jetzt dümmer einStudent.wirdDuemmer((short)30); //wir pfeifen hier auf den Rückgabewert - besser wäre es im Falle von false //eine Fehlermeldung auszugeben System.out.println("Nach dem Besaufen des ersten: " + einStudent.iq); //ein neuer Mensch wird erschaffen - wir spielen Gott Mensch andererStudent = new Mensch('W', (short)120, true, "grün"); //diesmal der zweite Konstruktor andererStudent.wirdDuemmer((short)5); System.out.println("Nach dem Besaufen des anderen Studenten: " + andererStudent.iq); } } //definieren der Klasse Mensch - diese Klasse gibt an, welche Eigenschaften eines Menschen für unsere Zwecke relevant sind class Mensch { static int anzahlAugen = 2; //das ist eine Klassenvariable (->static): alle zukünftigen Objekte dieser Klasse, also alle Menschen //werden dieselbe Variable untereinander teilen. Sobald diese Variable für einen Menschen geändert wird, //ist sie für *alle* Menschen geändert char geschlecht; //ab hier Instanzvariablen - jeder Mensch hat seine eigenen Instanzvariablen, die nur für ihn gelten. short iq; //Intelligenzquotient boolean erbkrankheiten; //vorhanden oder nicht String augenfarbe; public Mensch() //ein Konstruktor - wird bei jedem Erzeugen eines Objektes aufgerufen { this('M', (short)100, false, "dunkelbraun"); //hier rufen wir den anderen Konstruktor auf } public Mensch(char geschlecht, short iq, boolean erbkrankheiten, String augenfarbe) //noch ein Konstruktor { this.geschlecht = geschlecht; this.iq = iq; this.erbkrankheiten = erbkrankheiten; this.augenfarbe = augenfarbe; } void setGeschlecht(char neuesGeschlecht) //Ändern des Geschlechts { geschlecht = neuesGeschlecht; //die Instanzvariable geschlecht erhält den per Parameter übergebenen Wert } void setIQ(short iq) { this.iq = iq; //wenn sowohl Parametername als auch Klassenvariablen-/Instanzvariablenname gleich sind //muss man vor jene Variable, die sich auf die Klasse bezieht, "this." voranstellen //this bezieht sich auf das aktuelle Objekt, in dem Fall auf das Objekt in "einStudent" } boolean wirdDuemmer(short dummZiffer) { if (iq >= dummZiffer) //iq darf letztendlich nicht unter 0 sein { iq -= dummZiffer; return true; //Subtraktion erfolgreich durchgeführt } else return false; //Kein Erfolg } }