is-Logo

Programmierung
Lesbarkeit von Programmiersprachen

S. Spolwig

[Home | Algorithmen]

Vergleich des Code einer Klasse Person mit aggregierter Adresse
 

DELPHI JAVA PYTHON


UNIT
uPerson;

INTERFACE
uses
  uAdresse;

type
  TPerson = class (TObject)
   protected
    Name,
    Vorname    : string[20];
    Geburtstag : string[10];

   public
    Adresse     : TAdresse;            

    constructor Create;                
    procedure Init;                 
    procedure SetName (n:string);     
    procedure SetVorName (vn:string);
    procedure SetGeburtstag (gb:string);
    function GetName       : string;    
    function GetVorName   : string;   
    function GetGeburtstag : string;   
  end;

IMPLEMENTATION

constructor TPerson.Create;
begin
   inherited Create;
   Name       := '';
   Vorname  := '';
  Geburtstag := '';
end;

procedure TPerson.SetName (n: string);
begin
  Name := n;
end;

function TPerson.GetName : string;
begin
  result := Name;
end;

...

END.

 









public class person
  implements Serializable
{
  private String  name,
                       vorname,
                       geburtstag;
 
public adresse  Adresse;          













public person()
{
  adresse = new adresse();
  name        = "";
  vorname   = "";
  geburtstag = "";
 }

public void setname (String n)
{
  name = n;
}

public String getname()
{
  return name;
}

...

}









class Person:
   def __init__(self):
      self.Adresse=TAdresse()
      self._Name=''
      self._Vorname=''
      self._Geburtstag=''

   def setName(self,n):
      self._Name=n

   def getName(self):
      return self._Name

...    


Die Methode Liste.Sortieren
 

procedure TListe.Sortieren;
var
  i,
  Endmarke : integer;
  IstFertig: boolean;

begin
  Endmarke := Listenlaenge - 1 ;
  IstFertig    := false;

  while NOT IstFertig do
 
begin
    IstFertig := true ;
   
for i := 1 to Endmarke do
   
begin
     
if Kollektion[i].GetName >
           Kollektion[i+1].GetName
     
then
       
begin
          Tauschen (Kollektion[i], Kollektion[i+1]);
          IstFertig := false;
       
end;
   
end;
    Endmarke := Endmarke - 1;
 
end;
end;

------------
Beliebige Leerzeichen und Einrückungen
erlaubt
 

public static void sortieren
{

  boolean IstFertig;    
  int endmarke;






  while (! istfertig)
 
{
    istfertig
= true;
    for (int i=0; i<kollektion.length-1; i++)
    {
     if (kollektion[i].GetName >  
            kollektion
[i+1].GetName) {
       swap (kollektion[i], kollektion[i+1])
       istfertig = false;         
     }
    }
    endmarke = endmarke -1;    
  }
};



------------
Beliebige Leerzeichen und Einrückungen erlaubt

def Sortieren(self):
    Endmarke=self.Listenlaenge-1
    IstFertig=0
    while not IstFertig:
      IstFertig=1
      if self.__Kollektion[i].GetName()>\
      self.__Kollektion[i+1].GetName():
         for i in range(0,Endmarke):
           (self.__Kollektion[i], \
            self.__Kollektion[i+1]) = \
            (self.__Kollektion[i+1], \
             self.__Kollektion[i])
             IstFertig=0
      Endmarke = Endmarke - 1














------------
Leerzeichen (Einrückungen) und Leerzeilen sind Syntax!

Quelltextzeilen, die zu lang geraten sind, lassen sich auf mehrere Zeilen verteilen. Dazu muss das Zeichen \ als letztes Zeichen einer Zeile stehen!

 


Code eines FensterFormulars

Zum Vergleich dient das entwurfsidentische Programm PAT 01 (Patientenverwaltung), das in diesen drei Sprachen implementiert wurde.
 

== > Delphi

  • Der Quellcode von Properties der Fensterkomponenten und Eventhandling werden in einer Systemdatei verborgen.
     

  • Es werden nur Deklarationen und die Steuerung der Anwendung programmiert.

    Dadurch ist die  Fensterklasse übersichtlicher.
     

  • GUI-Builder standardmäßig.

==> Java

  • Quellcode steht in der Fensterklasse.
     

  • BlueJ hat konzeptionell keine Fensterklassen.





     

  • GUI-Builder für Java verfügbar.

==> Python

  • Quellcode steht in der Fensterklasse.







     

  • GUI-Builder verfügbar.


 


OOP.03

04. Oktober 2008   Siegfried Spolwig

page_top