Folien 01

Werbung
Java für Anfänger
Teil 1: Intro
Programmierkurs
12 -16 10 2009
12.-16.10.2009
Manfred Jackel
1
1. Handwerkszeug
Notwendige Software
„
Java Runtime Environment
… JRE
6 von
http://java.sun.com/javase/downloads/index.js
p j
j
j
p ca. 14 MB
„
„
Nur JRE,, nicht SE oder EE ((schadet aber nicht))
Eclipse Entwicklungsumgebung
… Eclipse
IDE for Java Developers ca
ca. 78 MB
… www.eclipse.org
„
In dieser Reihenfolge installieren
Download JRE
Download Eclipse
Eclipse starten …
„
File
… New
„
Java Project
Projektdialog ausfüllen
„
„
„
Frei wählbaren
P j kt
Projektnamen
eingeben, z.B.
„WelcomeProject“
W l
P j t“
Sonst die
Vorgabewerte
belassen
Finish drücken
Neue Klasse einfügen
„
„
Projekt markieren, in
d
dem
di
die Kl
Klasse
erzeugt werden soll
File
… New
„
Class
Klassen-Dialog ausfüllen
„
„
„
„
„
Einen Klassennamen
i d
in
das Feld
F ld „Name“
N
“
eingeben: Welcome
Konvention:
Klassenname beginnt
g
mit Großbuchstabe
main-Methode
main
Methode für
ausführbare Klassen
Sonst Vorgaben
belassen
public static void main(String[] args)
„
Einsprung ins Programm
Kontextsensitive Hilfe
Die Klasse System
„
Die Klasse System beinhaltet mehrere
nützliche Felder und Methoden
Methoden.
Strings=Zeichenketten
„
“Welcome to Java“ ist ein Stringliteral
2 ist Zahlliteral
Zahlliteral, zwei ist Zahlwort
Zahlwort,
“zwei“ ist Stringliteral
g
„
System.out.print (22);
…
„
System.out.print( “zweiundzwanzig“);
…
„
Ausgabe: zweiundzwanzig
System.out.print( 2+“und“+20);
…
„
Ausgabe:
g
zweiundzwanzig
g
System.out.print( “zwei“+“und“+“zwanzig“);
…
„
Ausgabe: 22
Ausgabe: 2und20
System.out.print(20+2);
…
Ausgabe: 22
Was Eclipse für uns gemacht hat:
„
Im workspace-Verzeichnis:
…
Ein Unterverzeichnis „WelcomeProject“
„WelcomeProject
„
Im Unterverzeichnis WelcomeProject
…
…
„
Ein Unterverzeichnis „src“
j
mit Quellcode
ƒ Darin die Datei „„Welcome.java“
Ein Unterverzeicnis „bin“
ƒ Darin die Datei „Welcome.class“ mit Bytecode
Ohne Eclipse:
…
Übersetzen mit Befehl: javac Welcome.java
… Ausführen mit Befehl: java Welcome.class
„
JJava-Dateien
D t i werden
d íín B
Bytecode
t
d üb
übersetzt.
t t Di
Die JJava
Virtual Machine führt diesen Bytecode dann aus.
Java von der Kommandozeile
„
javac
… Java-
Compiler
p
„
java
… BytecodeBytecode
Interpreter
2. Stoff
Java- Geschichte
„
„
„
„
„
„
„
„
Entwickelt 1995 für Sun Microsystems, Vorläufer Oak
(Heimelektronik) James Gosling u
(Heimelektronik),
u.a.
a
Push durch Applet für NetScape Mosaic Browser
JDK 1.0 1996 Java Development Kit
JDK 1.1 1997
JDK 1.2 1999 ab hier Java 2 Platform
JDK 1.3 2000, JDK 1.4 2003
JDK 1.5 2004: J2SE 5.0 Java 2 Standard Edition 5.0
JDK 1.6 2006
Begriff Objekt (Wikipedia)
„
„
„
„
8.10.2009
Objekt bezeichnet:
allgemein
ll
i etwas
t
U
Unspezifiziertes,
ifi i t
siehe
i h Sache
S h oder
d
Gegenstand
i Si
im
Sinne d
der Di
Dialektik
l ktik d
das, worauff ein
i S
Subjekt
bj kt seine
i
beobachtende, sinnliche, empirische und praktischverändernde Aktivität richtet
richtet, siehe Objekt (Philosophie)
ein Gegenstand mathematischer Untersuchungen
Mathematisches Objekt
Begriff Objekt (Wikipedia)
„
„
„
„
„
„
ein Satzglied, siehe Objekt (Grammatik)
einen
i
Hi
Himmelskörper,
l kö
siehe
i h Astronomisches
A t
i h Obj
Objekt
kt
eine Einheit in einem Geoinformationssystem, siehe
G
Geoobjekt
bj kt
eine Einheit in der Programmierung, siehe Objekt
(Programmierung)
eine bestimmte Art künstlerischer Werke, siehe
Objektkunst
einen selbstständigen Betrieb der ehem. Wismut AG
Objekt (Programmierung
Wikipedia)
p
)
Ein Objekt bezeichnet … ein Exemplar eines
b ti
bestimmten
t Datentyps
D t t
oder
d einer
i
b
bestimmten
ti
t
Klasse (auch "Objekttyp" genannt). Im Kontext
d objektorientierten
der
bj kt i ti t P
Programmierung
i
werden
d
Objekte auch als „Instanzen einer Klasse“
b
bezeichnet.
i h t Obj
Objekte
kt sind
i d also
l kkonkrete
k t
Ausprägungen („Instanzen“) eines Objekttyps.
Di Kl
Die
Klasse beschreibt
b
h ibt d
das Muster
M t aller
ll Obj
Objekte,
kt
die zu ihr gehören.
Einfaches Objekt Beispiel
Person1: Hans Dampf 01.02.1990
Person2: Lieschen Müller 01.12.1991
Muster: Vorname Nachname (Geburts-)Datum
Klasse
Person
Person1
Person2
Vorname
Hans
Lieschen
Nachname
Dampf
Müller
G b t t
Geburtstag
01 02 1990
01.02.1990
01 12 1991
01.12.1991
Objekt
Instanz
Klassendefinition
Person
Objekt Beispiel
Klasse
Klasse
Klasse
class
l
P
Person
{
String vorname;
String nachname;
Datum gebdatum;
}
Objekt
Instanz
Klasse
Person
Person1
Person2
Vorname
Hans
Lieschen
Nachname
Dampf
Müller
G b t t
Geburtstag
01 02 1990
01.02.1990
01 12 1991
01.12.1991
Klassendefinition
Person
Objekt Beispiel
Klasse
Klasse
Klasse
class
l
P
Person
{
String vorname;
String nachname;
Datum gebdatum;
}
Objekt
Instanz
Person1
Person2
Hans
Lieschen
Dampf
Müller
01 02 1990
01.02.1990
01 12 1991
01.12.1991
Objekt (Programmierung
Wikipedia)
p
)
Jedes Objekt hat einen Zustand, ein Verhalten
und
d eine
i Identität.
Id tität
Der Zustand des Objekts setzt sich aus seinen
Attributen und Verbindungen zu anderen
Objekten zusammen.
Das Verhalten des Objekts wird durch die Menge
seiner Operationen
p
(("Methoden")) beschrieben.
Die Identität unterscheidet ein Objekt von
anderen Objekten
Objekten, auch wenn diese anderen
Objekte den gleichen Zustand und das gleiche
Verhalten haben [
Objekt, erweitertes Beispiel
Das Verhalten des Objekts wird durch die Menge
seiner
i
O
Operationen
ti
("M th d ") beschrieben.
("Methoden")
b
hi b
Alter =
17
Alter =
19
Person1
Person2
Hans
Lieschen
Dampf
Müller
01 02 1990
01.02.1990
01 12 1991
01.12.1991
Objekt erweitertes Beispiel
class
l
P
Person
{
String: vorname;
String: nachname;
Datum: gebdatum;
int alter() {
…
}
}
Programm
zur
Berechnung
Person
Vorname
Nachname
Geburtstag
Methode alter()
Person1
Person2
Hans
Lieschen
Dampf
Müller
01 02 1990
01.02.1990
01 12 1991
01.12.1991
Methode: Erweitertes Beispiel
int alter() {
Datum heute = new Datum();
int grob = heute.jahr - gebdatum.jahr;
if (heute.monat > gebdatum.monat)
return grob - 1;
if (heute.monat == gebdatum.monat && heute.tag >
g
gebdatum.tag)
g)
return grob - 1;
g ;
return grob;
}
Java Eigenschaften
„
„
„
„
„
„
„
„
Java-Verwandte: C++, C#, Objective C, Smalltalk,
Delphi
hat Klassen und Objekte
Vergleichsweise einfach
Interpreter-gestützt (VM)
Robust (z.B. keine Pointer-Arithmetik)
Pointer Arithmetik)
Architekturneutral (nicht OS- oder rechnerspezifisch)
Portierbar (Bytecode)
( y
)
Nebenläufig
Java Runtime Environment
C1.java C2.java
CN.java
Java-Compiler
C1.class
C2.class
CN.class
J
Java
Virtual
Vi t l Machine
M hi
Betriebssystem
Hardware
Herunterladen