Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Ergänzungswissen (3): Klasse

C#-Ergänzungswissen (3): Klasse

黄舟
黄舟Original
2017-02-07 15:15:091053Durchsuche

ist ein abstraktes Konzept.

Beispielsweise beschreibt die Klasse „Hund“ einige Merkmale eines Hundes, wie Gewicht, Größe, Alter, Brüllen usw.

public class Dog
  {
  string dogBreed;//犬种
  int weight; //体重
  int height; //升高
  int age; //年龄
  public void bellow()
  {
  Console.WriteLine("旺旺");
  }
  }

Diese Hundeklasse ist abstrakt und beschreibt einige Merkmale, nicht einen bestimmten Hund.

Definieren wir den Hund eines Nachbarn „Daha“, der zur Klasse „Hund“ gehört.

Dog Daha = new Dog();

Instanziieren Sie das Objekt, das „Daha“ erstellt. Anschließend können Sie eine detaillierte Beschreibung des Objekts „Daha“ abgeben. Die Hunderasse „Daha“ ist beispielsweise ein Husky mit einem Gewicht von 35 Kilogramm usw.

Daha.dogBreed = "Husky";

Daha.weight = 35;

……

Nachdem er nachgegeben hat, brüllt „Daha“

Daha.bellow(); Dies ist die Brüllmethode eines Hundes

Hinweis: Eigenschaften können nicht direkt der Klasse „Hund“ zugewiesen werden. Genau wie int = 8; ist es bedeutungslos. Man kann nicht sagen, dass Hunde das gleiche Gewicht, die gleiche Größe oder die gleiche Rasse haben, ohne sich auf einen bestimmten Hund zu beziehen.

Der größte Vorteil einer Klasse besteht darin, dass sie die Eigenschaften und das Verhalten einer Entität in einer unabhängigen Codeeinheit kapseln kann. Gemäß dem obigen Beispiel kapselt die Klasse „Dog“ die Attribute „Rasse“, „Größe“, „Gewicht“ und „Alter“ des Hundes sowie die Brüllmethode.

Zu den Zugriffstypen gehören Öffentlich, Privat, Geschützt (zugänglich durch Vererbung), Intern und Geschützt intern (zugänglich durch Vererbung). Verfügbar für Klassen, Felder, Methoden, Eigenschaften und Konstruktoren.

Klassen können Folgendes enthalten: Felder, Eigenschaften, Konstruktoren und Methoden.

Klassenmitgliedsmethode:

Syntax:

Zugriffstyp Rückgabetyp Methodenname (akzeptiert Parameter)

{Methodenkörper}

Der Zugriffstyp ist standardmäßig öffentlich

Zum Beispiel:

  Public void Method(int i , string s,…….)
  {方法体}

Mehrere Methoden: Der Methodenname ist derselbe, aber die Parameter sind unterschiedlich

public string d(int i , int j)
  { }
  public void d(string i)
  { }
  public void d(int i)
  { }
  public int d(char d)
  {
  return 0;
  }

Klassenkonstruktor:

Neu initialisiert Mitgliedsvariablen beim Erstellen eines Objekts. Der Funktionsname des Konstruktors ist derselbe wie der Klassenname. Es kann mehrere Konstruktoren geben, genau wie mehrere Methoden.

Beispiel:

class Dog
  {
  Public Dog(string dogBreed,int Weight)
  {
  weight = Weight;
  this.dogBreed = dogBreed;
  }
  Public Dog(string dogBreed)
  {
  this.dogBreed = dogBreed;
  }
  string dogBreed;//犬种
  int weight; //体重

}

Das obige Beispiel enthält zwei mehrere Konstruktoren, die unterschiedliche Parameter akzeptieren.

Dies stellt die aktuelle Instanz dar (bezogen auf das aktuelle Objekt), das dogBreed-Feld der Dog-Instanz.

Klassenmitgliedsvariablen (Felder):

Die Hunderasse und das Gewicht im obigen Beispiel sind Mitgliedsvariablen dieser Klasse. Es kann zum Zeitpunkt der Definition initialisiert werden, anstatt jede Variable im Konstruktor zu initialisieren.

Klassenmitgliedsattribute:

C# stellt den get;set;-Accessor bereit. Verwenden Sie Attribute, um Klassendaten zu kapseln.

Beispiel:

private int height;
  public int Height
  {
  get { return weight; } 读取
  set { weight = value; } 赋给
  }

Im obigen Beispiel können andere Klassen die Höhe nicht direkt lesen und können nur über den Accessor darauf zugreifen.

 Der Zugriffstyp kann vor dem Festlegen festgelegt werden.

Objektzerstörung:

Destruktor, Destruktordeklaration in C#:

~textClass()
  {
  析构处理
  }

Es kann auch geschrieben werden als:

 textClass.Finalize()
  {
  析构处理
  Base.Finalize();
  }

Das Obige ist der Inhalt von C#-Ergänzungswissen (3): Kategorie. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn