Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried...

24
CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002

Transcript of Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried...

Page 1: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

CuP - JavaErste Vorlesung

Entspricht ungefähr Kapitel 1.1 des Skriptums

Wilfried ImrichWilfried ImrichMontanuniversität Leoben

Freitag, 4. Oktober 2002

Page 2: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 2

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

Page 3: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 3

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.

Page 4: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 4

Inhalt der Vorlesung

Grundlagen der objektorientierten

Programmierung Grundlagen der prozeduralen Programmierung Graphische Oberflächen Steuerflächen und Ereignisse

Page 5: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 5

Grundlagen der objektorientierten Programmierung

Klassen Objekte Attribute Methoden Datenkapselung Vererbung Polymorphismus

Page 6: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 6

Grundlagen der prozeduralen Programmierung

Variable und Anweisungen Programmverzweigungen und Schleifen

Page 7: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 7

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.

Page 8: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 8

Steuerflächen und Ereignisse

Steuerung von Programmen durch vom Benutzer verursachte Ereignisse oder durch andere, wie etwa die Uhrzeit.

Page 9: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 9

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

Page 10: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 10

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)

Page 11: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 11

Compilierung und Ausführung

Java QuellcodeHallo.java

JavaCompiler

Java BytecodesHallo.class

Netzwerk

ClassLoader

Interpreter CodeGenerator

Hardware

Compilierung Ausführung

Page 12: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 12

Eine ganz einfache Klasse

public class Turm{

int hoehe;

}

Page 13: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 13

public class Turm{

int hoehe;

}

public Modifikator der KlasseTurm Name der Klasseint hoehe 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?

Page 14: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 14

Ein Objekt der Klasse Turm

public class TurmTestA{

public static void main(String[ ] args){

Turm turm1;

turm1 = new Turm( );

System.out.println(turm1.hoehe);

}

}

Page 15: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 15

public class TurmTestB{

public static void main(String[ ] args)

Turm turm1;

turm1 = new Turm( );

// Wertzuweisung

turm1.hoehe = 25;

System.out.println(turm1.hoehe);

}

}

Page 16: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 16

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);

}

}

Page 17: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 17

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)

Page 18: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 18

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{ }

Page 19: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 19

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 Ausgabeoder System.out.print("Text"); // Kein Zeilenvorschub nach der Ausgabe

Innerhalb des Klammernpaares { } der main-Methode!

Page 20: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 20

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.

Page 21: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 21

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();

Page 22: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 22

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;

Page 23: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 23

Wichtige bisher gebrachte Begriffe

Javaapplikation, Quellcode, Kompiler, Interpreter,

Klasse, Instanz oder Objekt, Instanz- oder Objektvariable,

Deklaration, Initialisierung,

Modifikator, Methode, Programm

Page 24: Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.

4. Oktober 2002

CuP WS 2002/2003 24

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?

Fragen