Thema: Beispiel Datum: 04.10.2013

                  class Spieler{
                    private String name;
                    private int lebenspunkte, angriffskraft;
                    // Es werden die Klassenvariablen festgelegt, welche von allen Methoden innerhalb
                    // der Klasse verwendet werden könnten. Andere Klassen können auf diese nicht
                    // zugreifen, da es private Variablen sind.
                    // Auf public Variablen kann jeder zugreifen.
                    // Auf protected Variablen nur Klassen, die von der entsprechenden Klasse erben.

                    public Spieler(String name, int lebenspunkte, int angriffskraft){;
                      this.name = name;
                      this.lebenspunkte = lebenspunkte;
                      this.angriffskraft = angriffskraft;
                    }
                    // Das "this." bezieht sich auf die Klassenvariablen und weißt diesen die Methodenvariablen
                    // des Konstruktors zu. Klassenvariablen gelten für die komplette Klasse und stehen außerhalb
                    // von Methoden und Methodenvariablen gelten nur für die Methode!
                    // Ohne das "this." würden sich die Methodenvariablen sich selbst zuweisen und man könnte andere
                    // Methoden nicht auf diese zugreifen lassen.

                    public void angreifen(Spieler spieler){
                      if(this.getAngriffskraft() > spieler.getAngriffskraft()){
                        spieler.setLebenspunkte(spieler.getLebenspunkte() - 1);
                      } else{
                        if(this.getAngriffskraft() == spieler.getAngriffskraft()){
                          System.out.println(this.getName()+" und "+spieler.getName()+" sind gleich stark");
                        } else{
                          if(this.getAngriffskraft() < spieler.getAngriffskraft()){
                            this.setLebenspunkte(this.getLebenspunkte() - 1);
                          }
                        }
                      }
                    }
                    // Da man von einer Klasse, einzelne Objekte erzeugen kann, kann man der Methode auch Objekte einer Klasse, in
                    // diesem Fall ein Objekt vom Typ Spieler, übergeben.
                    // Das "this" bezieht sich hierbei auf das jeweilige Objekt, welches die Methode ausführt. Wenn das Spieler Objekt
                    // "Karl" die Methode ausführt, bezieht sich das "this" auf die Werte von Karl. Führt das Spieler Objekt "Mike"
                    // die Methode aus, so bezieht sich das "this" auf die Werte von Mike.

                    //Setter
                    public void setName(String name){
                      this.name = name;
                    }
                    public void setLebenspunkte(int lebenspunkte){
                      this.lebenspunkte = lebenspunkte;
                    }
                    public void setAngriffskraft(int angriffskraft){
                      this.angriffskraft = angriffskraft;
                    }
                    // Private Variablen können nur über eine Methode gesetzt werden.

                    //Getter
                    public String getName(){
                      return name;
                    }
                    public int getLebenspunkte(){
                      return lebenspunkte;
                    }
                    public int getAngriffskraft(){
                      return angriffskraft;
                    }
                    // Private Variablen können nur über eine Methode zurückgegeben werden.
                  }
                   
                

Thema: Beispiel Datum: 04.10.2013

                  class KampfUI{
                    public static void main(String args[]){
                      Spieler karl = new Spieler("Karl", 20, 5);
                      Spieler mike = new Spieler("Mike", 15, 4);
                      // Die einzelnen Objekte der Klasse Spieler werden erzeugt und die Werte werden über
                      // den Konstruktor initialisiert.

                      System.out.println(karl.getName()+" hat "+karl.getLebenspunkte()+" Lebenspunkte.");
                      System.out.println(mike.getName()+" hat "+mike.getLebenspunkte()+" Lebenspunkte.");
                      // Ausgabe der Lebenspunkte vor dem Kampf.

                      karl.angreifen(mike);
                      // Das Spieler Objekt karl nutzt die Methode angreifen und bekommt das Spieler Objekt mike übergeben.

                      System.out.println();
                      System.out.println(karl.getName()+" hat "+karl.getLebenspunkte()+" Lebenspunkte.");
                      System.out.println(mike.getName()+" hat "+mike.getLebenspunkte()+" Lebenspunkte.");
                      // Ausgabe der Lebenspunkte nach dem Kampf.
                    }
                  }