[.net Grundlagen der objektorientierten Programmierung] (9) Klassenmitglieder (Felder, Eigenschaften, Methoden)

Dieser Artikel wurde übertragen von: https://www.cnblogs.com/yubinfeng/p/4552717.html

Die oben definierte Klasse von Personen umfasst Mitglieder: Felder, Attribute, Methoden, Ereignisse usw. Darüber hinaus sind die oben genannten verschachtelten Klassen auch Mitglieder der Klasse. 

  a. Die Mitglieder der Klasse sind unterteilt in: statische Mitglieder (statisch) und nicht statische Mitglieder 

  b. Statische Elemente werden mit statischen Elementen markiert. Wenn sie nicht markiert sind, sind standardmäßig nicht statische Elemente 

  c. Statische Elemente gehören zur Klasse, dynamische Elemente gehören zur Instanz, dh zum Objekt 

  d. Das statische Element wird von allen Instanzen der Klasse gemeinsam genutzt. Unabhängig von der Anzahl der Instanzen oder Kopien der Klasse belegt das statische Element nur einen Bereich im Speicher. Nicht statische Mitglieder erstellen in jeder Instanz der Klasse eine Speicherdomäne.    

 

Im Folgenden werden hauptsächlich die Hauptmitglieder der Klasse erläutert: Felder, Attribute, Methoden 

 

1. Mitglieder des Klassenfeldes 

   Felddeklaration: (statisch / schreibgeschützt) <Typ> <Variablenname>    

   a. Es kann als private Variable der Klasse verstanden werden, die normalerweise privat ist. 

   b. Die Definition des Feldes beginnt normalerweise mit einem Kleinbuchstaben oder "_". 

   c. Es gibt zwei Arten von Felddeklarationsmodifikatoren: statisch (statisch) und schreibgeschützt (schreibgeschützt). 

   Das Feld d ist normalerweise privat, sodass Zugriffsmodifikatoren im Allgemeinen nicht benötigt werden. 

   Beispiele:     

1 statisch int eyesCount = 2; 
2 schreibgeschützt int earCount = 2;  

  

2. Mitglieder der Klasseneigenschaften 

   a. Kann als öffentliche Variable der Klasse verstanden werden, normalerweise alle öffentlich (öffentlich) 

   b. Das Attribut verfügt über zwei Methoden: get und set. 

   Der c.get-Accessor gibt dieselben Daten wie der Attributdeklarationstyp zurück, dh, er kann beim Aufruf den Wert oder die Referenz des internen Felds abrufen. 

   Der d.set-Accessor zeigt die eingestellten Parameter nicht an. Er hat einen impliziten Parameterwert. Seine Funktion besteht darin, internen Feldern oder Referenzen der Eigenschaft beim Aufruf Werte zuzuweisen. 

   Da die Mitglieder der Klasse standardmäßig privat sind und das Attribut öffentlich ist, müssen Sie im objektorientierten Entwicklungsprozess den Modifikator public verwenden, um ein Attribut als öffentlich zu deklarieren. 

   f. Attribute können get- oder set-Accessoren ignorieren, aber nicht beide. 

   Beispiele:     

Code kopieren
1 Zeichenfolge _country; 
 2 // Lese- / Schreibattribut 
 3 öffentliche Zeichenfolge Land 
 4 { 
 5 set {_country = value;} 
 6 get {return _country;} 
 7} 
 8 // schreibgeschütztes Attribut 
 9 public string CountryOnleread 
10 { 
11 get {return _country ;} 
12}         
13 // schreibe nur Attribut 
14 öffentliche Zeichenfolge Countryonlywrite 
15 { 
16 set {_country = value;} 
17}
Code kopieren

 

6. Mitglieder der Klassenmethoden (Methode) 

      Deklaration: (Zugriffsmodifikator) <Typ> <Methodenname> {Methodenkörper} 

     Aufruf: [<Klassenname.>] | [<Name des Instanzobjekts.>] <Methodenname> ([<Liste der realen Parameter>]) 

     Definition: ist ein Mitglied der Klasse, mit der Berechnungen oder andere Verhaltensweisen durchgeführt werden

 

Statische Methoden:
     Methoden werden in Instanzmethoden und statische Methoden unterteilt (wie die zuvor erwähnten Mitglieder der Klasse). 

     In statischen Methoden können nur statische Felder aufgerufen werden, nicht statische Felder sind nicht zulässig 

Methodenparameter:

      Wertparameter : ohne Modifikatoren. Der formale Parameter in der Methode ist eine Kopie des tatsächlichen Parameters. Die Änderung des formalen Parameters wirkt sich nicht auf den Wert des tatsächlichen Parameters im Speicher aus. 

     Referenzparameter : Mit dem Modifikator ref deklariert. 

    Das Schlüsselwort ref bewirkt, dass Parameter als Referenz übergeben werden. Wenn die Steuerung an die aufrufende Methode zurückgegeben wird, werden alle an den Parametern in der Methode vorgenommenen Änderungen in der Variablen berücksichtigt.
    Um den Parameter ref zu verwenden, müssen sowohl die Methodendefinition als auch die aufrufende Methode das Schlüsselwort ref explizit verwenden.
    Die an den Parameter ref übergebenen Parameter müssen zuerst initialisiert werden. Dies unterscheidet sich von out. Die Parameter von out müssen nicht explizit initialisiert werden, bevor sie übergeben werden.
    Attribute sind keine Variablen, daher können sie nicht als Referenzparameter übergeben werden.
    Obwohl ref und out zur Laufzeit unterschiedlich behandelt werden, werden sie zur Kompilierungszeit gleich behandelt. Wenn eine Methode den Parameter ref und die andere Methode den Parameter out verwendet, können Sie diese beiden Methoden nicht überladen. Aus Kompilierungssicht sind beispielsweise die beiden Methoden im folgenden Code identisch. Wenn Sie dies versuchen, wird der Code nicht kompiliert.
    Wenn eine Methode ref- oder out-Parameter verwendet und die andere Methode diese beiden Parametertypen nicht verwendet, kann sie überladen werden.

   Codebeispiel: 

Code kopieren
// Aufruf von 
double [] numbers = new double [] {1, 2, 3, 5.5}; 
double i = 0; 
MyAddOperation (numbers, ref i);             
Console.WriteLine ("2 mal das Berechnungsergebnis ist: {0} ", i * 2); 
Console.ReadLine (); 

// Referenzparameter Methodendeklaration 
public static void MyAddOperation (doppelte [] Zahlen, ref doppeltes Ergebnis) 
{ 
    Ergebnis = 0; 
    foreach (doppelte Zahl in Zahlen) 
        Ergebnis + = num; 
    Console.WriteLine ("Das Berechnungsergebnis ist: {0}", Ergebnis); 
}
Code kopieren

  

 Ausgabeparameter : Mit dem Modifikator out deklariert. Ähnlich wie bei ref werden auch die tatsächlichen Parameter direkt bearbeitet. Das Schlüsselwort out muss sowohl in der Methodendeklaration als auch im Methodenaufruf explizit angegeben werden. Für die Deklarationsmethode out-Parameter muss die Variable nicht initialisiert werden, bevor sie an die Methode übergeben wird, da ihre Bedeutung nur für Ausgabezwecke verwendet wird. Bevor die Methode zurückgegeben wird, muss jedoch der Parameter out zugewiesen werden. 
Das Schlüsselwort out bewirkt, dass Parameter als Referenz übergeben werden. Dies ähnelt dem Schlüsselwort ref. 


Unterschiede zu ref: 
ref erfordern, dass Variablen vor der Übergabe initialisiert werden müssen. 
Obwohl als out-Parameter übergebene Variablen vor der Übergabe nicht initialisiert werden müssen, müssen Methoden aufgerufen werden, um Werte zuzuweisen, bevor die Methode zurückgegeben wird. 

Beispiele: 

Code kopieren
1 // Rufe 
 2 double [] numbers = new double [] {1, 2, 3, 5.5} auf; 
 3 double i = 0; 
 4 MyAddOperation (numbers, out i);             
 5 Console.WriteLine ("2 mal das Berechnungsergebnis Ja: {0} ", i * 2); 
 6 Console.ReadLine (); 
 7 
 8 // Deklaration der 
 Ausgabeparametermethode 9 public static void MyAddOperation (doppelte [] Zahlen, doppeltes Ergebnis) 
10 { 
11 Ergebnis = 0; 
12 foreach (doppelte Zahl in Zahlen) 
13 Ergebnis + = num; 
14 Console.WriteLine ("Das Berechnungsergebnis ist: {0}", Ergebnis); 
15}
Code kopieren

 

 Array-Parameter : Mit dem Modifikator params deklariert. Das Schlüsselwort params wird verwendet, um eine Parameterliste mit variabler Länge zu deklarieren. In die Methodendeklaration kann nur ein Parameter params aufgenommen werden. Der Parameter params ist sehr nützlich, wenn die Anzahl der Parameter variabel ist (siehe folgendes Beispiel):

 

Code kopieren
1 // Methode 
 2 
 aufrufen double [] numbers = new double [] {1, 2, 3, 5.5}; 3 Console.WriteLine ("Das Berechnungsergebnis lautet: {0}", MyAddOperation (numbers)); 
 4 
 5 // Array-Typ-Parameterdeklaration 
 6 public static double MyAddOperation (params double [] numbers) 
 7 { 
 8 double result = 0; 
 9 foreach (doppelte Anzahl in Zahlen) 
10 result + = num; 
11 return result; 
12}
Code kopieren

 

Virtuelle Methode (virtuelle Methode) 

     Das virtuelle Schlüsselwort wird verwendet, um Methoden in der Basisklasse zu ändern. Es gibt zwei Situationen für die Verwendung von virtuellen:  

    Fall 1: Die virtuelle Methode ist in der Basisklasse definiert, die virtuelle Methode wird jedoch in der abgeleiteten Klasse nicht überschrieben. Beim Aufruf der abgeleiteten Klasseninstanz verwendet die virtuelle Methode dann die von der Basisklasse definierte Methode. 

    Fall 2: Eine virtuelle Methode wird in der Basisklasse definiert und anschließend in der abgeleiteten Klasse mithilfe von override überschrieben. Beim Aufruf einer Instanz einer abgeleiteten Klasse verwendet die virtuelle Methode dann eine abgeleitete überschreibende Methode. 

Abstrakte Methode (abstrakte Methode) 

     Das Schlüsselwort abstract kann nur zum Ändern von Methoden in abstrakten Klassen verwendet werden, und es gibt keine spezifische Implementierung. Die Implementierung abstrakter Methoden muss mithilfe des Schlüsselworts override in der abgeleiteten Klasse implementiert werden. 

(Über die abstrakte Klasse wird später ausführlich erklärt)

 

Wichtige Punkte: 

1. In statischen Methoden können nur statische Felder aufgerufen werden, nicht statische Felder sind nicht zulässig 

2. Methode ohne Rückgabewert, geben Sie void ein  

Ich denke du magst

Origin www.cnblogs.com/hanguoshun/p/12728358.html
Empfohlen
Rangfolge