JAVA 2 - Fachbereich Maschinenbau - FH

Werbung
Fachhochschule Stralsund
Fachbereich Maschinenbau
Lehrgebiet Informatik
Prof. Dr.-Ing. Ch.Wahmkow
Arbeitsblätter für die Lehrveranstaltung OOP
JAVA 2
II. Objektorientierte Programme
Aufbau eines objektorientierten Programmes
class omwst
{
class Anwendung
...
Deklaration eines Objektes
von neue_Klasse;
Anlegen eines Objektes von
neue_Klasse;
...
Anwenden der Methoden
des Objektes
public static void main(String args[])
{
int eingabe;
Mehrwertsteuer mwst;
mwst=new Mehrwertsteuer();
eingabe=Integer.parseInt(args[0]);
mwst.nettopreis(eingabe);
mwst.berechnung();
System.out.println(mwst.getbrutto());
}
} // Ende des Programmes
class Mehrwertsteuer
{
private int netto;
private double brutto;
public void nettopreis(int eingabewert)
{
netto=eingabewert;
}
public void berechnung()
{
brutto=netto+netto*0.15;
}
}
Ende des Programmes
class neue_Klasse
...
Beschreibung der Klasse
(Bauplan)
Weitere Klassen
...
Nach dem Compilieren existieren
von allen definierten Klassen
eigenständige Dateien .class
Beschreiben Sie den Aufbau der Klasse Mehrwertsteuer:
public double getbrutto()
{
return brutto;
}
}
Datenkapselung
Datenfelder von Objekten werden mit den Zugriffs-Modifizierern private oder protected
deklariert.
_______________________________
Arbeitsblätter zur VL OOP; Java 2
Seite 1
Methoden werden public deklariert.
private
protected
public
Variable oder Methode gilt nur in definierter Klasse
Variable oder Methode gilt auch in vererbten Objekten
Variable oder Methode ist öffentlich
Vererbung
erbt eine Klasse die Eigenschaften einer anderen, so wird bei der Klassendefinition mit dem
Schlüsselwort extends auf den Ursprung hingewiesen:
class Kind extends Vater
Variablen, die vererbbar sind, müssen protected sein, d.h. sie sind nur in einer
Klassenhierarchie verwendbar.
Beispiel:
class vmwst // Anwendung der Vererbung; Programm verlangt einen Eingabeparameter
{
public static void main(String args[])
{
int eingabe;
Mehrwertsteuer mwst;
mwst=new Mehrwertsteuer();
eingabe=Integer.parseInt(args[0]);
mwst.nettopreis(eingabe);
mwst.berechnung();
System.out.println(mwst.getbrutto());
Mehrwertsteuer17 mwst17;
// Objekte können an beliebiger Stelle
mwst17=new Mehrwertsteuer17(); // im Programm definiert werden
mwst17.nettopreis(eingabe);
// Anwendung der alten Methoden
mwst17.berechnung();
// im neuen Objekt
System.out.println(mwst17.getbrutto());
System.out.println(mwst17.brutto17()); // Anwendung der neuen Methode
} }
// 2. Klammer à Programmende
class Mehrwertsteuer
{
protected int netto;
// protected, da vererbbar
protected double brutto;
public void nettopreis(int eingabewert)
// Methodendefinitionen:
{ netto=eingabewert;}
public void berechnung()
{ brutto=netto+netto*0.15;}
public double getbrutto()
{return brutto;}
}
class Mehrwertsteuer17 extends Mehrwertsteuer
{
public double brutto17()
{ return netto+netto*0.17; }
}
Polymorphie
(Verwandlungsfähigkeit), d.h. eine Methode kann überschrieben werden (overriding), der
Name bleibt bestehen, der Inhalt ändert sich.
_______________________________
Arbeitsblätter zur VL OOP; Java 2
Seite 2
Methoden können auch überladen werden (overloading); D.h., der Name der Methode ist
gleich, aber die Parameterliste ist verschieden. Java sucht beim Programmablauf die Metohode
mit der richtigen Parameterliste aus.
Bsp.:
...
Kreis K1=new Kreis();
//es wird ein Objekt angelegt
K1.zeichnen();
//es existiert eine Methode zeichnen, die keine Parameter hat, Java
wendet diese Methode an;
K1.zeichnen(5,5);
// es existiert eine Methode zeichnen, die Parameter hat, Java
wendet diese Methode an;
...
Statische Datenfelder und Methoden
- werden durch das Schlüsselwort static vereinbart und gelten für die gesamte Klasse;
- müssen also nur einmal definiert (gesetzt) werden
- bei Änderung ist die Änderung für alle Objekte der Klasse wirksam
Methoden und Datenfelder können auch als final deklariert werden.
Das bedeutet für Klassen, daß sie nicht erweitert, verändert oder überschrieben werden
können. Es sind also echte Konstanten.
Pakete
- sind Bibliotheken in Java (Klassenbibliotheken)
- werden durch import ins Programm integriert
Beispiele zum Import:
import java.applet.Applet;
Hier wird die Klasse Applet aus dem package applet von java importiert. Alle Methoden und
Variablen der Klasse Applet sind im eigenen Programm verfügbar.
import java.applet.*;
alle Klassen des applet-packages sind verfügbar
import java.*;
macht alle packages und damit alle Klassen, die Java anbietet, verfügbar
Einige wichtige Java-packages:
Bezeichnung
Inhalt
enthält Klassen zum Schreiben eines eigenen Applets
java.applet
enthält Klassen zum Aufbau einer graf. Benutzeroberfläche, wie Fenster, Dialoge,
java.awt
java.io
java.lang
java.net
Schaltflächen, Listen, Rollbalken u.a.
Klassen zur Ein-und Ausgabe
grundlegendes package zur Sprachbeschreibung (language), wird automatisch in
alle Java-Programme eingebunden;
beinhaltet die Klasse Object, die die Elternklasse aller anderen Klassen von Java ist
implementiert Netzwerk-Protokolle (FTP, Sockets, Telnet, WWW)
diese Klassen machen Java internetkompatibel; der Austausch von Daten übers
Netzwird möglich
_______________________________
Arbeitsblätter zur VL OOP; Java 2
Seite 3
Herunterladen