Grundlagen Zusammenfassung der Java Grundlagen PDF

Title Grundlagen Zusammenfassung der Java Grundlagen
Author claudia bremer
Course Objektorientiertes Programmieren in JAVA
Institution Hochschule Hannover
Pages 35
File Size 2.2 MB
File Type PDF
Total Downloads 42
Total Views 165

Summary

eine Zusammenfassung und Übersicht der Java Grundlagen mit den wichtigsten Informationen...


Description

3 wichtige Eigenschaften der abgebildeten Objekte Eigenschaften einer Klasse • jedes Objekt hat eine Identität • Attribute (was das Objekt hat) • jedes Objekt hat einen Zustand • Operationen (was das Objekt kann) • jedes Objekt zeigt ein Verhalten Eine Klasse beschreibt, wie ein Objekt aussehen soll.

Plattformunabhängigkeit Java-Quellcode wird in den Zwischencode übersetzt und dann von der Jave-Laufzeitumgebunt, unabhängig von der Hardware-Plattform, ausgeführt. Objektorientierung

Klassen werden definiert von diesen werden Instanzen oder Objekte erzeugt Programm besteht darin: → Versenden von Nachrichten zwischen dein einzelnen Objekten bzw. → Aufruf von Methoden (Java-Terminologie)

Einfachheit

zugrundeliegende Konstrukte sind übersichtlich, verständlich und leicht zu erlernen mit wenigen Schlüsselwörtern und -konzepten wird eine große Ausdrucksfähigkeit erreicht

Sicher

zuverlässige Speicherverwaltung, konsequente Fehlerbehandlung, Validierung des erzeugten Codes

Open Source

öffentlicher Quellcode

Editonen

unterscheiden sich im Wesentlichen durch die Klassenbibliotheken

JSE - Java Standard Edition

grundlegende Funktionalitäten (inkl. grafischer Benutzeroberfläche, DB, Netzwerk, Dateisystem,....)

JEE - Java Enterprise Edition

für Entwicklung unternehmenskritischer Anwendungen. basiert auf JSE und erweitert diese um weitere Technologien

Java Embedded

für den Einsatz in eingebetteten Systemen

SDK Java Software Development

Sammulng von Daten, -umfasst den Compiler, der den Java-Quellcode in einen Plattformübergreifenden Bytecode (Zwischencode) übersetzt und

JDK java DevelopmentKit

ist die JRE, aber mit Javac (benötigt zum Kompilieren von Java-Quellcode)

JRE Java Runtime Environment

Laufzeitumgebung. Enthält JVM

MainMethode

public static void main(String[] args)

Startpunkt für die Ausführung des Programms (findet der Java-Interpreter diese Methode nicht, führt dies zu einem Laufzeitfehler und es wird eine Fehlermeldung ausgegeben.) mit der Main-Methode kann nichts zurückgeben (void). Sie kann lediglich Werte z.B. am Bildschirm ausgeben oder neue Objekte, im Rahmen der Objektorientierung erzeugen. In ihr werden neue Objekte instanziiert.

public: (Modifier, der den Zugriff regelt.

Public, weil von außerhalb der Klasse auf diese zugegriffen wird

static (unabhängig von der Klasse, in der sie steht)

static: weil sie aufgerufen wird, ohne dass zuvor ein Objekt der Klasse erstellt wurde.

(Datentyp oder) void

void: weil sie keinen Rückgabewert besitzt

Methodenname

main

(String[] args)

Deklarieren von Variablen Erwähnung einer Variable deklariert durch einen Datentyp Initialisieren Erstzuweisung eines Wertes (Wertzuweisung) Definieren

Parameter. Art Kommunikataion Konsole und java-Programm

lassen sich kombinieren Hund bello = new Hund(); die Variable bello, referenziert ein Hund-Objekt. bello.alter = 4; Die Objektvariable alter soll initialisiert werden mit dem Punkt-Operator können Werte initialisiert werden Referenzvariablen eine Referenz auf ein konkretes Objekt einer Klasse

Instanziieren Instanz einer Klasse (Objekt) erzeugen

String beer = new String("Jever"); Objekte werden instanziiert

Datentyp variablenName int userAlter;

Deklaration das erste "Erwähnen" der Variablen

Datentyp variablenName = Wertzuweisung int userAlter = 45; int userAlter = 46;

Initialisierung Erstzuweisung eines Wertes danach eine Zuweisung

Konstruktor Initialisierung der Attributwerte des neuen Objekts ggf. Erzeugung existenzabhängiger Teil-Objekte

besondere Methode, die ein neu gebildetes Objekt in den Anfangszustand versetzen kann. D.h. Objekte können bei der Erstellung sofort mit Werten initialisiert werden. haben den Namen der Klasse keinen Rückgabewert wird kein Konstruktor definiert, wird automatisch ein parameterloser Standard-Konstruktor erzeugt

gibt in Kombination mit dem Schlüsselwort new automatisch eine Referenz auf das gerade erstellte, neue Objekt zurück

return kann dazu genutzt werden, um Schleifen zu verlassen. nach dem Schlüsselwort Return angegebene Variable aus dieser Methode zurück gegeben wird und somit auch außerhalb der Methode nutzbar wird.

public void foo(int a, boolean b){ // Parameter System.out.println(a); System.out.println(b); }

foo(1, true); // Argumente

In der (Methodensignatur) sind zwei Variablen a und b deklariert. Das sind unsere Parameter.

Beim Aufruf der Methode foo() müssen zwei Werte übergeben werden (int und boolean in der richtigen Reihenfolge).

Die Parameter schreiben allgemein vor, wie eine Methode später aufgerufen werden muss:

Diese beiden konkreten Werte sind unsere Argumente beim Methodenaufruf.

Java ist pass-by-value! Bei Parameter von primitiven Datentypen bedeutet pass- by-value, dass die Werte der übergebenen Argumente beim Methodenaufruf in die Parameter-Variablen kopiert werden.

Datentyp

definiert die Art der Daten, die verfügbaren Operationen und den möglichen Wertebereich der Variable einfache Datentypen (byte, short, int, long, doubel, float, char, boolean) → haben fest vorgegebenen Speicherplatz

komplexe Datentypen /Referenztypen definiert durch Klasse oder Array. Sie enthalten den Verweis auf eine Speicherstelle, wo eine komplexe Datenstruktur vorliegt → diese setzt sich aus mehreren einfachen Datentypen oder Referenztypen zusammen Array: identifiziert ein Objekt, das mehrere Werte von demsselben Typ speicher kann Variable: Container public class meineKlasse { static int nummer; //Klassenvar double breite; //Objektvariable }

Name für eine Speicherstelle im Hauptspeicher, die einen bestimmten Datentyp verwendet, um einen Wert zu erhalten. Eine Variable verweist auf einen Speicherbereich im Computer und kann verschiedene Werte annehmen und repräsentieren. Um auf den gespeicherten Wert zuzugreifen wird sie über ihren zugewiesenen Namen angesprochen. •

Instanzvariablen: Objektvariablen . Objekt-Eigenschaften: Größe, Namen, Farbe,... non-static

Instanzvariablen gehören zu den Objekten und unterscheiden sich in ihren Werten von Objekt zu Objekt - (können sie zumindest). • • •

sollten immer private deklariert werden und man sollte mit getter /setter methoden auf sie zugreifen. Nicht statisch speichern die Eigenschaften von Objekten

Klassenvariablen statische Variablen. kann von allen Objekten genutzt werden. Dienen dem kompletten Programm (Spiel: Highscore-Listen) → Schlüsselwort static public static final PW - kann von außen nicht verändert werden. Bsp. static int autoReifenAnzahl = 4; • gehören zur Klasse und nicht zum Objekt • werden nur 1x für alle Objekte der Klasse angelegt • während der ges. Laufzeit des Programms verwendbar • sollten bei Deklaration, initialisiert werden • Zugriff auf Klassenvariable mit o Bezugsobjekt.Name oder o Klassen-Name (bevorzugt)

Klassenvariablen gehören zur Klasse (sind an die Klasse gebunden)

Auto.java

Main.java

//Instanzvariablen (stehen IN einem Objekt zur Verfügung) int ps; String hersteller;

Auto a1 = new Auto();

//Klassenvariable (existieren unabhängig eines konkreten Objektes) static int anzahl

//Zugriff über die Referenzvariable a1.ps = 120; a1.hersteller = “Volvo”; //statischer Zugriff über den Klassennamen Auto.anzahl++;

Konstruktor public Auto(int ps, String hersteller){ //Lokale Variablen this.ps = ps //damit diese Infos (ps, hersteller) langfristig im Objekt gespeichert werden→ this.hersteller = hersteller lokalen Variablen IN DIE Instanzvariablen schreiben → denn die Instanzvariablen sind ans Objekt gebunden anzahl++; Anzahl inkrementieren } lokale Variablen existieren NUR innerhalb {} vom Anweisungsblock, in dem diese deklariert sind

Objektvariablen

Objektvariablen - sind innerhalb eines Objektes sichtbar. Eine Objektvariable wird wie eine Klassenvariable innerhalb einer Klasse deklariert: In Methoden - dienen zur temporären Speicherung von Daten, während diese Methode ausgeführt wird •

Klassenmethoden

lokale Variablen NUR innerhalb einer Methode bekannt

Taschenrechner.java

Die Methode ist static → Klassenmethode. Benötigen kein Objekt, um aufgerufen zu werden. (In der Main muss kein neues Objekt erstellt werden. Diese Methode kann einfach so aufgerufen werden. Operatoren Typ der Information:



• • •

Datentyp Typ der Information:

Arithmetische O. (Umfassen alles was mit Rechnen zu tun hat) ▪ In- und Dekrement-Operatoren DÜRFEN NICHT auf ein numerisches Literal angewendet werden 5++ //Fehler Zuweisungslogische Vergleichs-

epräsentieren die Art der Information, die gespeichert werden soll. - Datentypen fallen in 2 Kategorien: • Primitive Datentypen (8) (Zahlen, Unicode-Zeichen, Wahrheitswerte). Diese können nur einen Wert speichern • Komplexe Datentypen (Referenztypen, Klassen, Objekte

Exception /Ausnahmen Exception = Superklasse in java aller Fehler in Java ein weicher Programmabsturz → try{ Anwendung}catch (Exception e){ sysout (e)} gewisse Programmabschnitte werden in try-catch-Abschnitten behandelt. // throws = ich drohe zu werfen // throw = ich werfe jetzt

devision by zero Konstruktor --> Exception() sobald ein Fehler passiert, wird ein neues Objekt von der Superklasse Exception erstellt und dieses finden wir in der Referenzvariable e. try { Taschenrechner.dividieren(20,0); } catch (Exception e) { } Exception = Klasse e = Parameter

Array Container mit fester Anzahl von Werten eines einzelnen Datentyps. Datentyp kann nach deklaration NICHT verändert werden. Länge wird bei Deklaration festgelegt. (Parameter) werden mit Argumenten belegt

Array bei Deklaration initialisieren:

Datentyp[] arrayName = {Wert1, Wert2,....}; int [] arr = {65,5,26,...} * For Schleife zum Füllen eines Java Array

Datentyp[] arrayName; arrayName = new Datentyp[Anzahl] //[Array Length] oder Datentyp [] arrayName = new Datentyp[Anzahl]; //Array erstellen

int[] arr; arr = new int[4]; arr[0] = 65; arr[1] = 5; arr[2] = 26; ...

for (int i = 0; i < array.length; i++) { arrayEins[i] = 1; // Jedes Element erhält die Zahl eins. }

….. auf Elemente zugreifen → Index-Positionen angeben ……. Ausgabe:

sysout (arrayName[indexPosition]); sysout(arr[1]);

Ausgabe alle Elemente for(int i = 0, i < arr.length; i++){ sysout (arr[i]);}

String[] myArr = new String[5]; myArr[0] = “First”; myArr[1] = “Second”;

String[] myArr = {“First”, “Second”, “Third”}

for(int i = 0; i < myArr.length; i++){

for(int i : myArr){

Sysout(myArr[i];}

Sysout (i); }

printf(Formatanweisung)

annotation (Bemerkung)

@SuppresWarnings(“unused”)

Kurzschlussauswertung auch bedingte Auswertung, short-circuit evaluation (S-C-E)

Strategie der Auswertung von booleschen Ausdrücken. Im Allgemeinen steht das Ergebnis eines booleschen Ausdrucks ohne die Verwendung von Kurzschlussauswertung erst nach der Auswertung aller Teilausdrücke fest. Kurzschlussauswertung ermöglicht das vorzeitige Abbrechen einer Auswertung eines booleschen Ausdrucks, sobald das Auswertungsergebnis durch einen Teilausdruck eindeutig bestimmt ist.

Unterstreichung in gelb: kommt nicht zur Auswertung Denn wenn A false ist, kann A &&B nicht true sein, deswegen wird B (hier true und gelb unterstrichen) nicht ausgewertet. Bei Bit-Operatinen ist es anders. Dort werden alle ausgewertet, da 0 und 1 vorhanden sind

Bsp. a = 0; b = 10; if (a != 0).... Die Auswertung des booleschen Ausdrucks wird im Fall, dass die Variable A den Wert 0 beinhaltet, nach der Prüfung auf Ungleichheit A != 0 abgebrochen.

Kontrollstrukturen steuern den Programmablauf / Programmfluss if, if-else, switch-case, while, for-each (spezielle for-Schleife), do-while-loop !!! Sequenz Aufeinanderfolgen versch. Anweisungen (in Blöcken dargestellt). Anweisungen werden von oben nach unten (in (Schneidermann) Reihenfolge der Notation) abgearbeitet → sequentieller Aufbau Einfach-Verzweigung (if-else-Anweisung). Bedingung und dann 2 Alternativen

Verzweigung Wiederholung

Schlüsselwörter: For-Schleife



Kopfgesteuerte Schleife - Abweisende Schleife (im Kopf wird auf eine Bedingung überprüft)



Fußgesteuerte Schleife - Bedingung wird im Fuß der Schleife geprüft. Mind. 1 Durchlauf

if (falls)

Zählerschleife

else (ansonsten)

switch (Fallunterscheidung)

case (Fall)

if (zu überprüfende Bedingung){ Anweisungsblock wenn Bedingung stimmt } else { ansonsten, wenn Bedingung nicht stimmt }

dangling else wenn zwei verschachtelten if-Anweisungen nur ein else-Zweig gegenübersteht else bezieht sich auf die letzte if-Anweisung magic number

sollte vermieden werden → symbolische KONSTANTEN / finalisierte als Zahl verwendet wird. Variablen an zentraler Stelle wird die Volljährigkeit im Programm kontrolliert und diese kann an final static int VOLLJAHRIG = 18; einer Stelle verändert werden wenn im Programm an versch. Stellen auch noch die 21

Der ternäre Operator /Bedingungsoperator kann eine if-else-Verzweigung ersetzen und weist meist einer Variablen einen Wert zu, in Abhängigkeit vom Ergebnis einer Bedingungsprüfung. Für kurze Prüfungen

Switch case Mehrfachverzweigung

switch case

?

true

:

(Bedingung) false

status = (alter >= VOLLJAHRIG) ? “volljährig” : “nicht volljährig”;

switch(Ausdruck){Anweisung Anweisungsblöcke werden von oben nach unten ausgeführt. Block 1: Deswegen → break; break; Block 2: break; es können auch mehrere case-Blöcke zusammengefasst werden default: }

While-Schleife - kopfgesteuert while(bedingung){Anweisungen} wird solange durchlaufen, bis die Bedingung wahr ist

Do-While-Schleife - Fußgesteuert do{Anweisungen}while(bedingung) wird mind. 1 x ausgeführt

For-each-Schleife for each Element do this….

vorwiegend für Datenstrukturen für jedes Element, mache das... rechts steht die Struktur (namensListe) links steht das Objekt, welches sich in der Struktur befindet (string) in der Variablen string steckt jedes einzelne Objekt aus der Struktur (...am Anfang aus der Position Null, dann aus Pos. Eins,...)

Schleifen dienen dazu, Anweisungen beliebig oft zu wiederholen kopfgesteuerte / abweisende Schleifen → eine Abbruch-Bedingung wird erst überprüft und anschließen die Schleife ausgeführt

fußgesteuerte /annehmende Schleifen → nach der Ausführung, wird die Abbruchbedingung überprüft

abweisende Schleifen: while, for-Schleife while (Bedingung){ Anweisung} boolean ist wichtig

annehmende Schleifen: do-while

Rekursion Methoden rufen sich selbst auf, bis sie die Abbruchbedingung erreicht. Alternative zu Schleifen ... Rekursion, weil sich die Funktion pizzaessen immer wieder selbst aufruft, bis die Abbruchbedingung erreicht ist.

While-Schleife

OOP Die in der Software abgebildeten Objekte haben drei wichtige Eigenschaften: Jedes Objekt hat eine Identität. Jedes Objekt hat einen Zustand. Jedes Objekt zeigt ein Verhalten.

Objekte werden in der Main-Methode erstellt. Methoden sollen nur von Objekten aufgerufen werden.

Konstruktoren konkrete Baupläne

der einzelnen Java-Klassen. mit einem Konstruktor → Objekte erzeugen (ein java-Objekt wird IMMER durch einen Konstruktor erschaffen. Können Objekt-Variablen beim Erstellen direkt mit Werte befüllen. (gleiche) Konstruktoren müssen sich unterscheiden von den Parametern

Methoden ... werden in Klassen definiert. ... beschreiben, was Objekte einer bestimmten Klasse ausführen/ tun können.

Funktionen können unabhängig von einem Objekt oder einer Klasse existieren. In Java gibt es nur Methoden

Methoden werden auf einem Objekt mit dem Punktoperator

.

aufgerufen: obj meineMethode(); Accesss Modifier Rückgabewert Namen (Parameter) public void zeichneLinie

Pakete Klassen, die dasselbe Thema zusammenfassen, werden zu einem Paket zusammengefasst

Methode für eine Linie static void gezeichneteLinie(){ sysout(“-----------------------------”); }

erzeichnisse, in denen mehrere Klassen zu einem Thema abgelegt werden. ese können im Code eingebunden/importiert werden.

Schlüsselwort import die Klasse Scanner liegt in dem Paket util. Util liegt in dem Paket java

Klassen komplexe Datentypen. Baupläne (beschreibt wie ein Objekt aussehen soll)

ede Klasse hat eine Oberklasse • • •

Variablen bestehen aus Konstruktoren Methoden

önnen mehrere Informationen abspeichern. ibt an, was in einem Objekt gespeichert werden darf (Welche Eigenschaften/Attribute) Beschreibt was sich in einem Objekt befinden kann)

Aus den Datentypen (Klassen) werden mit der Main-Methode Objekte (komplexer Container mit Variablen, die uns die Klasse zur Verfügung stellt) erstellt. Eine Klasse ist eine Schablone mit leeren Werten. Klassen können Beziehungen untereinander haben. Die Programmiersprache Java arbeitet objektorientiert. Um das umzusetzen, gibt es das Konzept der Java Klassen. Dabei programmierst du eine Klasse, um später von ihr Objekte erzeugen zu können. Ein Objekt ist eine Beschreibung von zum Beispiel einem Auto, mit Attributen und einem festen Zustand. Eine Verallgemeinerung aller Auto-Objekte ist dann eine Klasse. Sie enthält alle Attribute, welche ein Auto haben kann, weist diesen Attributen jedoch noch keinen Wert zu. Superklasse (Elternklasse) → Vererbung um redundanten Code zu Attribute und Methoden weitergeben vermeiden

Subklasse (Kindklasse) →

Abstrakte Klassen

eschreiben erforderliche Entitäten . B. Auto) auf abstrakte Weise mit einer Blaupause für “normale” Klassen

(Eltern- oder Basisklasse) Zusammenfassung allg. Attribute und Methoden untersch. aber ähnlicher Objekte alle Klassen erben von der Superklasse (Kindsklasse) erben von der Superklasse sämtliche Attribute und Methoden um eigene Attribute und Methoden erweitert (Spezialisierung der Subklasse) •

es können von einer abstrakten Klasse keine Instanzen erstellt werden (Denn wir brauchen keine Exemplare einer Blaupause).

Klasse ist dann abstrakt, wenn mind. 1 ihrer önnen sowohl abstrakte als auch nichtMethoden abstrakt ist. abstrakte Methoden zugleich enthalten.



Abstrakte Klassen erstellen kein Standardverhalten für z.B. abstrakte Autos. Sie geben nur an, was jedes Auto können muss.



NUR Methodensignatur

abstrakte Klassen können KEINE Instanzen erstellen. Keine Objektbildung Werden für die Vererbung der Attribute und Methoden genutzt. (siehe Superklassen)

bstrakte Klassen sagen WAS getan werden soll (abstrakte Methoden) und die Subklassen sagen WIE etwas das getan werden soll.

edeSub- Klasse einer abstrakten Superklasse muss alle Methoden übernehmen Interface • bestehen nur aus den • abstrakten Methoden (nur • Methodenköpfe)

Schlüsselwort: interface Inhalte sind immer public Methoden sind immer abstrakt, d .h. es können nur Methodensignaturen (ohne Meth...


Similar Free PDFs