Softwareentwicklung in Java 6

Just an initial demo map, so that you don't start with an empty map list ...

Get Started. It's Free
or sign up with your email address
Rocket clouds
Softwareentwicklung in Java 6 by Mind Map: Softwareentwicklung in Java 6

1. MindMap erstellt in der LV Informatik 2, Übungsgruppe 4, SS 2010

1.1. Personen

1.1.1. Assistent: Martin Krammer

1.1.1.1. [email protected]

1.1.1.2. Institut für Bauinformatik

1.1.2. Studienassistent: Michael Wittmayer,

1.1.2.1. [email protected]

1.2. Termine

1.2.1. genau - siehe TUGonline Gruppe 4

1.2.2. prinzipiell von 0900 (c.t.) bis 1045

2. Files aus der Übung

2.1. JavaFiles, Gruppe4

3. Javaprogramme sind hierarchisch strukturiert

3.1. ganz oben das "Project" (Java-Projekt)

3.1.1. quasi das Programm

3.1.2. dann "Packages"

3.1.2.1. sind Ordnerstruktur auf der Festplatte

3.1.2.2. darin "Classes" (Java-Klassen)

3.1.2.2.1. in .java Textdateien auf der Festplatte - der SourceCode (Quelltext)

3.1.2.2.2. diese beinhalten

3.1.2.2.3. Klassen sind die programmatische Umsetzung/Abstraktion der Problemstellung/der Umwelt.

4. Objektorientierung

4.1. Objekte werden zufolge einer Klassendefinition erstellt, "nach dem Schema, das mit der Klasse definiert wurde"

4.1.1. jedes Objekt hat alles (Eigenschaften, Verhalten) was die Klasse vorgibt.

4.1.1.1. static-Eigenschaften von Klassen

4.1.1.1.1. static-Methoden

4.1.1.1.2. static-Variablen

4.1.2. Analogie zum Bauplan... Mit einem HausPlan (=Haus-Klasse) könnten durchaus mehrere gleiche Häuser (Haus-Objekte) gebaut werden.

4.1.3. Objekterstellung/ Instantiierung mit new-Operator

4.1.3.1. z.B. in Übungsblock 1: new Bruch(1,2)

4.1.3.1.1. retourniert ein Bruch-Objekt mit Zähler 1 und Nenner 2.

4.1.3.1.2. Bruch meinBruch = new Bruch(1,2)

4.2. Java ist eine Programmiersprache, die dieses Objektorientierungskonzept unterstützt.

4.2.1. nur weil ein Programm in Java geschrieben ist, ist dieses noch lange nicht schön objektorientiert...

4.3. basiert auf dem Zusammenspiel verschiedener Objekte

4.3.1. Zusammenspiel wird durch public-Methoden/Variablen möglich.

4.3.2. = Nutzung fremder Eigenschaften/Ressourcen

4.3.3. = Methodenaufrufe auf fremden Objekten

5. Unified Modeling Language - UML

5.1. zur Unterstützung der Findung des Programmkonzepts (Design)

5.1.1. schnell; visuell

5.1.2. aus den UML-Diagrammen lässt sich auch automatisch der Code(rumpf) generieren.

5.1.2.1. dazu richtige UML-Tools notwendig

5.1.2.1.1. Omondo EclipseUML

5.1.2.1.2. Soyatec eUML2

5.1.2.2. damit erspart man sich das Abtippen der notwendigen Klassen/Methoden/Variablen

5.2. ISO-standardisiert

5.3. nicht nur für Software - auch zur Modellierung sonstiger Probleme

5.4. verschiedene Diagramme

5.4.1. Klassendiagramme (Struktur)

5.4.2. Aktivitätsdiagramme

5.4.3. Sequenzdiagramme usw.

5.4.4. vermittelt schnell, was das Programm können soll und wie es aufgebaut ist bzw. funktioniert.

6. Hilfestellungen

6.1. www.google.com

6.1.1. weiß alles

6.2. unzählige Bücher zu Java

6.2.1. z.B. sehr witzig und gedruckt: "Java von Kopf bis Fuß"

6.2.2. Online-Buch: "Java ist auch eine Insel"

6.3. Info2 Vorlesung/Übung

7. Datentypen

7.1. Referenz-/Objekttypen

7.1.1. Referenztypennamen beginnen mit einem Großbuchstaben und dann CamelCase

7.1.2. alles was mit new-Operator instantiiert wird

7.1.2.1. z.B. Bruch-Objekte

7.1.2.2. Constructor

7.1.2.2.1. ein Konstruktor steuert die Objekterzeugung bzw. leitet sie ein.

7.1.2.2.2. heißt gleich wie die Klasse und hat eventuell Parameter z.B. Bruch(int zaehler, int nenner) oder Bruch()

7.1.2.2.3. es kann mehrere Konstruktoren geben, aber die Parameterliste muss unterschiedlich sein.

7.1.2.2.4. quasi eine spezielle Methode, die man nur mit vorangestellten new-Operator aufrufen kann. Retourniert ein neues Objekt dieses Typs

7.1.3. sind jene Klassen die man selber schreibt. Klassen definieren einen neuen (Referenz-)Typ

7.1.4. Spezialfall BOXING

7.1.4.1. um elementare Typen mit Funktionalität zu erweitern gibt es Wrapper-Klassen, die diese in Objekte "einpacken". Vorteil: man hat plötzlich Zusatzfunktionen (Methoden) für die Typen zur Verfügung (z.B. Integer.parseInt(...)).

7.1.4.2. dieses Boxing ermöglicht die Verwendung von elementaren Datentypen in generischen Datentypen z.B. ArrayList

7.1.4.3. Java macht dieses Ein- und Auspacken zur rechten Zeit automatisch... AUTOBOXING

7.1.4.3.1. eingebaute Wrapperklassen für die elementaren Typen

7.1.5. Deklaration einer Variablen mit Referenztyp

7.1.5.1. z.B. Bruch myBruch;

7.2. elementare/primitive Datentypen

7.2.1. Wahrheitswerte

7.2.1.1. boolean

7.2.1.1.1. true oder false

7.2.2. Zeichen

7.2.2.1. char

7.2.2.1.1. 16bit

7.2.2.1.2. 0 bis 2^(16)

7.2.3. vorzeichenbehaftet

7.2.3.1. Ganzzahlen

7.2.3.1.1. byte

7.2.3.1.2. short

7.2.3.1.3. int

7.2.3.1.4. long

7.2.3.2. Kommazahlen

7.2.3.2.1. float

7.2.3.2.2. double

7.2.4. String

7.2.4.1. ein Spezialfall, aber üblicherweise gleich zu verwenden ist, wie eine Variable mit elementarem Datentyp

7.2.5. Deklaration einer Variablen mit elementarem Typ

7.2.5.1. int myInteger;

7.2.5.2. short myShort;

7.2.5.3. float myFloat;

7.2.5.4. double myDouble;

7.2.5.5. char myCharacter;

8. Java 6 API

8.1. API - Application Programming Interface / Programmierschnittstelle

8.2. API nutzen beim Programmieren!

8.2.1. es ist nämlich unwahrscheinlich, dass man selbst effizienter programmiert, als die "Java-Hersteller"

8.3. Java enthält schon sehr viele nützliche Klassen und Methoden, die in unterschiedlichen Packages liegen

8.3.1. z.B. java.lang.Math-Klasse

8.3.1.1. Mathematik-Funktionen

8.3.1.2. enthält nur static-Methoden

8.3.1.2.1. daher keine Objekterzeugung mit new-Operator nötig/möglich

8.3.1.3. somit im Package java.lang

8.3.2. java.util.Scanner-Klasse

8.3.2.1. zum Einlesen von Text

8.3.2.1.1. von Tastatur (System.in)

8.3.2.1.2. von einer Textdatei

8.3.2.2. somit im Package java.util

8.4. www: Java 6 API zum Nachschauen

8.4.1. diese Sachen zeigt auch Eclipse an, wenn ihr mit der Maus über eine dieser API-Klassen/Methoden drüberfahrt... warum? - Stichwort JavaDOC

9. Eclipse

9.1. IDE - Integrated Development Environment

9.2. praktisches Programm, das einem die Programmentwicklung sehr erleichtert

9.3. Plugins für eine Vielzahl von Anwendungen

9.3.1. z.B. SVN Plugin - SubClipse

9.3.1.1. Codeverwaltung (Versionen, Revision...) über "Subversion (SVN)"

9.3.1.1.1. SVN von der TU Graz gut unterstützt

9.3.1.1.2. lohnt sich nicht nur zur Programmierprojektverwaltung in Teams, sondern auch für andere Projekte