Datentypen Kontrollbefehle

Werbung
Twyman
Informatik
Datentypen
Groß, Kleinschreibung ist genau zu achten! In Java existieren z.B. die Datentypen „double“ und
„Double“, die sind aber verschieden.
Datentype
Beispiel Definition und Zuweisung
int
double
String
char
boolean
int iZaehler=23;
double dKommaZahl=2.3;
String sEinText="Hallo Welt";
char cEinBuchstabe='c';
boolean meinBool = (3!=4);
Beschreibung
Eine Ganzzahl.
Ein Kommazahl
Ein Textstring
Ein einzige Buchstabe
Ein Ja/ Nein Wert.
Bemerkung: Operatoren
(A && B) – A und B
(A || B) – A oder B
(A == B)- A ist gleich B
(A != B)- A ist ungleich B,
bzw. A ist nicht gleich B
!A – nicht A, bzw. das Gegenteil von A
Dazu können Objekten von jede Klasse erstellt werden, z.B.
Integer
Double
Character
Boolean
Integer iZaehlerObj = new Integer(23);
Double dKommaZahlObj= new Double(2.3);
Character cEinBuchstabeObj = new
Character('a');
Boolean meinBoolObj = new
Boolean("true");
Objektversion von int
Objektversion von double
Objektversion von char
Objektversion von boolean
Kontrollbefehle
Falls-Befehl
java
if (Bedingung)
{
// Anweisungsblock 1
}
if (Bedingung)
{
// Anweisungsblock 1
}
else
{
// Anweisungsblock 2
}
Java Referenz.docx
Struktogramm,
bzw. Nassi Schneiderman Diagramm
Twyman
Informatik
Switch-Befehl
java
Struktogramm,
bzw. Nassi Schneiderman Diagramm
switch(einInt)
{
case 2: case 3:
case 5: case 7:
System.out.println(“Prim“);
break;
case 1: case 4:
case 6: case 8:
case 9:
System.out.println(“nicht Prim“);
break;
default:
System.out.println(“???”);
break;
}
switch(einInt)
{
case 1:
System.out.println(“1“);
case 2:
System.out.println(“2“);
default:
System.out.println(“3”);
}
Schleifen
java
while (Bedingung)
{
// Anweisung 1
}
for (int i=1; i<11; i=i+1)
{
// Anweisung 1
}
do {
// Anweisung 1
} while (Bedingung);
Java Referenz.docx
Struktogramm,
bzw. Nassi Schneiderman Diagramm
Twyman
Informatik
Reihungen
java
KlassenTyp[] arrayName =
new KlassenTyp[Anzahl];
Beschreibung
arrayName.length
Eine Array mit „Anzahl“ von Elemente wird
erstellt.
Jede Objekten ist von der Typ
„KlassenTyp“.
Diese Array heißt „arrayName“.
Diese Variable ist der Länge des Arrays.
KlassenTyp arrayName[] =
new KlassenTyp[Anzahl];
Alternativ Schreibweise zu die obige
Befehl.
Hummer[] array = new Hummer[2];
Zwei (2) Hummer sind erstellt.
int[] array = new int[2];
Hier wird eine Array von zwei Ganzzahlen
erstellt.
Das erste Element wird auf 10 gesetzt, das
zweite Element auf 2 gesetzt.
Jetzt sind die beiden Zahlen 10 und 2
ausgedrückt.
array[0] = 10;
array[1] = array.length;
System.out.println(array[0]);
System.out.println(array[1]);
int[] array2 = array;
Ein neue Array wird erstellt, aber keine
eigenen Speicher zugewiesen.
Stattdessen weist diese Name auf die
vorher erstellten Speicher.
„array2“ ist jetzt eine Synonym für
„array“.
array2[0] = 110;
array2[1] = array2.length*10;
Element 0 und 1 wird auf 110 und 20
gesetzt.
System.out.println(array2[0]);
System.out.println(array2[1]);
Die beiden Elemente sind ausgedrückt, 110
und 20 sind gedrückt.
System.out.println(array[0]);
System.out.println(array[1]);
Jetzt schauen wir die Speicher von array[]
an. Die Werte hier sind jetzt auch 110
und 20, obwohl wir array[0] und array[1]
nicht geändert haben.
Multidimensional Reihungen
java
Beschreibung
KlassenTyp[][] arrayName =
new KlassenTyp[Anzahl][Anzahl2];
int[][] array = new int[2][8];
Ein Array von Arrays, der „arrayName“
heißt.
Zwei Zeilen mit acht Spalten von
Ganzzahl.
array[0][0] = 10;
array[1][7] = 20;
Erste Zeile, erste Spalte ist jetzt 10.
Zweite Zeile, achte Spalte ist jetzt 20.
Java Referenz.docx
Twyman
Informatik
Java Einführung
Klassen und Objekte
Ein Klasse beschreibt ein Gatter von Objekten. Eine Klasse „hat“ einige „Eigenschaften“ und „kann“ einige „Methoden“.
Bemerkung: die Fett gedrückte Teile sind in der UML-Diagramm vorhanden.
java
public class BeispielKlasse {
Beschreibung und UML
Eine Klasse wird definiert
// Attribute
private String einEigenschaft;
Diese Klasse hat nur eine
Eigenschaft, ein String.
// Konstruktor
public BeispielKlasse() {
this.einEigenschaft = "";
}
Die einzige
Konstruktionsmethode für
Objekte dieser Typ erstellt eine Objekt mit einer leeren Eigenschaft.
// Methoden
public String getEinEigenschaft() {
return einEigenschaft;
}
public void setEinEigenschaft(String pEigenschaft) {
this.einEigenschaft = pEigenschaft;
}
} // ende der Klassedefinition
BeispielKlasse einObjekt = new BeispielKlasse();
Der Variable
Der Konstruktor
Name für
Methode zu nutzen
das Objekt
BeispielKlasse einObjekt = new BeispielKlasse();
BeispielKlasse einObjekt2 = einObjekt;
Diese Klasse hat zwei Methoden,
eine um das Eigenschaft zu lesen, diese gibt den Wert von seine
Eigenschaft zurück, und
eine um diese Eigenschaft zu setzen.
Diese Methode nimmt eine ‚Parameter‘, pEigenschaft und kopiert dessen Wert
in seine Eigenschaft hinein.
Ein Objekt der Klasse wird mit einer einfachen Konstruktoren
erstellt.
Die Klasse
des Objektes
Java Referenz.docx
Genau wie für die Arrays haben wir hier eine ‚Alias‘, bzw.
Verweis, auf das erste Objekt erstellt.
Egal welche wir ändern, sei es ‚Objekt‘ oder ‚Objekt2‘, ändern wir
damit beide Variablen und die selbe Speicher im Rechner.
11.07.14
Twyman
Informatik
Java Einführung
Vererbung
Eine Klasse erweitert eine andere Klasse durch Vererbung. Die neue Klasse kann, und hat, alles von die vorherige plus alles was es dazu kann, bzw. hat.
Bemerkung: die Fett gedrückte Teile sind in dem UML-Diagramm dargestellt.
java
public class ErweiterteKlasse extends BeispielKlasse {
// Attribute
private int nocheinEigenschaft;
Beschreibung und UML
Eine Klasse erbt alles
was die vorherige ist und
kann.
Diese Klasse selbst hat
nur eine Eigenschaft, ein
Ganzzahl.
// Konstruktor
public BeispielKlasse() {
super()
this.nocheinEigenschaft = 0;
}
Der Konstruktor erstellt
‚BeispielKlasse‘ mit der
‚super()‘-Befehl erst.
Dann ist die eigene
Eigenschaft auf 0
gesetzt.
// Methoden
public int getnochEinEigenschaft() {
return this.nocheinEigenschaft;
}
Diese Klasse hat drei Methoden,
eine um das Eigenschaft zu lesen, diese gibt den Wert von seine
Eigenschaft zurück, und
public void setnocheinEigenschaft(int pEigenschaft) {
this.nocheinEigenschaft = pEigenschaft;
}
eine um diese Eigenschaft zu setzen.
Diese Methode nimmt eine ‚Parameter‘, pEigenschaft und kopiert dessen Wert
in seine Eigenschaft hinein.
public void setEigenschaften(String pEigenschaft1
, int pEigenschaft2) {
this.einEigenschaft = pEigenschaft1;
this.nocheinEigenschaft = pEigenschaft2;
}
} // ende der Klassedefinition
ErweiterteKlasse mObj = new ErweiterteKlasse();
mObj.setEinEigenschaft(“Alles in Ordnung“);
mObj.setEigenschaften(“Hi“,3);
Java Referenz.docx
Als letztes kann man alle Eigenschaften in eine Methode einstellen.
Objekten von Typ „ErweiterteKlasse“ haben alle Eigenschaften und
Methoden von BeispielKlasse auch.
Das heißt diese Befehle sind völlig in Ordnung.
11.07.14
Twyman
Informatik
Java Einführung
Aggregation
Aggregationen beschrieben eine besondere Beziehung zwischen Klassen. Hier sind zwei ähnliche Definitionen:
1. Wenn eine Klasse aus anderen Klassen zusammengesetzt ist, dann ist der Klasse eine Aggregate von anderen Klassen. Die Lebensdauer der Teile kann
dabei länger sein als die Lebensdauer der Aggregate1.
2. Aggregationen drücken eine Beziehung aus, bei der Objekte einer Klasse Objekte einer anderen Klasse enthalten2.
Hier sind Beispiele, ohne das Java Quellcode, von Aggregationen.
Der ‚Mannschaft‘ Klasse ist eine Aggregation von der ‚Mensch‘-Klasse.
Nicht alle Methoden und Eigenschaften sind dargestellt.
Der ‚Blatt‘ Klasse ist eine Aggregation von der ‚Spielkarten‘-Klasse.
1
http://openbook.galileocomputing.de/oo/oo_04_strukturvonooprogrammen_002.htm - abgerufen Feb 14
2 Niedersachsen Informatik Abitur 2013-gA-Aufgabe-1-Haupttermine, Erwartungshorizont.
Java Referenz.docx
11.07.14
Twyman
Informatik
Assoziation
Eine Assoziation ist eine einfache Beziehung zwischen Klassen, die werden mit einer Verbindungslinie
dargestellt. Einfache Assoziationen können als Attributen implementiert werden, falls zusätzliche
Information nötig ist, dann kann diese Information über die Assoziation in eine „Assoziationsklasse“
gespeichert werden.
Beispiele von Assoziationen und Assoziationsklassen sind hier in UML dargestellt.
Szenario 1: Ein Schüler besucht eine Schule.
(zweimal auf verschiedene Weise dargestellt)
Szenario 2: Die Verwandtschaft,
z.B. Vater/ Sohn zwischen zwei
Menschen soll modelliert
werden.
Szenario 3: Einer Ehe soll in UML modelliert werden.
(zweimal auf verschiedene Weise dargestellt)
Java Referenz.docx
Herunterladen