previous arrowprevious arrow
next arrownext arrow
PlayPause
previous arrownext arrow
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

 

Google Translator

 

Suchen

Abonniere Blog

Kalender

Warte kurz, während wir den Kalender laden

Tag-Cloud

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

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