Aufruf einer Methode eines Objektes vom Typ „Bruch“

Slides:



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

der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
DES-Simulator in JAVA, objektorientiert
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Konzepte objektorientierter Systeme
Einführung in die Programmierung Ausführbare Klassen
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapselung , toString , equals , Java API
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
der Universität Oldenburg
Java: Objektorientierte Programmierung
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Konstruktoren.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
1. Schritt: Addieren gleichnamiger Brüche
Programmieren mit JAVA
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
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.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Die Methode public Knoten einfuegenVor (Datenelement dNeu, Datenelement dVergleich) public Knoten einfuegenVor(Datenelement dNeu, Datenelement dVergleich){
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Einführung in die Programmierung Anweisungen und Datentypen
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
Informatikunterricht mit Java
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Grundkonzepte Java - Klassendefinition
Rekursive Funktionen (Fakultät)
Bruchrechenregeln Los geht´s Klick auf mich! Melanie Gräbner.
Bruchrechnung Keine halben Sachen.
Wir haben gesehen Das Gerüst ist bei JavaKara fix vorgegeben
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
2.4 Rekursion Klassifikation und Beispiele
Rechnen mit Brüchen Kamyla A. Barrientos P, 5B.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Ungleichnamige Brüche haben verschiedene Nenner
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Aufgaben zu Rückgabewerten
Grundkurs Informatik 11-13
Implementieren von Klassen
Grundkurs Informatik 11-13
 Präsentation transkript:

Aufruf einer Methode eines Objektes vom Typ „Bruch“ class Bruch class testeBruch int zaehler = 0; int nenner = 1; int v = 3; public void erweitere(int n) { zaehler = zaehler * n; nenner = nenner * n; } b2.erweitere(v);

Eine besondere Methode: der Konstruktor class Bruch Konstruktor Die Konstruktor-Methode besitzt den gleichen Namen wie die Klasse und wird als erste Methode aufgerufen, wenn ein Objekt der betreffenden Klasse mit dem „new“-Befehl erzeugt wird. int zaehler = 0; int nenner = 1; Bruch (int a, int b) { zaehler = a; nenner = b; } class testeBruch Bruch b1 = new Bruch(2,7); public void erweitere(int n) { zaehler = zaehler * n; nenner = nenner * n; } b1.zaehler = 3;

Eine Methode zum Ermitteln des größten gemeinsamen Teilers public int findeGGT(int a, int b) { int z = a; // Waehle den kleineren Wert if (b < a) { z = b; } // Finde die gemeinsamen Teiler von a und b int t = 0; for (int i = 1; i < z + 1; i++) { if ( ((a%i)==0) & ((b%i)==0) ) { t = i; // Gib den groessten gemeinsamen Teiler zurück return t;

Die Klasse Bruch public class Bruch { int zaehler = 0; int nenner = 1; // Konstruktor Bruch(int a, int b) { zaehler = a; if (b!= 0) { nenner = b; } else { nenner = 1; // Nun kommen die restlichen Methoden

public void zeigeDich() { System.out.println("Zaehler = " + zaehler); System.out.println("Nenner = " + nenner); } public void erweitere(int x) { zaehler = zaehler * x; nenner = nenner * x; public void bildeKehrwert() { int dummy = nenner; nenner = zaehler; zaehler = dummy;

public int bildeGGT(int a, int b) { int z = a; // Waehle den kleineren Wert fuer z if (b < a) { z = b; } // Finde die gemeinsamen Teiler von a und b int t = 0; for (int i=1; i < z+1; i++) { if ( ((a%i)==0) & ((b%i)==0) ) { t = i; return t; public void kuerze() { int ggT = bildeGGT(zaehler, nenner); zaehler = zaehler / ggT; nenner = nenner / ggT;

// Im nächsten Abschnitt passiert etwas NEUES. // Beim Aufruf einer Methode wird nicht einfach nur eine // Zahl oder eine Variable übergeben, sondern ein Objekt. // Das sieht so aus: // b3 = b1.multipliziere(b2); // Was passiert hier? // Der Bruch b1 wird mit dem Bruch b2 multipliziert // und das Ergebnis dem Bruch b3 zugewiesen.

public Bruch multipliziere(Bruch multiplikator) { Bruch ergebnis = new Bruch(1,1); ergebnis.zaehler = zaehler * multiplikator.zaehler; ergebnis.nenner = nenner * multiplikator.nenner; ergebnis.kuerze(); return ergebnis; } public Bruch dividiere(Bruch dividend) { ergebnis.zaehler = zaehler * dividend.nenner; ergebnis.nenner = nenner * dividend.zaehler;

public int bildeKGN(int nenner1, int nenner2) { int ergebnis = 1; ergebnis = nenner1 * nenner2; ergebnis = ergebnis / bildeGGT(nenner1, nenner2); return ergebnis; }

public Bruch addiere(Bruch summand) { Bruch ergebnis = new Bruch(1,1); int kgn = 1; int faktor1 = 1; int faktor2 = 1; kgn = bildeKGN(nenner, summand.nenner); faktor1 = kgn / nenner; faktor2 = kgn / summand.nenner; zaehler = zaehler * faktor1; nenner = kgn; summand.zaehler = summand.zaehler * faktor2; summand.nenner = kgn; ergebnis.zaehler = zaehler + summand.zaehler; ergebnis.nenner = kgn; ergebnis.kuerze(); return ergebnis; }

public Bruch subtrahiere(Bruch subtrahend) { Bruch ergebnis = new Bruch(1,1); Bruch dummy _ = new Bruch(-1 * subtrahend.zaehler, subtrahend.nenner); ergebnis = this.addiere(dummy); return ergebnis; }