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 -?

Anzeige

Aktuelle Top-Angebote der Telekom, Online-Vorteile, Attraktive Prämien

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"

Copyright

© Copyright 2019 by CAD-Becker.de

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

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

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