{{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 actorList; * public static void nextStepAll(); * public static void drawAll(); {{ :ffprog:ffprogjava2016:animationv2.zip |NetBeans Projekt Actor V1}}