CuP WS 2000/2001 - Montanuniversität Leoben

Werbung
CuP - Java
Erste Vorlesung
Entspricht ungefähr Kapitel 1.1 des Skriptums
Wilfried Imrich
Montanuniversität Leoben
Freitag, 4. Oktober 2002
Literatur






Skriptum
Dirk Ammelburger, Java2 für Einsteiger, KnowWare Plus
2001
Douglas Bell und Mike Parr, Java for Students, Second
edition, Prentice Hall 1999 (UB MUL Nr. 32250)
Judy Bishop, Java Gently, Addison Wesley 1997 (auch auf
Deutsch erhältlich)
The Java Tutorial, Third Edition, A short course on the
basics, Sun 2001
John R. Hubbard, Programmieren in Java, Schaum‘s
Überblicke und Aufgaben, McGraw-Hill 1999
4. Oktober 2002
CuP WS 2002/2003
2
Java
Was braucht man, um mit Java zu arbeiten?


Man benötigt einen Texteditor um die Programme
zu schreiben - auf jedem Rechner vorhanden und eine Java Virtual Machine (JVM) um die
Programme laufen zu lassen - wobei die JVM gratis
aus dem Netz geladen werden kann.
4. Oktober 2002
CuP WS 2002/2003
3
Inhalt der Vorlesung




Grundlagen der objektorientierten
Programmierung
Grundlagen der prozeduralen Programmierung
Graphische Oberflächen
Steuerflächen und Ereignisse
4. Oktober 2002
CuP WS 2002/2003
4
Grundlagen der objektorientierten
Programmierung







Klassen
Objekte
Attribute
Methoden
Datenkapselung
Vererbung
Polymorphismus
4. Oktober 2002
CuP WS 2002/2003
5
Grundlagen der prozeduralen
Programmierung


Variable und Anweisungen
Programmverzweigungen und Schleifen
4. Oktober 2002
CuP WS 2002/2003
6
Graphische Oberflächen

Applets - das sind Javaprogramme, die durch
einen Appletviewer oder einen Webbrowser
durchgeführt werden. Können auch über das
Internet geladen werden.
Werden in der zweiten Vorlesungshälfte
behandelt.
4. Oktober 2002
CuP WS 2002/2003
7
Steuerflächen und Ereignisse

Steuerung von Programmen durch vom
Benutzer verursachte Ereignisse oder durch
andere, wie etwa die Uhrzeit.
4. Oktober 2002
CuP WS 2002/2003
8
Das erste Programm
class Hallo{
public static void main(String args[ ]) {
System.out.println (“Willkommen”);
}
}
Bemerkung: Ein Programm mit einer main-Methode
heißt Applikation
4. Oktober 2002
CuP WS 2002/2003
9
Ausführung



Diesen Text in eine Datei mit dem Namen
Hallo.java schreiben. (Quellcode)
Durch die Anweisung
javac Hallo.java
die Datei Hallo.class erzeugen.
(Kompilierung)
Durch die Anweisung
java Hallo
die main-Methode durch den Interpreter ausführen.
(Ausführung)
4. Oktober 2002
CuP WS 2002/2003
10
Compilierung und Ausführung
Compilierung
Ausführung
Java Quellcode
Hallo.java
Java
Compiler
Class
Loader
Netzwerk
Interpreter
Java Bytecodes
Hallo.class
4. Oktober 2002
Code
Generator
Hardware
CuP WS 2002/2003
11
Eine ganz einfache Klasse
public class Turm{
int hoehe;
}
4. Oktober 2002
CuP WS 2002/2003
12
public class Turm{
int hoehe;
}
public
Turm
int hoehe
Modifikator der Klasse
Name der Klasse
Deklariert eine Ganzzahlvariable
mit dem Namen „hoehe“
Dateiname dieser Klasse?
Was kann man mit dieser Klasse tun? Man kann
sie kompilieren.
Wie? Was geschieht dabei?
4. Oktober 2002
CuP WS 2002/2003
13
Ein Objekt der Klasse Turm
public class TurmTestA{
public static void main(String[ ] args){
Turm turm1;
turm1 = new Turm( );
System.out.println(turm1.hoehe);
}
}
4. Oktober 2002
CuP WS 2002/2003
14
public class TurmTestB{
public static void main(String[ ] args)
Turm turm1;
turm1 = new Turm( );
// Wertzuweisung
turm1.hoehe = 25;
System.out.println(turm1.hoehe);
}
}
4. Oktober 2002
CuP WS 2002/2003
15
Objekte der Klasse Turm
public class TurmTestC{
public static void main(String[ ] args){
Turm turm1, turm2;
turm1 = new Turm( );
turm2 = new Turm( );
turm2.hoehe = 38;
System.out.println(turm1.hoehe + " " +
turm2.hoehe);
}
}
4. Oktober 2002
CuP WS 2002/2003
16
Konstruktoren und Objektvariable
Turm( ) ist ein Konstruktor; dient zur Erzeugung eines
Objekts, also einer Instanz einer Klasse.
turm2.hoehe ist eine Objektvariable, auch
Instanzvariable genannt. Wenn man sie nicht
initialisiert; d.h. wenn man ihr keinen Wert zuweist, wird
sie durch Java mit dem Wert 0 initialisiert.
(Außer Objektvariablen gibt es nur noch Klassenvariable und lokale
Variable)
4. Oktober 2002
CuP WS 2002/2003
17
Was ist ein Programm?
Ein Programm besteht aus einer oder mehreren Klassen,
zum Beispiel aus der Klasse „Hallo“ oder den Klassen
„Turm“ und „TurmTestA“.
Was charakterisiert eine Klasse?
Die Deklaration
[Modifikator] class Name{
4. Oktober 2002
CuP WS 2002/2003
}
18
Was charakterisiert eine Applikation?
Die Methode
public static void main (String args[]){ }
Wie druckt man Text aus?
Durch
System.out.println("Text");
// Zeilenvorschub nach der Ausgabe
oder
System.out.print("Text");
// Kein Zeilenvorschub nach der Ausgabe
Innerhalb des Klammernpaares { } der main-Methode!
4. Oktober 2002
CuP WS 2002/2003
19
Die Verknüpfung +
Die Anweisung
System.out.println("Hoehe von turm1: " + turm1.hoehe);
in TesteTurm bewirkt, dass der Text "Hoehe von turm1: "
mit dem Wert von turm1.hoehe verknüpft wird. Dabei
wandelt Java die ganze Zahl turm1.hoehe vor der
Verknüpfung zuerst in Text um.
4. Oktober 2002
CuP WS 2002/2003
20
Wie erzeugt man ein Objekt einer Klasse?
Durch die Anweisungen
Klassenname Objektname;
Objektname = new Klassename( );
oder
Klassenname Objektname = new Klassenname( );
z.B.
Turm schwammerlturm;
schwammerlturm = new Turm();
4. Oktober 2002
CuP WS 2002/2003
21
Wie erzeugt man eine Objekvariable vom
Typ integer?
Durch die Anweisungen
int variablenname;
in der Definition der Klasse, z.B.
int hoehe;
Wertezuweisung durch
objektname.variablenname = wert;
nach Erzeugung des Objekts, z.B.
turm1.hoehe = 25;
4. Oktober 2002
CuP WS 2002/2003
22
Wichtige bisher gebrachte Begriffe
Javaapplikation, Quellcode, Kompiler, Interpreter,
Klasse, Instanz oder Objekt, Instanz- oder
Objektvariable,
Deklaration, Initialisierung,
Modifikator, Methode, Programm
4. Oktober 2002
CuP WS 2002/2003
23
Fragen
Was macht der Kompiler, was der Interpreter?
Können Sie Beispiele zu allen anderen Begriffen geben?
Lässt sich die Klasse
public class KannNichts{ }
ohne Fehlermeldung übersetzten?
4. Oktober 2002
CuP WS 2002/2003
24
Herunterladen