Udostępnij za pośrednictwem


Klasy (Przewodnik programowania w języku C#)

A klasy jest konstrukcja, która pozwala tworzyć własne niestandardowe typy grupując zmienne innych typów, metod i zdarzeń.Klasa jest rodzaju wzorzec.Definiuje dane i zachowanie danego typu.Jeśli klasa nie jest zadeklarowany jako static, kod klienta można go używać, tworząc obiektów lub wystąpienia , którym przypisano do zmiennej.Zmienna pozostaje w pamięci, dopóki wszystkie odwołania do niego wykroczenia poza zakres.W tym czasie CLR oznacza je jako czyszczeniu.Jeśli klasa jest zadeklarowana jako statycznej, następnie w pamięci istnieje tylko jedna kopia i kod klienta dostęp tylko go za pomocą klasy, nie zmiennej instancji pod nazwą.Aby uzyskać więcej informacji, zobacz Klasy statyczne i statyczni członkowie klas (Przewodnik programowania w języku C#).

W odróżnieniu od strukturach, klasy pomocy technicznej dziedziczenia, podstawową cechą Programowanie zorientowane obiektowo.Aby uzyskać więcej informacji, zobacz Dziedziczenie (Przewodnik programowania w języku C#).

Deklarowanie klas

Klasy są zadeklarowane za pomocą klasy słowa kluczowego, jak pokazano w poniższym przykładzie:

public class Customer
{
    //Fields, properties, methods and events go here...
}

class Słowo kluczowe jest poprzedzony przez poziom dostępu.Ponieważ publicznych jest używana w takim przypadku każdy może tworzyć obiekty z tej klasy.Nazwa klasy zgodna z class słowa kluczowego.Reszta z definicji jest treści klasy, gdzie zdefiniowana zachowanie i danych.Pól, właściwości, metod i zdarzeń klasy są zbiorczo nazywane elementy klas.

Tworzenie obiektów

Chociaż czasami są one używane zamiennie, klasa i obiekt są różne rzeczy.Klasa określa typ obiektu, ale nie jest sam obiekt.Obiekt jest konkretnego podmiotu oparte na klasie i jest czasami określane jako wystąpienie klasy.

Obiekty mogą być tworzone za pomocą Nowy słowa kluczowego, a po nim nazwę klasy, która obiekt zależy, jak ten:

Customer object1 = new Customer();

Po utworzeniu instancji klasy, odwołanie do obiektu jest przekazywana z powrotem do programisty.W poprzednim przykładzie object1 jest to odwołanie do obiektu, który jest oparty na Customer.To odwołanie odnosi się do nowego obiektu, ale nie zawiera same dane obiektu.W rzeczywistości można utworzyć odwołanie do obiektu bez tworzenia obiektu w ogóle:

Customer object2;

Nie zaleca się tworzenie odwołań dotyczących obiektów takich jak ten, który nie odwołuje się do obiektu, ponieważ próbuje uzyskać dostęp do obiektu poprzez odniesienie zakończy się niepowodzeniem w czasie wykonywania.Jednak dostępne są takie odniesienie do odwoływania się do obiektu, albo przez utworzenie nowego obiektu, albo przypisywana go do istniejącego obiektu, takie jak ten:

Customer object3 = new Customer();
Customer object4 = object3;

Ten kod tworzy dwa odwołania do obiektu, który odnosi się zarówno do tego samego obiektu.W związku z tym, wszelkie zmiany do obiektu poprzez object3 będą odzwierciedlane w kolejnych zastosowań object4.Ponieważ obiekty, które są oparte na klasach są określane przez odniesienie, klas są znane jako typy odwołań.

Dziedziczenie klas

Dziedziczenie jest realizowane za pomocą wyprowadzenie, która oznacza, że klasa jest uznany za pomocą klasy bazowej z której dziedziczy danych i zachowanie.Klasy podstawowej jest określony przez dołączenie dwukropka i nazwę klasy podstawowej po nazwie klasie pochodnej w następujący sposób:

public class Manager : Employee
{
    // Employee fields, properties, methods and events are inherited 
    // New Manager fields, properties, methods and events go here...
}

Klasa deklaruje klasą bazową, dziedziczy wszystkich członków, z wyjątkiem Konstruktory klasy bazowej.

W przeciwieństwie do języka C++ klasy w języku C# może odziedziczyć bezpośrednio tylko jedną klasę bazową.Jednak ponieważ sama klasa podstawowa może dziedziczyć z innej klasy, klasy może pośrednio dziedziczy wiele klas podstawowych.Ponadto klasa bezpośrednio można zaimplementować więcej niż jeden interfejs.Aby uzyskać więcej informacji, zobacz Interfejsy (Przewodnik programowania w języku C#).

Klasa może być deklarowana na streszczenie.Klasa abstrakcyjna zawiera metody abstrakcyjne mają definicji podpisu, ale nie wykonania.Nie można utworzyć wystąpienia klasy abstrakcyjne.Należy używać tylko za pośrednictwem klas pochodnych, które implementują metody abstrakcyjne.Przez constrast zamkniętych klasy nie zezwala na inne klasy dziedziczyć po nim.Aby uzyskać więcej informacji, zobacz Klasy abstrakcyjne i zapieczętowane oraz członkowie klas (Przewodnik programowania w języku C#).

Definicje klas można rozdzielić między plikami z innego źródła.Aby uzyskać więcej informacji, zobacz Klasy częściowe i metody (Przewodnik programowania w języku C#).

Opis

W poniższym przykładzie zdefiniowano public class, zawierającego pojedyncze pole, metoda i specjalną metodę o nazwie konstruktora.Aby uzyskać więcej informacji, zobacz Konstruktorzy (Przewodnik programowania w języku C#).Klasa następnie zostanie uruchomiony z new słowa kluczowego.

Przykład

public class Person
{
    // Field 
    public string name;

    // Constructor that takes no arguments. 
    public Person()
    {
        name = "unknown";
    }

    // Constructor that takes one argument. 
    public Person(string nm)
    {
        name = nm;
    }

    // Method 
    public void SetName(string newName)
    {
        name = newName;
    }
}
class TestPerson
{
    static void Main()
    {
        // Call the constructor that has no parameters.
        Person person1 = new Person();
        Console.WriteLine(person1.name);

        person1.SetName("John Smith");
        Console.WriteLine(person1.name);

        // Call the constructor that has one parameter.
        Person person2 = new Person("Sarah Jones");
        Console.WriteLine(person2.name);

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
// Output: 
// unknown 
// John Smith 
// Sarah Jones

Specyfikacja języka C#

Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.

Zobacz też

Informacje

Polimorfizm (Przewodnik programowania w języku C#)

Członkowie (Przewodnik programowania w języku C#)

Metody (Przewodnik programowania w języku C#)

Konstruktorzy (Przewodnik programowania w języku C#)

Destruktory (Przewodnik programowania w języku C#)

Obiekty (Przewodnik programowania w języku C#)

Koncepcje

Przewodnik programowania w języku C#

Programowanie zorientowane obiektowo (C# i Visual Basic)