Објектно оријентисано програмирање је једна од најпопуларнијих програмских парадигми. То је зато што моделира и податке и функције и омогућава вам да размишљате у смислу објеката из стварног света. Класе су фундаментални аспект објектно оријентисаног програмирања јер обезбеђују нацрт који вам је потребан за креирање објеката.
Ц# је популаран програмски језик са више парадигми, који користи објектно оријентисану парадигму. У овом чланку ћете научити како да креирате и користите класе у Ц#.
Креирање декларације класе
У Ц#, класа је референтни тип, који ће садржати нула вредност док не креирате нови објекат класе. Да бисте креирали нову класу у Ц#-у, требаће вам неколико компоненти:
- Модификатор приступа.
- Тхе класа кључна реч.
- Име које желите да доделите класи.
- Пар отворених и затворених витичастих заграда (које ће обухватити атрибуте, конструкторе и методе класе).
унутрашњег класаКупац{ }
Код изнад креира нову класу којој могу приступити друге класе у истом склопу (датотека за компилацију). Ц# има тачно шест модификатора приступа које можете користити да контролишете нивое приступачности ваших класа, променљивих и метода. Шест модификатора приступа су:
- јавности: свака класа (без обзира на њен склоп) може приступити јавној класи и њеним јавним члановима (атрибутима, конструкторима и методама).
- приватни: само приватна класа и њени чланови могу да јој приступе.
- заштићени: само изведене класе (класе деце и унука) могу приступити заштићеној класи.
- унутрашњег: само класе у истом склопу могу приступити интерној класи.
- заштићена унутрашња: само класе у истом склопу или изведена класа из другог склопа могу приступити заштићеној интерној класи.
- приватно заштићено: само изведене класе у истом склопу могу приступити приватној заштићеној класи.
Декларисање и приступ атрибутима
Атрибути су градивни блокови за класе које креирате. Они садрже осетљиве податке и обично имају приватни или заштићени модификатор приступа. Стога, да бисте приступили овим класама из екстерних класа, требало би да користите приступнике и мутаторе (гетери и сеттери).
Ц# вам омогућава да декларишете своје атрибуте, мутаторе и приступнике на следећи начин:
унутрашњег класаКупац
{
// атрибути
приватниинт ИД број;
приватни стринг Име;
приватнидупло Укупно;// сеттерс
јавностипразнинаСетИдНумбер(инт ИД број){ ово.ИдНумбер = ИдНумбер; }
јавностипразнинаСетНаме(назив низа){ ово.Наме = Име; }
јавностипразнинаСетТотал(дупло Укупно){ ово.Тотал = Укупно; }
// геттерс
јавностиинтГетИдНумбер(){ повратаково.ИД број; }
јавности низ ГетНаме(){ повратаково.Наме; }
јавностидуплоГетТотал(){ повратаково.Тотал; }
}
Други популарни објектно оријентисани језици такође користите горњи приступ. У ствари, ако желите креирајте Јава класе, мораћете да користите структуру изнад. Међутим, Ц# сада има лакши начин креирања атрибута и приступа. У Ц#, ова класа има исту функцију као она изнад:
унутрашњег класаКупац
{
јавни инт ИдНумбер { добити; комплет; }
јавни стринг Име { добити; комплет; }
јавни дупли Укупно { добити; комплет; }
}
Класа изнад садржи оно што Ц# позива својства, што је комбинација атрибута (поља) и метода. Витх својства, можете преполовити своју декларацију атрибута, мутаторе и приступни код.
Декларисање конструктора
Конструктори су још један фундаментални аспект класе. Да бисте креирали објекат из класе, мораћете да позовете један од њених конструктора. Сваки конструктор има опциони модификатор приступа и исто име као и његова класа. За објектно оријентисане програмске језике генерално постоје три типа конструктора:
- Подразумевани конструктор: не узима аргументе и даје сваком атрибуту подразумевану вредност.
- Примарни конструктор: узима један или више аргумената (у зависности од броја променљивих у класи).
- Конструктор копирања: узима други конструктор као аргумент.
Ц# има кровни термин за подразумеване и примарне конструкторе изнад — конструкторе инстанце. Овај програмски језик такође има још два конструктора (приватни и статички). Овај чланак се фокусира на три традиционална конструктора.
Подразумевани конструктор
// подразумевани конструктор
јавности купац()
{
ИдНумбер = 0;
Име = "непознат";
Укупно = 0;
}
Примарни конструктор
// примарни конструктор
јавностиКупац(инт ИдНумбер, стринг Наме, стринг ЦустомерТипе, дупло Укупно)
{
ово.ИдНумбер = ИдНумбер;
ово.Наме = Име;
ово.Тотал = Укупно;
}
Цопи Цонструцтор
// конструктор копирања
јавности Клијент (претходни купац)
{
ово.ИдНумбер = претходниКупац. ИД број;
ово.Назив = претходниКупац. Име;
ово.Укупно = претходниКупац. Укупно;
}
Креирање метода
Методе нису кључна компонента класе, али су корисне. Класа може имати једну или више метода. Метода има модификатор приступа, тип повратка, име и тело.
// метод
јавности стринг ЦустомерДетаил()
{
повратак " ИД: " + ИдНумбер + " име: " + Име + " Укупно: " + Укупно;
}
Горњи код враћа стринг приказ објекта клијента.
Креирање објеката
Након креирања комплетне класе, опремања атрибутима, конструкторима и методом, можете почети да креирате објекте користећи различите конструкторе. Да бисте креирали објекат без атрибута, можете користити подразумевани конструктор:
Купац Јован = Нова Цустомер();
Горњи ред кода креира подразумеваног купца и додељује га променљивој која се зове Јохн. Витх Јохн, можете приступити подразумеваној вредности сваког атрибута клијента.
Конзола.ВритеЛине(Јохн.Име);
Извршавање кода изнад исписује следеће у конзоли:
Непознат
Такође можете користити Јохн променљива за приступ било којој методи у класи клијента.
Конзола.ВритеЛине(Јохн.ЦустомерДетаил());
Извршавање линије кода изнад исписује следећи излаз у конзоли:
ИД: 0 Име: непознато Укупно: 0
Да бисте креирали објекат са атрибутима, користили бисте примарни конструктор:
Купац Џон = нови купац (1001, "Н.Н. лице", 250.20);
Конзола.ВритеЛине(Јохн.ЦустомерДетаил());
Извршавање кода изнад исписује следећи излаз у конзоли:
ИД: 1001 Име: ЈохнДоеУкупно: 250.2
Да бисте креирали копију објекта изнад, можете користити конструктор копирања:
Муштерија Џони = Нова Купац (Џон);
Конзола.ВритеЛине(Јохнни.ЦустомерДетаил());
Извршавање кода изнад исписује следећи излаз у конзоли:
ИД: 1001 Име: ЈохнДоеУкупно: 250.2
Као што видите, конструктор копирања је копија примарног конструктора. Конструктор копирања такође може узети подразумевани конструктор као аргумент:
Купац Јован = Нова Цустомер();
Муштерија Џони = Нова Купац (Џон);
Конзола.ВритеЛине(Јохнни.ЦустомерДетаил());
Извршавање кода изнад исписује следећи излаз у конзоли:
ИД: 0 Име: непознато Укупно: 0
Сада можете да креирате и користите Ц# класе
Можете користити објектно оријентисану парадигму у Ц#-у да дефинишете класе и креирате објекте од њих. Можете креирати методе за сваку класу које онда могу да раде на атрибутима својих објеката.
Међутим, објектно оријентисана парадигма није једина са којом морате да будете упознати. Три главне програмске парадигме су императивне, објектно оријентисане и функционалне.