Python Unterrichtsmaterial

Beispiel zum Vergleich Java und Python

Java Python

Einfacher Zaehler

public class EinfacherZaehler { // Instanzvariable protected int stand; /** * Konstruktor für Objekte der Klasse EinfacherZaehler */ public EinfacherZaehler() { // Instanzvariable initialisieren stand = 0; } /** * zeigt den Zaehlerstand an. */ public int zeigeStand() { // tragen Sie hier den Code ein return stand; } /** * zaehlt den Zaehler um 1 weiter. */ public void zaehle() { stand++; } } class EinfacherZaehler: # Konstruktor: def __init__(self): # Attribut: self._stand=0 # Methoden: # der muss zaehlen können def zaehle(self): self._stand+=1 # und den stand anzeigen können def zeigeStand(self): return self._stand

Vererbung

public class ZyklischerZaehlerVererbung extends EinfacherZaehler { // Instanzvariable private int zyklenLaenge; /** * Konstruktor für Objekte der Klasse ZyklischerZaehler */ public ZyklischerZaehlerVererbung(int zyklenLaenge) { // Konstruktor der vererbenden Klasse aufrufen super(); // Instanzvariable initialisieren this.zyklenLaenge = zyklenLaenge; } /** * zaehlt den Zaehler um 1 weiter. * diese Methode muss die von EinfacherZaehler ueberschreiben. */ public void zaehle() { stand++; if (stand==zyklenLaenge) stand=0; } } class ZyklischerZaehlerVererbung(EinfacherZaehler): def __init__(self, maximalWert): EinfacherZaehler.__init__(self) self.__maximalWert=maximalWert # zaehlen muss den Maximalwert beachten def zaehle(self): self._stand+=1 if self._stand==self.__maximalWert: self._stand=0

Nutzerbeziehung

public class ZyklischerZaehlerNutzer { // Instanzvariable private EinfacherZaehler zaehler; private int zyklenLaenge; /** * Konstruktor für Objekte der Klasse ZyklischerZaehlerNutzer */ public ZyklischerZaehlerNutzer(int zyklenLaenge) { // Instanzvariable initialisieren this.zyklenLaenge = zyklenLaenge; zaehler = new EinfacherZaehler(); } /** * zeigt den Zehlerstand an. */ public int zeigeStand() { // tragen Sie hier den Code ein return zaehler.zeigeStand(); } /** * zaehlt den Zaehler um 1 weiter. * diese Methode muss die von EinfacherZaehler ueberschreiben. */ public void zaehle() { zaehler.zaehle(); if (zaehler.zeigeStand()==zyklenLaenge) zaehler = new EinfacherZaehler(); } } class ZyklischerZaehlerNutzer(): def __init__(self, maximalWert): self.__einfacherZaehler=EinfacherZaehler() self.__maximalWert=maximalWert # zaehlen muss den Maximalwert beachten; # wird er überschritten, holt sich zyklischerZaehler # einen neuen einfacherZaehler def zaehle(self): self.__einfacherZaehler.zaehle() if self.__einfacherZaehler.zeigeStand()==self.__maximalWert: self.__einfacherZaehler=EinfacherZaehler() # zahler muss hier den stand selbst anzeigen können, # nimmt aber einfacherZaehler zu Hilfe def zeigeStand(self): return self.__einfacherZaehler.zeigeStand()

Tests

public void testAlleZaehler() { EinfacherZaehler einfach1 = new EinfacherZaehler(); System.out.println("EinfacherZaehler"); for (int i=0; ilt;7; i++) { einfach1.zaehle(); System.out.println(einfach1.zeigeStand()); } ZyklischerZaehlerVererbung zyklisch1 = new ZyklischerZaehlerVererbung(5); System.out.println("ZyklischerZaehlerVererbung"); for (int i=0; ilt;7; i++) { zyklisch1.zaehle(); System.out.println(zyklisch1.zeigeStand()); } ZyklischerZaehlerNutzer zyklisch2 = new ZyklischerZaehlerNutzer(5); System.out.println("ZyklischerZaehlerNutzer"); for (int i=0; ilt;7; i++) { zyklisch2.zaehle(); System.out.println(zyklisch2.zeigeStand()); } } einfach=EinfacherZaehler() print "EinfacherZaehler" for i in range(7): einfach.zaehle() print einfach.zeigeStand() zyklischerZaehler1=ZyklischerZaehlerVererbung(5) print "ZyklischerZaehlerVererbung" for i in range(7): zyklischerZaehler1.zaehle() print zyklischerZaehler1.zeigeStand() zyklischerZaehler2=ZyklischerZaehlerNutzer(5) print "ZyklischerZaehlerNutzer" for i in range(7): zyklischerZaehler2.zaehle() print zyklischerZaehler2.zeigeStand()

Zurück zur Homepage.

© claus albowski