Sdílet prostřednictvím


Třídy (Průvodce programováním v C#)

A třídy je konstrukce, která umožňuje vytvořit vlastní typy seskupením dohromady proměnné z jiných typů, metody a události.Třída se o jakousi.Definuje data a chování typu.Pokud třída není deklarován jako statický, je klientský kód použít vytvořením objekty nebo instance které jsou přiřazena proměnné.Proměnné zůstane v paměti, dokud všechny odkazy, které přesahují rozsah platnosti.V té době CLR označí jako způsobilé pro uvolňování paměti.Pokud je třída deklarována jako statické, pak existuje pouze jedna kopie v paměti a klientský kód pouze k dispozici prostřednictvím třídy, nikoli proměnné instance.Další informace naleznete v tématu Statické třídy a jejich členové (Průvodce programováním v C#).

Na rozdíl od struktur, třídy, podporu dědičnost, základní charakteristika objektově orientovaného programování.Další informace naleznete v tématu Dědičnost (Průvodce programováním v C#).

Deklarování třídy

Třídy jsou deklarovány pomocí třídy klíčové slovo, jak je znázorněno v následujícím příkladu:

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

class Klíčové slovo je předcházen úroveň přístupu.Protože veřejné se používá v tomto případě Kdokoliv může vytvořit objekty z této třídy.Následuje název třídy class klíčové slovo.Zbytek definice je tělo třídy, kde jsou definovány chování a data.Pole, vlastnosti, metody a události na třídě jsou souhrnně označovány jako členy třídy.

Vytváření objektů

I když jsou někdy zaměňují, třída a objekt jsou různé věci.Třída definuje typ objektu, ale není objekt samotný.Objekt je konkrétní subjekt, který je založen na třídě a je proto označována jako instance třídy.

Objekty mohou být vytvořeny pomocí nové klíčové slovo, které následuje název třídy, která jej bude vycházet, tímto způsobem:

Customer object1 = new Customer();

Když je vytvořena instance třídy, odkaz na objekt předán zpět programátor.V předchozím příkladu object1 je odkaz na objekt, který je založen na Customer.Tento odkaz odkazuje na nový objekt, ale neobsahuje samotná data objektu.Ve skutečnosti můžete vytvořit odkaz na objekt bez vytvoření objektu vůbec:

Customer object2;

Nedoporučujeme vytváření odkazů na objekty jako tento obrazec, který neodkazuje na objekt, protože při pokusu o přístup k objektu prostřednictvím odkazu se nezdaří v době běhu.Však odkazu lze odkázat na objektu, buď vytvořením nového objektu nebo přiřazením ke stávajícímu objektu, například:

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

Tento kód vytvoří dva odkazy na objekty, které odkazují na stejný objekt.Proto jakékoli změny objektu pomocí object3 se projeví v následné využití object4.Protože objekty, které jsou založeny na třídách jsou označovány pomocí odkazu, třídy jsou známé jako typy odkazů.

Dědičnost tříd

Dědičnost je provedeno pomocí odvození, což znamená třídy je deklarována pomocí základní třídy ze které dědí data a chování.Základní třída je určena připojením dvojtečkou a název základní třídy, následuje název odvozené třídy následujícím způsobem:

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

Třída deklaruje základní třídu, zdědí všechny členy základní třídy s výjimkou konstruktory.

Na rozdíl od C++ třídy v jazyce C# může dědit pouze přímo z jediné základní třídy.Protože samotný základní třídy mohou dědit z jiné třídy, třídy mohou nepřímo dìdit více základních tříd.Kromě toho třída může implementovat přímo více než jedno rozhraní.Další informace naleznete v tématu Rozhraní (Průvodce programováním v C#).

Třídu lze deklarovat na abstraktní.Abstraktní třída obsahuje abstraktní metody, které mají definice podpisu, ale žádná implementace.Nelze vytvořit instanci abstraktní třídy.Je lze použít pouze prostřednictvím odvozených tříd, které implementují abstraktní metody.Podle constrast uzavřených třída neumožňuje další třídy z něj odvodit.Další informace naleznete v tématu Abstraktní a uzavřené třídy a jejich členové (Průvodce programováním v C#).

Definice tříd mohou být rozděleny mezi různé zdrojové soubory.Další informace naleznete v tématu Částečné třídy a metody (Průvodce programováním v C#).

Description

V následujícím příkladu je definován veřejnou třídu, která obsahuje jedno pole, metoda a zvláštní metoda nazývaná konstruktor.Další informace naleznete v tématu Konstruktory (Průvodce programováním v C#).Třída je potom konkretizovány new klíčové slovo.

Příklad

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

Specifikace jazyka C#

Další informace najdete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.

Viz také

Referenční dokumentace

Polymorfismus (Průvodce programováním v C#)

Členové (Průvodce programováním v C#)

Metody (Průvodce programováním v C#)

Konstruktory (Průvodce programováním v C#)

Destruktory (Průvodce programováním v C#)

Objekty (Průvodce programováním v C#)

Koncepty

Průvodce programováním v C#

Objektově orientované programování (C# a Visual Basic)