 
                                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