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