Обектно-ориентираното програмиране е една от най-популярните програмни парадигми. Това е така, защото той моделира както данни, така и функции и ви позволява да мислите от гледна точка на обекти от реалния свят. Класовете са основен аспект на обектно-ориентираното програмиране, тъй като осигуряват плана, от който се нуждаете, за да създавате обекти.
C# е популярен многопарадигмен език за програмиране, който използва обектно-ориентирана парадигма. В тази статия ще научите как да създавате и използвате класове в C#.
Създаване на декларация за клас
В C# класът е референтен тип, който ще съдържа нула стойност, докато не създадете нов обект от класа. За да създадете нов клас в C# ще ви трябват няколко компонента:
- Модификатор на достъп.
- The клас ключова дума.
- Името, което искате да присвоите на класа.
- Двойка отварящи и затварящи фигурни скоби (които ще обграждат атрибутите, конструкторите и методите на класа).
вътрешни класКлиент{ }
Кодът по-горе създава нов клас, който е достъпен от други класове в същия сбор (компилативен файл). C# има точно шест модификатора за достъп, които можете да използвате, за да контролирате нивата на достъпност на вашите класове, променливи и методи. Шестте модификатора на достъп са:
- публичен: всеки клас (независимо от неговия сбор) има достъп до публичния клас и неговите публични членове (атрибути, конструктори и методи).
- частен: само частният клас и неговите членове имат достъп до него.
- защитени: само производни класове (класове деца и внуци) имат достъп до защитения клас.
- вътрешни: само класове в едно и също събрание имат достъп до вътрешния клас.
- защитен вътрешен: само класове в същия сбор или производен клас от друг сбор имат достъп до защитения вътрешен клас.
- частно защитени: само производни класове в едно и също събрание имат достъп до частния защитен клас.
Деклариране и достъп до атрибути
Атрибутите са градивните елементи за класовете, които създавате. Те съхраняват чувствителни данни и обикновено имат личен или защитен модификатор за достъп. Следователно, за достъп до тези класове от външни класове ще трябва да използвате аксесори и мутатори (гетери и сетери).
C# ви позволява да декларирате вашите атрибути, мутатори и аксесоари, както следва:
вътрешни класКлиент
{
// атрибути
частенвътр Идентификационен номер;
частен име на низ;
частендвойно Обща сума;// сетери
публиченневалиденSetIdNumber(вътр Идентификационен номер){ това.IdNumber = IdNumber; }
публиченневалиденSetName(име на низ){ това.Име = Име; }
публиченневалиденSetTotal(двойно Обща сума){ това.Total = Общо; }
// получатели
публиченвътрGetIdNumber(){ връщанетова.Идентификационен номер; }
публичен низ GetName(){ връщанетова.Име; }
публичендвойноGetTotal(){ връщанетова.Обща сума; }
}
Други популярни обектно-ориентирани езици също използвайте подхода по-горе. Всъщност, ако искате създаване на Java класове, ще трябва да използвате структурата по-горе. C# обаче вече има по-лесен начин за създаване на атрибути и инструменти за достъп. В C# този клас има същата функция като горния:
вътрешни класКлиент
{
public int IdNumber { получавам; комплект; }
публичен низ име { получавам; комплект; }
публично двойно Общо { получавам; комплект; }
}
Класът по-горе съдържа това, което C# извиква Имоти, което е комбинация от атрибути (полета) и методи. с Имоти, можете да намалите наполовина вашата декларация на атрибути, мутатори и код за достъп.
Деклариране на конструктори
Конструкторите са друг основен аспект на класа. За да създадете обект от клас, ще трябва да извикате един от неговите конструктори. Всеки конструктор има незадължителен модификатор за достъп и същото име като неговия клас. За обектно-ориентираните езици за програмиране обикновено има три типа конструктори:
- Конструктор по подразбиране: не приема аргументи и предоставя на всеки атрибут стойност по подразбиране.
- Основен конструктор: приема един или повече аргументи (в зависимост от броя на променливите в класа).
- Конструктор за копиране: приема друг конструктор като аргумент.
C# има общ термин за конструкторите по подразбиране и основните конструктори по-горе – конструктори на екземпляри. Този език за програмиране също има два други конструктора (частен и статичен). Тази статия се фокусира върху трите традиционни конструктора.
Конструктор по подразбиране
// конструктор по подразбиране
публичен клиент()
{
Идентификационен номер = 0;
Име = "неизвестен";
Общо = 0;
}
Основен конструктор
// първичен конструктор
публиченКлиент(вътр IdNumber, низ Име, низ CustomerType, двойно Обща сума)
{
това.IdNumber = IdNumber;
това.Име = Име;
това.Total = Общо;
}
Конструктор за копиране
// конструктор за копиране
публичен Клиент (клиент предишен клиент)
{
това.IdNumber = предишен клиент. Идентификационен номер;
това.Име = предишен клиент. име;
това.Общо = предишен клиент. Обща сума;
}
Създаване на методи
Методите не са решаващ компонент на класа, но са полезни. Един клас може да има един или повече методи. Методът има модификатор за достъп, тип на връщане, име и тяло.
// метод
публичен низ CustomerDetail()
{
връщане " ДОКУМЕНТ ЗА САМОЛИЧНОСТ: " + Идентификационен номер + " Име: " + Име + " Обща сума: " + Общо;
}
Горният код връща низово представяне на клиентския обект.
Създаване на обекти
След като създадете пълен клас, като го оборудвате с атрибути, конструктори и метод, можете да започнете да създавате обекти, като използвате различните конструктори. За да създадете обект без атрибути, можете да използвате конструктора по подразбиране:
Клиент Джон = нов Клиент();
Редът от код по-горе създава клиент по подразбиране и го присвоява на извикана променлива Джон. с Джон, можете да получите достъп до стойността по подразбиране на всеки клиентски атрибут.
Конзола.WriteLine(Джон.Име);
Изпълнението на кода по-горе отпечатва следното в конзолата:
неизвестен
Можете също да използвате Джон променлива за достъп до всеки метод в клиентския клас.
Конзола.WriteLine(Джон.CustomerDetail());
Изпълнението на реда от код по-горе отпечатва следния изход в конзолата:
ID: 0 Име: неизвестно Общо: 0
За да създадете обект с атрибути, ще използвате основния конструктор:
Клиент Джон = нов клиент (1001, "Джон Доу", 250.20);
Конзола.WriteLine(Джон.CustomerDetail());
Изпълнението на горния код отпечатва следния изход в конзолата:
документ за самоличност: 1001 Име: ДжонСърнаОбща сума: 250.2
За да създадете копие на обекта по-горе, можете да използвате конструктора за копиране:
Клиент Джони = нов Клиент (Джон);
Конзола.WriteLine(Джони.CustomerDetail());
Изпълнението на горния код отпечатва следния изход в конзолата:
документ за самоличност: 1001 Име: ДжонСърнаОбща сума: 250.2
Както можете да видите, конструкторът за копиране е копие на основния конструктор. Конструкторът за копиране може също да вземе конструктор по подразбиране като аргумент:
Клиент Джон = нов Клиент();
Клиент Джони = нов Клиент (Джон);
Конзола.WriteLine(Джони.CustomerDetail());
Изпълнението на горния код отпечатва следния изход в конзолата:
ID: 0 Име: неизвестно Общо: 0
Вече можете да създавате и използвате C# класове
Можете да използвате обектно-ориентираната парадигма в C#, за да дефинирате класове и да създавате обекти от тях. Можете да създадете методи за всеки клас, които след това могат да работят с атрибутите на своите обекти.
Въпреки това, обектно-ориентираната парадигма не е единствената, с която трябва да сте запознати. Първите три парадигми на програмиране са императивни, обектно-ориентирани и функционални.