previous arrowprevious arrow
next arrownext arrow
PlayPause
ArrowArrow
Shadow

Wir realisieren Ihre CAD-Projekte

im AutoCAD, Inventor, Revit und Autodesk Forge Platform

Umfeld
Wir helfen Ihnen bei der Realisierung Ihrer Projekte.

Blog.CAD-Becker.de

Beiträge zu AutoCAD und dessen Vertikalprodukte.

Tipps und Tricks, viele Neuigkeiten aus der Autodesk Welt.
3 Minuten Lesezeit (660 Worte)
Empfohlen 

Visual Lisp To C#: OOPS - Was ist die objektorientierte Programmierung?

​Ich glaube, dass die größte Hürde für einen Lisp-Programmierer die objektorientierte Programmierung ist. Diese Hürde verhindert, dass sich diese Programmierer sich mit einer .NET-Framework Sprache auseinander setzen.

Was ich persönlich sehr schade finde, deshalb  möchte ich mit einem weiteren Posting zum Thema Visual-Lisp To C# auf dieses Problem eingehen.

Das Schlimmste für mich war, dass ich die Begrifflichkeiten am Anfang nicht verstanden habe und ich glaube, dass es vielen ebenso geht.

Begrifflichkeiten wie: Klasse, Objekt, Instanz, Vererbung, Überschreiben, Private, Public etc. Diese Begrifflichkeiten können schon sehr verwirrend sein. Deshalb sollte wohl mein erster Schritt hier sein so ein paar Begrifflichkeiten zu erläutern.

 
Schrottauto im Busch von Süd Afrika. Copyright 2016 by Jürgen A. Becker
Klassen-Definition eines Fahrzeugs.

​Wir fangen mit den Begriffen Klasse, Objekt und Instanz an.

Betrachten wir mal ein Auto, nicht so eins, wie ich 2016 in Süd Afrika aufgenommen habe, sondern schon ganz ernsthaft ein modernes Fahrzeug.

An diesem Beispiel können wir schon sehr einfach die Begrifflichkeiten verstehen.

Der Unterschied zwischen einer Klasse und einem Objekt oder einer Instanz ist schnell erläutert.

Die Klasse ist die Programmierung (siehe im linken Bild) oder die DNA eines Objekts. Die Klasse "lebt" nicht, sie beschreibt wie ein Objekt aussieht und was es so alles kann.

Das Objekt oder Instanz "lebt". Es wird aus ein Klasse erstellt und sieht dann, ich hoffe mal nicht, so aus wie im Bild rechts. Ein Objekt existiert und kann im Programm genutzt werden.

Eine Klasse, also der Programmcode, existiert nur einmal. Ein Objekt, aus einer Klasse instanziert, kann mehrmals existieren.

Wenn wir ein Autorennen programmieren wollten, so müssen wir nur eine Klasse "Rennwagen" programmieren mit allem, was den Rennwagen ausmacht. Danach instanzieren wir zwei oder drei Rennwagen und können diese gegeneinander antreten lassen.

Betrachten wir uns als Mensch.

Unsere DNA ist die Beschreibung in einer Klasse. Diese Beschreibung gibt es nur einmal. Sie als Leser dieses Postings ist eine Instanz oder ein Objekt dieser Beschreibung, ich, der dieses Posting gerade schreibt, ist ebenfalls eine Instanz oder ein Objekt dieser DNA.

Verstehen Sie mich bitte nicht falsch, ich möchte Sie nicht auf eine einfache Instanz einer Klasse reduzieren. Mein Ziel ist es Ihnen als Leser dieses Postings klar zu machen, was der Unterschied zwischen Klasse und Objekt bzw. Instanz ist.

Wie Sie wahrscheinlich schon bemerkt haben, ist der Begriff Instanz nicht anderes als ein Objekt.

Jetzt mal ganz konkret.

Zunächst fängt man an, die Klasse mit dem Keyword class zu deklarieren, der Zugangs Modifizierer (Access Modifier) hier public, vor class ist hier zunächst nicht interessant. 

public class Fahrzeug
{

} 

Konstruktor (Constructor)

public class Fahrzeug
{
    //Konstruktor
    public Fahrzeug()
    {

    }

} 

Immer wenn ein Objekt von einer Klasse abgeleitet oder instanziert wird, wird ein Konstruktor der Klasse aufgerufen.

Eine Klasse kann mehrere Konstruktoren mit unterschiedlichen Parameter enthalten. Der Entwickler kann innerhalb der Konstruktoren Default-Werte setzen oder andere wichtige Einstellungen oder Vorgaben machen, die bei jedem neuen Objekt wichtig sind.

Ein Konstruktor ist eigentlich eine Methode, die den selben Namen wie die Klasse besitzt.

public class Fahrzeug
{
    //Konstruktor
    public Fahrzeug()
    {

    }

    //Konstruktor
    public Fahrzeug(
        //Parameter: Name
        string Name, 
        //Parameter: Farbe
        System.Drawing.Color Farbe)
    {

    }

} 

Eine Klasse kann mehrere Konstruktoren besitzen, allerdings mit unterschiedlichen Parameter.

Im nebenstehenden Beispiel wird der Name und die Farbe des Fahrzeuges übergeben.

Zusätzliche Information

  • Wenn Sie Hilfe benötigen, helfe ich Ihnen gerne. Einfach ein E-Mail schreiben und ich melde mich zurück.
Visual Lisp To C#: OOPS - Was ist die objektorient...
Autodesk Forge: Wie übersetzt man die cURL-Dokumen...

Ähnliche Beiträge

 

Über mich

  Dipl.-Ing.
Jürgen A. Becker
Versorgungstechnik

 

Suchen

Kalender

Warte kurz, während wir den Kalender laden

Kontakt

Jürgen A. Becker

CAD-Becker.de
Detmolder Str. 786
33699 Bielefeld
Germany
Telefon
+49 (5202) 9953808 
Mobil
+49 170 870 8679
E-Mail
Juergen.Becker(at)CAD-Becker.de