Třídy (Příručka programování C#)
A třídy je konstrukce, která umožňuje vytvořit vlastní typy seskupením dohromady proměnné jiných typů, metody a události.Třídy se o jakousi.Definuje data a typu chování.Pokud třída není deklarován jako statický, je kód klienta použít vytvořením objekty nebo instance jsou přiřazeny proměnné.Proměnné zůstane v paměti, dokud všechny odkazy přejít mimo rozsah.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 kód klienta pouze k dispozici prostřednictvím samotné třídy není proměnné instance.Další informace naleznete v tématu Statické třídy a členy statických tříd (Příručka programování 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 (Příručka programování 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 předchází ú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ů
Přestože jsou někdy zaměňují, třída a objekt jsou různé věci.Třída definuje typ objektu, ale není samotný objekt.Objekt je konkrétní entity založené na třídě a někdy jako instance třídy.
Objekty mohou být vytvořeny pomocí nové následuje název třídy objektu bude založena na klíčové slovo tímto způsobem:
Customer object1 = new Customer();
Když je vytvořena instance třídy, odkaz na objekt předán zpět programátora.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í všech objektů:
Customer object2;
Nedoporučujeme vytváření odkazů na objekty jako tento, 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 odkaz lze odkazovat na objekt, vytvoření nového objektu nebo přiřadit existující objekt, například:
Customer object3 = new Customer();
Customer object4 = object3;
Tento kód vytvoří dvě objekt odkazy odkazují na stejný objekt.Proto změny provedené pomocí objektu object3 se projeví v následné využití object4.Protože jsou objekty, které jsou založeny na třídách uvedených odkazem, 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 třídy základní název odvozené třídy takto:
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řídy, 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 rozhraní.Další informace naleznete v tématu Rozhraní (Příručka programování C#).
Můžete deklarovat třídu 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é třídy, které implementují abstraktní metody.Podle constrast uzavřených třída neumožňuje z ní odvozovat další třídy.Další informace naleznete v tématu Abstraktní a uzavřených tříd a členů tříd (Příručka programování C#).
Definice tříd můžete rozdělit mezi různé zdrojové soubory.Další informace naleznete v tématu Částečné třídy a metody (Příručka programování C#).
Description
V následujícím příkladu je definován veřejnou třídu, která obsahuje jediné pole, metoda a zvláštní metoda nazývaná konstruktor.Další informace naleznete v tématu Konstruktory (Příručka programování 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 naleznete 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 (Příručka programování C#)
Členy (Příručka programování C#)
Metody (Příručka programování C#)
Konstruktory (Příručka programování C#)
Destruktory (Příručka programování C#)
Objekty (Příručka programování C#)