ffprog:ffprogjava2016:animation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ffprog:ffprogjava2016:animation [2016/09/02 08:34] Ivo Blöchligerffprog:ffprogjava2016:animation [2016/09/02 15:07] (current) – [Animation] Ivo Blöchliger
Line 1: Line 1:
 +{{backlinks>.}}
  
 +==== Animation und Einführung OOP ====
 +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//.
 +
 +==== Animation ====
 +=== Klasse Actor V0 ===
 +  * Konstruktor (aufgerufen mit new)
 +  * Methode nextStep
 +  * Methode draw
 +  * eventuell weitere Setter/Getter Methoden
 +
 +{{ :ffprog:ffprogjava2016:animation.zip |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();
 +
 +{{ :ffprog:ffprogjava2016:animationv2.zip |NetBeans Projekt Actor V1}}