Workshop zum Programmingwiki/Objektorientierte Programmierung (Java)
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
== Objektorientierte Programmierung ==
=== Technische Voraussetzungen ===
Zur Objektorientierten Programmierung in Java ist die Policy-Datei
* <tt>JavaPolicy.class</tt>
erforderlich. Entsprechende Hinweise findet man unter: [[JavaPolicy]]
=== Definition der Klasse ''Bruch''===
<code id="5143a88bf2d62">
public class Bruch {
protected int z;
protected int n;
public Bruch(int z, int n) {
if (n < 0) {
z = -z; n = Math.abs(n);
}
this.z = z;
this.n = n;
}
public int Zaehler() {
return z;
}
public int Nenner() {
return n;
}
public double Dezimal() {
return (double)z / n;
}
public void Reziprok() {
int h = z; z = n; n = h;
if (n < 0) {
z = -z; n = Math.abs(n);
}
}
public void Ausgabe() {
System.out.println(z + "/" + n);
}
}
</code>
=== Instanz der Klasse ''Bruch''===
<run id="5145e11c18596">
Bruch Bruch1 = new Bruch(3, 7);
System.out.print("Bruch1: "); Bruch1.Ausgabe();
System.out.println("Bruch1 als Dezimalbruch: " + Bruch1.Dezimal());
</run>
=== Vererbung ===
<code id="5143a88bf2dc4">
public class GekuerztBruch extends Bruch {
public GekuerztBruch(int z, int n) {
super(z, n);
}
private int ggT(int m, int n) {
if (n == 0)
return m;
else
return ggT(n, m % n);
}
public void Kuerzen() {
int teiler = ggT(z, n);
z = z / teiler;
n = n / teiler;
}
}
</code>
<run id="5145e11c185f5">
Bruch Bruch2 = new GekuerztBruch(10, 8);
System.out.print("Bruch2, ungekürzt: "); Bruch2.Ausgabe();
Bruch2.Kuerzen();
System.out.print("Bruch2, gekürzt : "); Bruch2.Ausgabe();
</run>
=== Polymorphie ===
<code id="5158294b1b878">
public class GemischtBruch extends GekuerztBruch {
public GemischtBruch(int z, int n) {
super(z, n);
}
public void Ausgabe() {
int g; int z0; int n0;
double quotient = z / n;
if (quotient < 0)
g = (int)Math.ceil(quotient);
else
g = (int)Math.floor(quotient);
if (g == 0)
System.out.println(z + "/" + n);
else {
z0 = Math.abs(z % n);
n0 = n;
System.out.println(g + "_" + z0 + "/" + n0);
}
}
}
public void BruchAusgabe(Bruch MyBruch) {
System.out.print(MyBruch.Zaehler() + "/" + MyBruch.Nenner() + " = ");
MyBruch.Kuerzen();
MyBruch.Ausgabe();
}
Bruch Bruch3 = new GekuerztBruch(24, 16);
Bruch Bruch4 = new GemischtBruch(24, 16);
</code>
<run id="5157f1dec3629">
BruchAusgabe(Bruch3);
BruchAusgabe(Bruch4);
</run>
Zurück zum [[Workshop zum Programmingwiki]].