Programmiervorkurs WS 2014/15 Instanzmethoden

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
der Universität Oldenburg
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Abstrakte Klassen.
Ein Beispiel in Java.
Erweiterte Zuweisungskompatibilität
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Assoziationen (Beziehungen) 1 : n. Zu einem Auto gibt es mehrere Fahrer (2) und zu diesen 2 Fahrern gibt es genau dieses Auto.
Polymorphie (Vielgestaltigkeit)
Assoziationen (Beziehungen). Zwischen Objekten kann es eine Beziehung geben.
Polymorphie (Vielgestaltigkeit)
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Einführung in die Programmierung mit Java
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Abstrakter Datentyp in C++ I - Klasse -
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
Abstrakte Klassen DVG
DVG Einführung in Java1 Einführung in JAVA.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Klassen 02 - Klassen.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sitzung 3: Klassen, Objekte, Arrays und Kontrollstrukturen
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Rekursive Funktionen (Fakultät)
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Objektorientiertes Konstruieren
Aufruf einer Methode eines Objektes vom Typ „Bruch“
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Programmiervorkurs WS 2014 Referenzdatentypen
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Objektorientierte Programmierung (OOP)
Java Programme nur ein bisschen objektorientiert.
Vererbung.
Einführung in die Programmierung mit Java
Grundkurs Informatik 11-13
Ein Referat von Sabrina Vissel, darleen paul und yannick fuchs
Definition Felder Konstruktor Methoden Beispiel
Implementieren von Klassen
Grundkurs Informatik 11-13
 Präsentation transkript:

Programmiervorkurs WS 2014/15 Instanzmethoden Termin 6

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = flaeche(p); } public static double flaeche(Polygon p) { Punkt[] pkt = p.punkte; double f = ... return f; public class Polygon { public Punkt[] punkte; //die Ecken des Polygons

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = Polygon.flaeche(p); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public static double flaeche(Polygon p) { Punkt[] pkt = p.punkte; double f = ... return f; Besser: Methode in der Klasse unterbringen, mit der sie häufig gemeinsam eingesetzt wird.

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = Polygon.flaeche(p); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public static double flaeche(Polygon p) { Punkt[] pkt = p.punkte; double f = ... return f; = „Klasse Polygon, bitte berechne mir die Fläche von p“. Besser: Methode in der Klasse unterbringen, mit der sie häufig gemeinsam eingesetzt wird.

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = Polygon.flaeche(p); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public static double flaeche(Polygon p) { Punkt[] pkt = p.punkte; double f = ... return f; Beim Aufruf steht vor dem Namen der Methode der Name der Klasse, in welcher die Methode definiert ist.

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = p.flaeche(); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public double flaeche() { Punkt[] pkt = this.punkte; double f = ... return f; Noch Besser: Methoden können sich auf Objekte beziehen.

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = p.flaeche(); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public double flaeche() { Punkt[] pkt = this.punkte; double f = ... return f; Noch Besser: Methoden können sich auf Objekte beziehen. = Instanzmethoden

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = p.flaeche(); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public double flaeche() { Punkt[] pkt = this.punkte; double f = ... return f; Noch Besser: Methoden können sich auf Objekte beziehen. = „Polygon p, bitte berechne mir Deine Fläche “. = Instanzmethoden

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = p.flaeche(); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public double flaeche() { Punkt[] pkt = this.punkte; double f = ... return f; Beim Aufruf steht vor dem Namen der Methode der Bezeichner für das Objekt, für das die Methode aufgerufen wird.

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = p.flaeche(); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public double flaeche() { Punkt[] pkt = this.punkte; double f = ... return f; Es muss jetzt kein Polygon mehr übergeben werden.

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = p.flaeche(); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public double flaeche() { Punkt[] pkt = this.punkte; double f = ... return f; Instanzmethoden erkennt man daran, dass sie nicht static sind.

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = p.flaeche(); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public double flaeche() { Punkt[] pkt = this.punkte; double f = ... return f; this ist eine Referenz auf das Polygon, für welches die Methode aufgerufen wurde.

Flächenberechnung (Polygon) public class Flaechenberechnung { public static void main(String[] args) { Polygon p = ... double f = p.flaeche(); } public class Polygon { public Punkt[] punkte; //die Ecken des Polygons public double flaeche() { Punkt[] pkt = punkte; double f = ... return f; this kann auch weggelassen werden, wenn Bezeichner (punkte) eindeutig ist.

Flächenberechnung (Kreis) public class Flaechenberechnung { public static void main(String[] args) { Kreis k = new Kreis(); //erzeuge Kreis k.xM = k.yM = 0.0; //setze Mittelpunkt = (0,0) k.radius = 1.0; //setze Radius auf 1 System.out.println("Flaeche = " + k.flaeche()); } public class Kreis { public double xM; public double yM; public double radius; public double flaeche() { return Math.PI * radius * radius;

Flächenberechnung (Kreis) public class Flaechenberechnung { public static void main(String[] args) { Kreis k = new Kreis(0.0, 0.0, 1.0); //erzeuge Kreis System.out.println("Flaeche = " + k.flaeche()); } Besser: Erzeuge Kreis gleich mit den richtigen Attributwerten

Flächenberechnung (Kreis) public class Flaechenberechnung { public static void main(String[] args) { Kreis k = new Kreis(0.0, 0.0, 1.0); //erzeuge Kreis System.out.println("Flaeche = " + k.flaeche()); } Besser: Erzeuge Kreis gleich mit den richtigen Attributwerten public class Kreis { public double xM; public double yM; public double radius; public Kreis(double x, double y, double r) { xM = x; yM = y; radius = r; } public double flaeche() { return Math.PI * radius * radius; Dies erfordert eine besondere Methode: Einen Konstruktor

Flächenberechnung (Kreis) public class Kreis { public double xM; public double yM; public double radius; public Kreis(double x, double y, double r) { xM = x; yM = y; radius = r; } public double flaeche() { return Math.PI * radius * radius; kein Rückgabewert (auch nicht void !)

Flächenberechnung (Kreis) public class Kreis { public double xM; public double yM; public double radius; public Kreis(double x, double y, double r) { xM = x; yM = y; radius = r; } public double flaeche() { return Math.PI * radius * radius; Bezeichner identisch mit Klassenname

Flächenberechnung (Kreis) public class Kreis { public double xM; public double yM; public double radius; public Kreis(double x, double y, double r) { xM = x; yM = y; radius = r; } public double flaeche() { return Math.PI * radius * radius; im Konstruktor werden (in der Regel) die Attributwerte gesetzt

Aufgabe Erweitert die Klasse Kreis um die Instanzmethoden public double umfang() und public double distanz(Kreis k) Die Methode distanz soll die euklidische Distanz zwischen dem Kreis, für den die Methode aufgerufen wird, und dem Kreis k berechnen. (Die aufrufende Instanz hat natürlich Zugriff auf ihre eigenen Attribute, es ist nicht nötig diese zusätzlich zu übergeben.)

Aufgabe Erstellt eine Klasse Quadrat mit den Attributen public double xM //x-Koord. Mittelp. public double yM //y-Koord. Mittelp. public double seitenlaenge und den Methoden public double umfang() public double flaeche() ZUSATZ: public double distanz(Quadrat q) Diese Methoden sollen dieselbe Bedeutung wie die gleichnamigen Methoden der Klasse Kreis haben. Für die Berechnung der Distanz könnt Ihr davon ausgehen, dass die Quadrate achsparallel sind. Die Klasse Quadrat soll außerdem einen Konstruktor haben, mit dem sich die Attributwerte setzen lassen.