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.
5 Minuten Lesezeit (900 Worte)
Empfohlen 

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

Im vorherigen Posting habe ich versucht zu erläutern was eine Klasse und ein Objekt ist. Im neuen Posting zum Thema werden zwei wichtige Elemente einer Klasse erläutert, nämlich die Methode (Methods) und der Eigenschaften (Properties).


Methoden  

​Methoden einer Klasse sind im Prinzip Funktionen, die ein Objekt ausführen kann, z.B. in unserem Beispiel kann ein Fahrzeug bremsen und beschleunigen.

Methoden werden zunächst einmal als "void" deklariert, dann folgt der Name der Methode mit einer öffnenden und schließenden Klammer.

In einem späteren Posting werden wir uns um diese Klammern und um die Deklaration der Methode noch kümmern müssen.

Innerhalb dieser Methode wird das implementiert, was sie ausführen soll, z.B. beim Bremsen die Geschwindigkeit zu verringern und beim Beschleunigen die Geschwindigkeit zu erhöhen.

public void Beschleunigen()
{

}

public void Bremsen()
{

} 
 

Eigenschaften

​Eigenschaften eines Objektes sind sehr schnell erklärt. Sie beschreiben das Aussehen und Verhalten eines Objekts, z.B. die Breite oder die Farbe eines Fahrzeugs.

Im folgenden Beispiel wird die Eigenschaft m_Breite als double deklariert und auf den Wert 0.0 gesetzt, die Farbe m_Color als System.Drawing.Color und auf Weiß gesetzt.

//Eigenschaft Breite
private double m_Breite = 0.0;

//Eigenschaft Farbe
private System.Drawing.Color m_Color = 
        System.Drawing.Color.White; 

Kapseln

Schwierig wird es erst, wenn man z.B. das Kapseln betrachtet.

Es gibt Eigenschaften eines Objekts, die von außen nicht zu beeinflussen sind, z.B. die Breite und es gibt Eigenschaften, die nur indirekt beeinflussbar sind, z.B. die Geschwindigkeit.

Wir müssen die Vorgänge innerhalb, das können z.B. Methoden und Eigenschaften sein, von den Vorgängen die außerhalb des Objekts ablaufen voneinander trennen.

Für einen Lisp-Entwickler ist das sehr schwer zu verstehen. Betrachten Sie ein Objekt doch einfach mal als einen Gegenstand in Ihrer eigenen Umgebung, z.B. ein Fernsehgerät.

Wenn Sie mit Ihrer Fernbedienung die Lautstärke des Geräts erhöhen, haben Sie keinen Zugang zu den eigentlichen Vorgängen im Fernsehgerät. Sie können nicht direkt in das Gerät fassen und dort die Vorgänge starten, sondern nur über Ihre Fernbedienung. Die Vorgänge innerhalb des Geräts werden vor Ihnen versteckt. In der objektorientierten Programmierung heißt das gekapselt.

Access Modifier 

​Und hier kommt der Begriff des Access Modifiers ins Spiel.

Sie haben Access Modifier in meinen Codes schon gesehen, nämlich private und public.

Die Access Modifier definieren, ob Methoden oder Eigenschaften außerhalb eines Objekts zur Verfügung stehen. In unserem Beispiel müssen die Methoden Beschleunigen und Bremsen außerhalb zur Verfügung stehen, deshalb werden sie als public deklariert.

Mit der Breite des Fahrzeugs ist das etwas komplizierter. Hier müssen wir eine Trennung zwischen dem Außen und dem Inneren vornehmen. Es existiert eine innerer Definition der Breite (m_Breite) und der Farbe (m_Farbe) und eine public Eigenschaft Breite und Farbe.

/// <summary>
/// Die Eigenschaft - Breite -, die nach außen zur Verfügung steht.
/// </summary>
public double Breite
{
    get
    {
        return m_Breite;
    }

    set
    {
        m_Breite = value;
    }
}

/// <summary>
/// Die Eigenschaft - Farbe -, die nach außen zur Verfügung steht.
/// </summary>
public Color Color
{
    get
    {
        return m_Color;
    }

    set
    {
        m_Color = value;
    }
} 

Beide public Eigenschaften geben den entsprechenden Wert der inneren Eigenschaft über ein return zurück.

Die public Eigenschaft implementiert entweder ein get oder ein set oder beides, wie in unserem Beispiel.

Eigentlich ganz einfach  

Nach der Deklaration oder Definition einer private Variablen, direkt hinter der Deklaration der Klasse, sollten Sie überlegen, ob diese auch nach Außen sichtbar und / oder veränderbar sein soll. Ist dem so, dann erstellen Sie einfach eine public Eigenschaft wie nebenstehend gezeigt.

Der vollständige Code bis hierher

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CP.Forge.Components.Fahrzeuge
{
    public class Fahrzeug
    {
        //Eigenschaft Breite
        private double m_Breite = 0.0;

        //Eigenschaft Farbe
        private System.Drawing.Color m_Color = System.Drawing.Color.White;

        /// <summary>
        /// Die Eigenschaft - Breite -, die nach außen zur Verfügung steht.
        /// </summary>
        public double Breite
        {
            get
            {
                return m_Breite;
            }

            set
            {
                m_Breite = value;
            }
        }

        /// <summary>
        /// Die Eigenschaft - Farbe -, die nach außen zur Verfügung steht.
        /// </summary>
        public Color Color
        {
            get
            {
                return m_Color;
            }

            set
            {
                m_Color = value;
            }
        }

        public Fahrzeug()
        {

        }

        public Fahrzeug(string Name, System.Drawing.Color Farbe)
        {

        }


        public void Beschleunigen()
        {

        }

        public void Bremsen()
        {

        }

    }
}
 

Zusätzliche Information

  • Benötigen Sie Hilfe, dann helfe ich gerne. Sagen Sie einfach Bescheid. Meine Kontakte finden Sie über den Menüpunkt "Über uns"
Visual Lisp To C#: OOPS - Was ist die objektorient...
Visual Lisp To C#: OOPS - Was ist die objektorient...

Ähnliche Beiträge

 

Über mich

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

 

Suchen

Kalender

Warte kurz, während wir den Kalender laden

Tag-Cloud

Personal Dienstleister CAD Powerpointfolien SecureLoad Datentypen VLAX Kopieren fehlgeschalgen Umgrenzung Viren Schöne Zeichnung Revisionswolke Hochgestellte Zahl Höhekote temporäre Dateien Autodesk Lynn Allen Ford DPI Skaling 2018 2-legged angenommener Schnittpunkt Enter Punktwolke Externe Referenz QRCode Oscar Schulung BIM Surface Pro4 Inventor Zoom Wiederherstellen Richtung umkehren XRef Shift Taste assoc Profil Volvo SetByLayer Netzwerk Entertaste Cloud Accelerator Personaldienstleister Datenverknüpfung Drehen Schnellzugriffs-Werkzeugkasten Fusion 360 Return Layerdialog unbenannte Objekte europäische Datenschutz Richtlinie OSNAP Surface Book vonLayer Suchen refenziert sich selbst Text Online-Seminar Rechte Maustaste 3-legged Schriftfeld Naviswork Taschenrechner Request Bemaßung Claudius Peters shift http Hybrid Architektur Microsoft Surface Pro 4 Netzwerk Lizenz Rechner Ultra HD 3D-Druck defekte Zeichung Fusion Update Barcode Darmstadt Anischtfenster Richtung Zwischenablage Überschreibung HSMWORKS History Ansichtsfenster Zeichnungs Name Docking .Net Core Listen Forge OFang Rechtsklickanpassung DevCon Linientyp RestSharp AutoCAD LT Objekte isolieren MAXACTVP Hardwarebeschleunigung byLayer BIM 360 BAK Transparenz Generative Design Microsoft Surface Book Volvo Ocean Race Umschalttaste externe Referenz Skalierung Netload Bereinig Eigenschaft Produktschlüssel ViewCube SV$ Speichern Layer frieren Webservice Design Automation API Excel Vererbung Rechtsklick Revisionswolken Kabeltrasse Attribut Objektfang Einstellung Bezug Architekten Beschriftungsmaßstäbe Surface Lisp Plotten Werkzeugpalette SSL-Zertifizierung Hotfix Maßstab Whitepaper löschen Laden Interview Genertive Design Appload Image OOPS OBO-Bettermann Autodesk CAM Sicherungsdatei Einfügen Block Layer Überschreibung PUK Freedom fremde Zeichnung Autoriserung Texthöhe Objekte zoomen 3D Plot Maßstab Übersetzung cURL nach C# bewegen Hololens Youtube Update 2018 AU Datensicherheit Cloud Forge DevCon STRG Autodesk Forge Industrie 4.0 Maya OSMODE XREF Schrift Plot-Maßstab CAD-Becker.de Microsoft Sonderzeichen Autodesk Fusion 360 Scheinselbstständigkeit Lizenz Objekteigenschaft Anmeldung Plotstiltabellen Objekte wählen AutoCAD leere Texte AC$ Linienstärke PDF Text einrahmen Recruiter TrustedPath Bereinigen Linientypfaktor internationaler Befehlssatz Hohe Auflösung BIM 360 API Autodesk Gallery CAD-Becker Niedaks Layer Temporäre Dateien Neu erstellen Security cURL Benutzeroberfläche WHIPTHREAD C# Vorlagen HSM SELECTIONOFFSCREEN RevWolke Design Center Sichtbarkeit Viewer Optionen Schraffur MoveBak 3-Legged Autorizierung Zeichnungen verschicken Befehlshistory Internationaler Befehlssatz Views Öffnen AutoCAD Update Kabelrinne ServicePack OAuth Layout Rechnen Video Auflösung AutoCAD 2019 Performance Variable Autorisierung MText Gummiband Linie Returntaste Befehlsübersetzung Befehls Übersetzung eTransmit Mitte zwischen zwei Punkte Attribut hinzufügen Vorlage Sicherheit Wipeout Solid DText Schnittpunkt HTTP-Request Geschwindigkeit Plot Fehlerbericht https Objektwahl Kabeltragsystem Lizenz Server gefüllte Flächen Beschriftungsmaßstab Erhebung Surface Pro 4 Objektfang Plotstil Deklaration Visual Lisp Varia

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