ffprog:ffprogjava2016:animation

Ziel ist es, animierte Grafiken zu erzeugen und dabei die ersten Prinzipien der objektorientierten Programmierung (OOP) kennen zu lernen.

class

  • Fundamentaler Container in Java. Enthält Variablen und Methoden (auch Funktionen, Unterprogramme, Prozeduren genannt).
  • Mindestens eine Klasse in einem Programm muss eine statische Methode main haben. Dort startet das Programm.

Klasse vs. Instanz

  • Klasse: Alles was static ist. Zugriff via KlassenName.variablenName oder KlassenName.methodenName.
  • Klasse: Existiert genau einmal. Wird beim Laden des Javaprogramms angelegt.
  • Instanz: Alles was nicht static ist. Es kann beliebig viele Instanzen einer Klasse geben, die mit new KlassenName() erst erzeugt werden müssen.
  • new KlassenName() liefert eine Referenz, d.h. einen Speicherort, wo die Daten der Instanz abgelegt sind.

private vs. public

  • public: Alle Klassen dürfen die Variable lesen und verändern, bzw. die Methode aufrufen.
  • private: Nur die eigene Klasse darf die Variable lesen und verändern, bzw. die Methode aufrufen.

Es gibt noch zwei weitere Möglichkeiten: protected oder gar nichts. Darauf wird hier nicht eingegangen.

Sinn von private

  • Erlaubt Kontrolle über Variablen (niemand sonst darf die verändern).
  • Erlaubt es, das interne Funktionieren einer Klasse zu verstecken.

Getter und Setter

  • Zugriff auf private Variablen mit Hilfe einer (public) Methode. Beim Setter kann ein “Sanity-Check” gemacht werden. Diese Methoden kann Netbeans automatisch erzeugen.

Klasse Actor V0

  • Konstruktor (aufgerufen mit new)
  • Methode nextStep
  • Methode draw
  • eventuell weitere Setter/Getter Methoden

NetBeans Projekt Actor V0

Klasse Actor V1

  • static Variablen und Methoden, um alle Actor-Instanzen auf einmal ansprechen zu können.
  • private static ArrayList<Actor> actorList;
  • public static void nextStepAll();
  • public static void drawAll();

NetBeans Projekt Actor V1

  • ffprog/ffprogjava2016/animation.txt
  • Last modified: 2016/09/02 17:07
  • by Ivo Blöchliger