Fachbegriffe Objektorientierung und Java

Diese Fachbegriffe (und ihre Beziehungen) sollten gut unterschieden und richtig zugeordnet werden, um die Erläuterungen in Literatur und Unterricht korrekt und vollständig nutzen zu können.

TODO: in Arbeit …​

Objektorientierung:: (EN: Object Orientation, kurz OO)

Klasse

(EN: Class) Bauplan für Objekte (dieser Klasse), beschreibt Daten (Klassen- und Instanzvariablen) und Algorithmen (Methoden, Konstruktoren, Zuweisungsausdrücke für Instanzvariablen, etc.) samt zugeordneten Typen vollständig, sodass Objekte erzeugt werden können.

Objekt, Instanz:: (EN: object, instance) werden zur Laufzeit im Hauptspeicher erzeugt – erhält den Speicherplatz, in dem die Werte der Instanzvariablen abgelegt sind (nicht enthalten: Klassenvariable, lokale Variable)

Objekterzeugung, Instanzierung

(EN: object creation, instantiation) erfolgt zur Laufzeit (dynamisch) z.B. per new Person("Evi", 16). Die JVM (Java Virtual Machine) stellt den für die Instanzvariablen erforderlichen Hauptspeicher bereit, die Instanzvariablen werden auf den direkt zugewiesenen Wert oder den datentyp-abhängigen Standardwert (0 f. Zahlen, false, null für Objekte) gesetzt, anschließend wird der Konstruktor ausgeführt. Zuletzt wird eine Referenz auf den Speicherplatz (Objektreferenz, ist so etwas wie die Adresse des Objekts) zurückgeliefert, die dann z.B. in einer Variablen gespeichert werden kann.

Methodensignatur

(EN: method signature) ist die Kombination aus Methodenname und der geordneten Liste der Parameter-Typen. Diese muss immer innerhalb einer Klasse eindeutig sein (gilt analog auch für Konstruktoren). Der Rückgabetyp ist bezüglich Eindeutigkeit irrelevant!

Konstruktor

(EN: Constructor) wird bei Objekterzeugung (meist mit Operator new) nach erfolgreicher Anforderung (beim Laufzeitsystem) des benötigten Speichers (im Wesentlichen durch den Platzbedarf der Instanzvariablen bestimmt) ausgeführt, um das erzeugte Objekt verwendungsfertig zu machen.
Hat in Java den exakten Namen der Klasse. Es kann beliebig viele Konstruktoren geben, solange siich die Methodensignatur unterscheidet (siehe auch Objekterzeugung).

Standardkonstruktor

(EN: Default Constructor) ist der Konstruktor ohne Parameter. Wird in verschiedenen Java-Standards benötigt.
Wenn kein einziger anderer Konstruktor definiert ist, erstellt der Compiler einen leeren Standardkonstruktor, der nur in der Binärdatei (Endung .class sichtbar ist).

Attribut, Eigenschaft, Feld, Instanzvariable

(EN: Attribute, Property, Field, Instance Variable) ist eine Variable, die dem Objekt fix zugeordnet ist und während der gesamten "Lebensspanne" des jeweiligen Objekts zur Laufzeit zur Verfügung steht (sichtbar z.B. im Debugger!).
Jede Methode (der selben Klasse) kann unabhängig von der definierten Sichtbarkeit (private, public, …​) direkt lesend und schreibend darauf zugreifen. Bei gleich benannten lokalen Variablen (z.B. myVar) kann mit this.myVar explizit auf die Instanzvariable zugegriffen werden. Die Gesamtheit der Instanzvariablen eines Objekts definiert mit ihren aktuellen Werten dessen Zustand.

Variablen-Deklaration

(EN: Variable Declaration) hier wird für Compiler und Programmierer ein Name und seine wichtigen Charakteristiken bekanntgegeben: Typ und optional weitere Charakteristiken, für Instanzvariablen auch die Sichtbarkeit (private, public, …​), z.B.: int myValue; oder Person evi;.
Lokale Variable erhalten KEINEN Standardwert - ihnen muss vor erstmaligem Lesezugriff ein Wert zugewiesen werden!

Methoden-Deklaration

(EN: Method Declaration) es wird Sichtbarkeit (EN: visibility), Rückgabetyp (EN: Return Type), Name und Parameterliste (jeweils beistrich-getrennte Variablendeklaration)` (sowie optional weitere, noch nicht gelernte Charakteristiken) bekanntgegeben, z.B.: public void setName(String name) …​ . In Java meistens kombiniert mit der Implementation (noch nicht gelernte Ausnahmen: Interfaces, abstrakte Methoden).

Methoden-Implementation/Definition

(EN: gleich) Deklarations-Info (oft auch "Methodenkopf" genannt) gefolgt vom "Methoden-Rumpf": In geschwungenen Klammern eingeschlossen im wesentlichen der Algorithmus (mit den 3 fundamentalen Konzepten sequenzielle Abfolge, Entscheidungen und Wiederholungen) und alle Deklarationen lokaler Variablen sowie mit return Ausstiegspunkte (dahinter jeweils zum Rückgabetyp passender Rückgabewert, bei void fehlt der Rückgabewert).

Methoden-Parameter

(EN: Method Parameter) siehe (Aufruf-)Parameter

Methoden-Rückgabetyp, -Rückgabewert

(EN: Return Type, Value) Bei der Methoden-Deklaration und/oder Implementation ist ein Rückgabe-Typ anzugeben. Dieser bestimmt den Typ des zurückzuliefernden Rückgabe-Wertes. Falls keine Wert-Rückgabe gewünscht ist, wird der Pseudo-Rückgabetyp void verwendet.
In Java kann nur ein einziger Rückgabe-Wert vorhanden sein, allerdings kann dieser auch ein Objekt sein, womit man über die Instanzvariablen bzw. deren Getter sowie über alle weiteren verfügbaren Methoden beliebig komplexe Inhalte zurückliefern kann.
Der verfügbare Rückgabewert MUSS NICHT genutzt werden – der Methodenaufruf ohne Wert-Entgegennahme ist syntaktisch korrekt!

Methoden-Nutzung, -Aufruf

(EN: Method Use)

(Aufruf-)Parameter

(Übergabe-Parameter; EN: Call/Invocation Parameter) dessen nach Auswertung vorliegender Wert wird zur Laufzeit in der Parameter-Variablen der Methodenimplementation verfügbar.
Achtung: Ein etwaig verwendeter Variablenname beim Aufruf ist für die aufgerufene Methode NICHT sichtbar und irrelevant!

Parameter-Variable

(EN: Parameter Variable) wird bei der Methoden/Konstruktor-Implementation in runden Klammern eingeschlossen angegeben. Besteht aus Typ(-Name) gefolgt vom durch den Programmierer festgelegten Variablennamen (es gibt gelegentlich weitere Spezifikationen – für uns dzt. irrelevant).
Zur Laufzeit wird bei Methodenaufruf der Ausdruck an der Position des jeweiligen Parameters ausgewertet und der final ermittelte Wert in der Parameter-Variablen für die aufgerufene Methode bereitgestellt.

Lokale Variable

(EN: Local Variable) gilt nur innerhalb derjenigen Methode, innerhalb derer sie deklariert ist und zwar nur bis die Methode verlassen wird. Der Wert wird also NICHT für den nächsten Aufruf gespeichert!

Anweisung

(EN: Statement) Syntaktisch vollständiges Element der Programm-Ausführung. Salopp vergleichbar mit einem Satz in natürlicher Sprache.
Beispiele: Wert-Zuweisungen, if — else — Statement, for-Statement, Methodenaufruf, Variablendeklaration.

Operator

(EN: gleich) führen an einem, zwei oder drei Werten eine Operation aus und liefern einen Rückgabewert. Beispiele: '+', '-', '=', '==', '!=', '>=', '&&'

Ausdruck

(EN: Expression) ein durch Operatoren und Methodenaufrufe verknüpftes Stück Code, das einen Rückgabewert liefert. In Java sind Ausdrücke z.B.: 2*b + myMethod(c*c) // a, b, c numerisch oder x = 2*a // x, a numerisch oder "k" + "Weine".substring(1, 4) oder x < 5 || false, keine Ausdrücke sind z.B.: if (true) { …​ } oder for (;;) { …​ }

Bedingte Anweisung

(EN: Conditional Statement) in Java: if-Statement if (x < 5) { …​ } optional ergänzt mit else- oder else if-Zweig

Wiederholungsanweisung

while, do - while, for

(Wert-)Zuweisung

(EN: Assignment)

Setter

(EN: gleich)

Getter

(EN: gleich)

Java Beans Spezifikation

(EN: Java Beans Specification) Für uns dzt. wichtig: legt die Getter- und Setter-Spezifikationen fest (Namensgebung, Parameter, Rückgabetyp, Verhalten)

UML

(EN: gleich) Grafische Notation für viele Aspekte eines Computerprogramms (Unified Modeling Language). Wir verwenden dzt. nur Klassendiagramme, es gibt aber mehr als 10 weitere Diagramm-Typen (siehe z.B. Unified Modeling Language – Wikipedia oder UML Unified Modeling Language oder UML 2 Tutorial: Einführung in die neue Standardmodellierungssprache)

Klassendiagramm

(EN: Class Diagram)

Exception

(EN: gleich)

Block

(EN: gleich)

Javadoc

(EN: gleich)

Kommentar

(EN: Comment) Zeilenkommentar, Block-Kommentar, Javadoc-/Dokumentations-Kommentar

Zeilenschaltung

(EN: Return, Newline, Line Break)

Whitespace

(EN: gleich) Sammelbegriff für Leerzeichen (space), Tabulator, Zeilenschaltung

Rückgabe - (Bildschirm-)Ausgabe

(EN: return (value), (Screen) Output) Rückgabe (eines Wertes) ermöglicht die Weiternutzung eines Ergebnisses im Programm,
Ausgabe (auf dem Bildschirm o.ä.) liefert Anzeige für den Nutzer, kann im Programm nicht genutzt werden.

Codierungs-Konventionen

(EN: Coding conventions) Satz von Richtlinien zu Benennungen, Formatierungen, Anordnungen, sonstigen Regeln, die sicherstellen sollen, dass innerhalb von Teams oder auch für alle Programmierer einer Plattform eine gewisse Einheitlichkeit von geschriebenem Code besteht.
Das erleichtert rasches Lesen fremden Source-Codes ungemein. Auch viele Code-Tools berücksichtigen bzw. benötigen solche Klärungen.
Es gibt auch Werkzeuge, die Konventionsverstöße im Code erkennen, markieren und zum Teil korrigieren können.

Quellcode

(EN: source code) Das in der jeweiligen Programmiersprache (hier Java) von Programmierern geschriebene Programm. Diese wird später vom Compiler in eine Klassendatei übersetzt und ist damit vom Java Laufzeitsystem ausführbar.

JVM

(EN: gleich) Java Virtual Machine (Java Laufzeit-System)

Compiler

(EN: gleich) Ein Programm, das den Java-Quellcode in eine von der JVM ausführbare, binäre Klassendatei transformieren kann. Bei syntaktischen Fehlern wird das Compilieren mit (meistens) sinnvollen Fehlermeldungen abgebrochen.

Klassendatei

(EN: class file) Das Ergebnis eines erfolgreichen Compiler-Laufes zu einer Java-Datei (z.B. Person.java). Diese Datei kann von Java-Laufzeitsystem ausgeführt werden, hat Endung .class (z.B. Person.class).

IDE

(EN: Integrated Development Environment) Integrierte Entwicklungsumgebung – Werkzeug zur komfortablen Softwareentwicklung mit vielen Hilfsfunktionalitäten.
Beispiele: BlueJ, Eclipse, IntelliJ

Kontrollstrukturen

(EN: Control Structures) Überbegriff für Bedingte Ausführung von Programmteilen - if…​/else…​ und später while…​, for…​

Bedingte Anweisung, Verzweigung, Mehrfachverzweigung

(EN: Conditional Statement, Branch)

Schleifen

(EN: ) Kopfgesteuert, Fußgesteuert

Bedingte Ausführung, Fallunterscheidung (EN: Conditionals) mit if…​/else if…​/else…​

TODO: in Arbeit ...

:: (EN: )