Java - Proteus

Werbung
CS1005
Objektorientierte Programmierung
Bachelor of Science (Informatik)
Allgemeines
Java-Programme erstellen und ausführen
Seite 1
© Th Letschert
Allgemeines
Dozenten
Dr. Th. Letschert
Dr. Andreas Dominik
Tutoren
Lernziel / Inhalt
Einführung in die objektorientierte Programmierung
Grundbegriffe der Softwaretechnik
Literatur
Folien / Skript / Anleitungen [ https://estudy.fh-giessen-friedberg.de ]
Jedes beliebige neuere Java Buch
Sun Dokumentation
[ http://java.sun.com/javase/reference ]
Software
Java SE 6
[ http://java.sun.com/javase/downloads ]
Entwicklungsumgebung Eclipse 3.5 [ http://eclipse.org ]
Seite 2
Th Letschert
Allgemeines
Organisation
Vorlesung in 2 Zügen
Übung / Praktikum mit
testierten Hausaufgaben
einer Projektaufgabe
Abgabe von Lösungen ist Voraussetzung zur Klausurzulassung
Informationen / Forum: estudy
estudy-Plattform: https://estudy.fh-giessen-friedberg.de
Kurs: CS1005, Objektorientierte Programmierung (OOP)
enthält
alle Unterlagen, Dokumente, Hinweise, etc. zum Kurs
ein Form für die Kursteilnehmer
(bitte nutzen für Fragen und Antworten ! )
Seite 3
Th Letschert
Allgemeines
Entwicklungsplattform
beliebiges Betriebssystem
Java Version 6
Texteditor, Shell
Eclipse 3.5
Rechner
Rechner stehen in den in den Übungsräumen zur Verfügung
eigenes Notebook bevorzugt
Seite 4
Th Letschert
Programmausführung: Compiler, Interpretierer
Programm
Programm
Festlegung von Aktionen
in einer festen Notation
(Programmiersprache)
Interpretierer
Daten
Interpretierer
führt das Programm aus
Interpretierer als Hardware:
Computer (Maschine)
Compiler
Ergebnis
Compiler
übersetzt Programme von einer
Sprache in die andere
Quellsprache: für Menschen
verstehbar
Zielsprache: für Maschine
verstehbar
Seite 5
MaschinenProgramm
Maschine
Daten
Th Letschert
Programmausführung: Virtuelle Maschine
Programm
(Sprache A)
Compiler
Maschinenprogramm
wird von Maschine ausgeführt
Virtuelle Maschine
Compiler
Maschine
Software
führt übersetzte Programm aus
Maschinenprogramm
wird von Maschine ausgeführt
virtuelle Maschine
~ Interpretierer für MaschinenProgramme
~ simuliert Maschine in SW
Programm
(Sprache B)
Daten
Interpretierer
Maschine
virtuelle Maschine
Ergebnis
Seite 6
Th Letschert
Was ist Java
Programmiersprache
public class Hallo {
public static void main(String[] args) {
System.out.println(''Hallo'');
}
Hallo.java
}
Syntax: Form
Semantik: Inhalt
Klassenbibliothek
vorgefertigte Klassen
(Programmkomponenten)
Compiler
javac Hallo.java
Compiler
Quellcode (Java)
Zielcode: Bytecode
Virtuelle Maschine
Software (Maschinenprogramm)
simuliert Maschine die Bytecode
ausführen kann. (Beliebige
Plattform)
�
1 ! Hallo java/lang/Object
<init> ()V Code
LineNumberTable
LocalVariableTable this LHallo; main
([Ljava/lang/String;)V
java/lang/System out Ljava/io/Pr
.............
virtuelle
Maschine
Hallo.class
java Hallo
Hallo
Seite 7
Th Letschert
Java: Compiler, virtuelle Maschine
Compiler
übersetzt Java-Code in Quelltext-Datei (.java-Datei)
in Bytecode (Code für virtuelle Maschine)
javac-Programm
Java-code
Virtuelle Maschine, JVM (Java Virtual Maschine)
gedachte Maschine
Compiler
führt Bytecode (in .class-Datei)) aus
virtuelle Maschine
realisiert durch
Bytecode
reale Maschine (physischer Prozessor)
Bytecode-Interpretierer / java-Programm
java (JVM)
auch „Virtuelle Maschine“ / JVM genannt
Betriebssystem
Warum virtuelle Maschine
Keine Anpassung des Compilers notwendig
CPU / HW
Übersetzte Programme überall lauffähig
reale Maschine
Nachteil: Ausführung langsamer
Klassisch: Compiler / Bibliotheken an Plattform anpassen, Quellcode
transferieren
Java: Ablaufumgebung (JVM) an Plattform anpassen, Bytecode transferieren
Seite 8
Th Letschert
Java: Wichtige Versionen
project green / Sprache Oak /
~ 1991
Konzept: Programmierung von „eingebetteten“ Geräten
(Toaster mit Internetanschluss und Web-Server)
Beweglicher Code, Virtuelle Maschine
Java 1.02 (erste offizielle Version)
~ 1995
Klassenbibliothek : 250 Klassen
Einsatz : Fun / Applets
Java 1.1
~ 1997
Klassenbibliothek : 500 Klassen
Einsatz : Unterricht / GUI / erste ernsthafte Anwendungen
Java 2 ( ~ Version 1.2 – Version 1.4 )
~ ab 1998
Klassenbibliothek : 2300 Klassen
Einsatz : Server- (Geschäfts-) Anwendungen (!)
Java 5 ( ~ Version 1.5)
~ ab 2005
Wesentliche Erweiterung/Modifikation (ca. 3500 Klassen)
Java 6
~ ab 2007
Leichte Weiterentwicklung
Seite 9
Th Letschert
Java: Installation
JRE Java SE (= Standard Edition) Runtime Environment
Enthält Dinge die zur Ausführung von (bereits übersetzen) JavaProgrammen benötigt werden:
virtuelle Maschine (JVM, Programm java)
Bibliotheken
JDK Java SE Development Kit
Enthält
JRE
Java-Compiler (Programm javac)
Weitere Entwicklerwerkzeuge
Für Java-Entwicklungen muss das JDK installiert werden
API-Dokumentation
Enthält Beschreibung der Klassen der Bibliothek
Wichtige Dokumentation bei der Programmentwicklung
http://java.sun.com/javase/6/docs/api/
Download als java-d.doc.zip
Seite 10
Th Letschert
Java: Programme und ihre Komponenten
Beispiel: ein einfaches Programm
bestehend aus
zwei Methoden (main und einem Konstruktor MyClass)
in einer Klasse (MyClass)
in einem Paket (myPackage)
Entspricht den peniblen
Codier-Richtlinien des
FB MNI.
package myPackage;
public final class MyClass {
private MyClass() {}
/**
* @param args wird ignoriert.
*/
public static void main(final String[] args) {
System.out.println("Hallo Java");
}
}
Programm mit 2 Klassen
in einem Paket
Seite 11
Th Letschert
Java: Programme und ihre Komponenten
Methode
Hauptklasse
package hallo;
public class Hallo {
public static void main(String[] args) {
sayHello();
Haupt-Methode
Dog.sayHello();
}
public static void sayHello() { Methode
System.out.println(„Hallo“);
}
Klasse mit 2 Methoden
}
Bestandteil einer Klasse
Folge von Anweisungen
Klasse
Komponente von JavaProgrammen
Sammlung von Methoden /
Variablen
Paket
Sammlung von Klassen
Programm
Haupt-Klasse
mit main-Methode
plus beliebig viele
(im einfachsten Fall keine)
weitere Klassen in beliebig vielen
Paketen
Seite 12
Klasse
package hallo;
class Dog {
public static void sayHello() { Methode
System.out.println(„Hallo“);
}
Klasse mit 1 Methode
}
Programm mit 2 Klassen
in einem Paket
Th Letschert
Java: Programme und ihre Komponenten
Programm
Ein Java-Programm besteht aus
mindestens einem Paket (package)
kann das namenlose default-Paket sein
mindestens einer Klasse in diesem Paket
mindestens einer Methode in dieser Klasse
eine der Methoden einer Klasse muss die main-Methode sein
ein Methode enthält üblicherweise mindestens eine Anweisung
package myPackage;
public final class MyClass {
public static void main(
final String[] args) {
System.out.println("Hallo");
}
}
Seite 13
ein Paket:
myPackage
eine Klasse im Paket:
MyClass
eine Methode in der Klasse:
main
eine Anweisung: System.out.println
Th Letschert
Java: Programme, Dateien, Verzeichnisse
Datei
Java-Code in Quelltext-Datei
Dateiname: KlassenName.java
Datei kann mehrere Klassen enthalten, davon
darf nur eine public sein
Verzeichnis
enthält die Bestandteile eines Pakets:
Klassen des Pakets: Java- / ClassDateien
Sub-Pakete
Paket-Zugehörigkeit
einer Klasse durch Package-Deklaration:
package <Paket-Name>;
in der Datei
eines Pakets (Relation Paket/Sub-Paket):
Hierarchische Paketnamen:
<Paket>.<Sub-Paket>.<Sub-Sub-Paket>
Programm
keine direkte Repräsentation
Paket
Klasse1
Sub-Paket
Klasse2
logische Struktur
Verzeichnis ~ Paket
Klasse1.java
Java-Datei
Klasse1.class
Class-Datei
Unter-Verz. ~ Sub-Paket
Klasse2.java
Java-Datei
Klasse2.class
Class-Datei
Verzeichnis-Struktur
Seite 14
Th Letschert
Java: Programm erstellen, übersetzen und ausführen
Programm erstellen
Verzeichnis erstellen: myPackage
Datei erstellen (beliebiger Text-Editor): MyClass und in diesem Verzeichnis in
der Datei MyClass.java speichern
Programm übersetzen
Kommando z.B.: javac myPackage/MyClass.java
erzeugt die Datei myPackage/myClass.class
Programm ausführen
Kommando z.B.: java myPackage.MyClass
Editor
package myPackage;
public final class MyClass {
public static void main(final String[] args) {
System.out.println("Hallo Java");
}
}
Compiler
(javac)
JVM
(java)
Hallo Java
Seite 15
Th Letschert
Java: Programm erstellen, übersetzen und ausführen
Pfad und Klassenpfad
Pfad, engl. Path
ein Ausdruck der dem System hilft Programme zu finden
C:\Programme\Java\jdk1.6.0_01\bin
könnte der Pfad zu den Programmen javac und java sein.
Klassenpfad, engl. Classpath
ein Ausdruck der java (der JVM) hilft die Klassendateien zu finden
home
Klassenpfad
als Kommando- (Programm-) Argument:
thomas
java -cp /pfad/zum/Verzeichnis myPackage.MyClass
z.B.:
java -cp /home/thomas/classes myPackage.MyClass
als Umgebungsvariable CLASSPATH
z.B.: set CLASSPATH=C:\home\thomas\classes
Klassenpfad
classes
myPackage
MyClass.
class
java myPackage.MyClass
default: aktuelles Verzeichnis
der Klassenpfad endet immer vor den Paket-Verzeichnissen
Seite 16
Th Letschert
Java: Programm erstellen, übersetzen und ausführen
http://java.sun.com/docs/books/tutorial/deployment/jar/
Jar-Archiv
Sammlung von Java-Dateien (Class-Dateien und eventuell Quell—Dateien)
(zip-codierte Archiv-Datei)
Verwendung: Transport und Installation von java-Code
~ ausführbare Datei oder Bibliothek
Erzeugung mit Kommando (Programm) jar
Beispiel:
jar -cvf myJarArchive.jar myPackage
erzeugt ein Archiv des Verzeichnisses mypackage
Nutzung
als „Klassen-Bibliothek“
Beispiel:
jar -cvf myJarArchive.jar myPackage
java -cp myJarArchive.jar myPackage.MyClass
 als „ausführbare Datei“
Beispiel:
jar -cvfe myJarArchive.jar myPackage.MyClass myPackage
java -jar myJarArchive.jar
Manifestdatei:
enthält Infos zum Archiv
z.B.: Angabe Haupt-Klasse
Seite 17
Th Letschert
Java: Programm erstellen, übersetzen und ausführen
Getrennte Verzeichnisse für Quell- und Binärdateien HalloWeltProject
javac -d <Zielverzeichnis> <Quelldatei>
z.B.:
javac -d bin src/hallo/HalloWelt.java
+ src
| + hallo
|
+ HalloWelt.java
+ bin
+ hallo
Verzeichnis
eventuell mehrere Verzeichnisse + HalloWelt.class
Archiv
Klasse
Jar-Datei erzeugen:
cd bin
jar -cvfe HalloWelt.jar hallo.HalloWelt hallo
Jar-Datei aus einem anderen als dem aktuellen Verzeichnis bin heraus erstellen
jar -cvfe HalloWelt.jar hallo.HalloWelt -C bin hallo
Jar-Datei ausführen:
java -jar HalloWelt.jar
Gibt Verzeichnis des
nachfolgenden KommandoArguments an
Mainfest-Datei in HalloWelt.jar :
Manifest-Version: 1.0
Created-By: 1.6.0_0 (Sun Microsystems Inc.)
Main-Class: hallo.HalloWelt
Seite 18
Th Letschert
Java: Programm erstellen, übersetzen und ausführen
Ausführbare Jar-Datei mit Eclipse erstellen (ohne Quelldateien)
Rechts-Klick auf auf das zu exportierende Paket:
→ Export → Runnable JAR file
auszuführende Klasse an geben (Launch configuratution)
Zielverzeichnis und Datei angeben
→ Finish
Export
Seite 19
Th Letschert
Java: Programm erstellen, übersetzen und ausführen
Ausführbare Jar-Datei mit Eclipse erstellen (mit Quelldateien)
Rechts-Klick auf auf das zu
exportierende Paket:
→ Export → JAR file
Class-Files und Sources
auswählen
Zieldatei angeben
2 x Weiter
→ next
→ next
Seite 20
Th Letschert
Java: Programm erstellen, übersetzen und ausführen
Ausführbare Jar-Datei mit Eclipse erstellen (mit Quelldateien)
Manifest-Datei erzeugen lassen
Main-Klasse auswählen
OK
Finish
Seite 21
Th Letschert
Herunterladen