Конструктордың қызметі - класс объектісінің өрістерін инициализациялау


Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 22 бет
Таңдаулыға:   

Мазмұны

Кіріспе . . . 3

  1. ОББ тілінің негізгі элементтері . . . 5Объектілер және кластар . . . 5

1. 2. Құрылымдар және кластар . . . 10

  1. Объектілі-бағытталған бағдарламалаудың негізгі принциптері . . . 17Инкапсуляция, туындау және полиморфизм . . . 17

2. 2. Мұрагерлік . . . 20

Қорытынды . . . 27

Пайдаланылған әдебиеттер . . . 28

Кіріспе

Қазіргі уақытта программалауда 3 концепция белгіленген:

♣ объектілі бағытталған бағдарламалау (ОББ) ;

♣ унификацияланған модельдеу тілі (UML)

♣ программалық қамтамаларды құру арнайы жабдықтары.

Объектілі бағытталған бағдарламалау (ОББ) негізінде программа тізбектей орындалатын нұсқау ретінде емес, ұқсас қасиеттері және ұқсас орындайтын қызметтері бар объектілердің жиынтығы ретінде қарастырылады.

Барлық объектілі бағытталған бағдарламалау тілдерінің ішінде ең кең таралған С++ тілі. Осы бағытта соңғы пайда болған Java тілінің С++ тілімен салыстырылғанда келесі кемшіліктері бар: көрсеткіштер, шаблондар, бірнеше қайтара мұрагерлік Java тілінде қарастырылмаған. Барлық синтаксис жағынан бұл тілдер ұқсас.

Қазіргі таңда Microsoft және Borland компаниялары құрған С++ тілінің Microsoft Windows жүйесінде программалау ортасы көп тараған.

Объектілі бағытталған бағдарламалау үш тұжырымға негізделген: кластар, мұрагерлік және полиморфизм.

Процедуралық тілдерде жазылған программалар негізінен инструкциялар жиынтығы болып табылады. Бұл тілдердегі программалар функциялардан тұрады, олар тізбектелген іс-әрекеттер тізімін орындайды.

Бірнеше функцияларды модульдерге біріктіруге болады, бірақ сонда да процедуралық принцип сақталады.

Процедуралық тілдерде екі түрлі берілгендер типтері бар: жергілікті (локальді) және кең ауқымды (глобальді) . Жергілікті берілгендер тек функциялардың ішінде және тек сол функцияларда ғана қолданылады, ал барлық функцияларда қолдану керек болса кең ауқымды етіп жариялайды. Функциялар мен берілгендер арасындағы күрделі байланыстар программаның құрылымын да күрделендіреді. Кең ауқымды берілгендерді функциялар шектеусіз қолдана алады. Бұл процедуралық тілдердің ең бір үлкен кемшілігі. Екінші кемшілігі, ол берілгендер мен функциялардың жеке-жеке қолданылуы. Бұл жағдайда нақты өмірдегі объектілерді дәл сипаттай алмаймыз. Мысалы егер объект машина болса, онда оның қасиеттері (мінездемесі) - двигательдің күші, есіктер саны болады, ал іс-әрекеті ретінде мысалы, тормозды басуды жатқызуға болады. Яғни қасиеттерге программада берілгендерді, ал іс-әрекеттерге программада функцияларды сәйкестендіруге болады. Іс-әрекет дегеніміз, объектінің сырттан берілген әсерге жауабы.

1. ОББ тілінің негізгі элементтері

1. 1. Объектілер және кластар

Объектіге-бағытталған бағдарламалаудың негізі болып объект саналады. Объект деп - мәліметтер және олармен жұмыс істеу әдістерінің жиынтығы аталады. Объектілі -бағытталған бағдарлама деп - объектілер және олардың өзара әрекеттесу тәсілдерінің жиынтығы аталады.

Өмірде объект ретінде компанияның бөлімдерін - бухгалтерия, сату бөлімі, кадр бөлімі т. б. алуға болады. Компанияның бөлімдерге бөлінуі оны құрылымдық ұйымдстырудың маңызды бөлігі болып табылады.

Бөлімдердің арасында олардың орындайтын қызметтері үйлестіріледі және әр бөлім өзіне тиісті ғана ақпараттармен жұмыс атқарады: бухгалтерияда - еңбек жалақысымен, сату бөлімінде - әрбір маманға байланысты ақпараттармен т. б.

Бөлімдегі қызметкерлер тек сол бөлімге қатысты ақпараттармен ғана жұмыс істей алады. Бөлімдерге бөлу және олардың қызметтерінің белгіленуі компанияның жұмысын қатаң қадағалауға мүмкіндік береді.

Сату бөлімі; Кадр бөлімі; Финанс бөлімі; Корпоративтік қатынас

ОББ программаның орындалу процесімен байланысты емес. Ол тек программаның ұйымдастыруына ғана қатысты.

ОББ тілінің негізгі элементтері:

* Объект

- Физикалық объектілер (көше қозғалысын модельдеудегі автомобильдер; электр тогын модельдеудегі схема элементтері; экономика моделін құрудағы елдер; диспечерлік қызметін модельдеудегі ұщақтар) .

- Интерфейс элементтері (терезелер; меню; графиктік объектілер (сызықтар, тік төртбұрыш), маус, клавиатура, дискілік құрылғылар, принтерлер) .

- Берілгендер құрылымы (массивтер; стектер; байланысқан тізімдер; екілік ағаштар) .

- Адамдар тобы (қызметкерлер; студенттер; сатып алушылар; сатушылар) .

- Ақпараттар сақталуы (құрал-саймандар тізімі; қызметкерлер тізімі; сөздіктер; әлемдегі қалалардың географиялық координаттары) .

- Берілгендердің қолданушылар типтері (уақыт, бұрыштардың шамасы, комплексті сандар, жазықтықтағы нүктелер,

- Компьютер ойындарына қатысушылар (жарыстағы автомобильдер, шахмат, дойбыдағы позициялар, тірі табиғатпен байланысты ойындағы жануарлар, ойындағы достар мен дұшпандар) .

* Кластар.

Барлық тілдерде стандартты типтер бар, мысалы int.

Кластар объектілер қандай берілгендер мен функциялардан тұратындығын анықтайтын форма болып табылады. Класты жариялау барысында ешқандай объект құрылмайды, мысалы int типі int айнымалының бар екендігін білдермейтін сияқты. Яғни класс өзара ұқсас объектілер жиынтығын сипаттау үшін қажет ұғым.

Класқа тиісті объекті кластың экземпляры деп аталады.

* Мұрагерлік.

Класс ұғымы мұрагерлік ұғымына алып келеді.

С++ тілінде басқа кластарды анықтайтын класты негізгі класс деп атайды. Қалған кластар, оның қасиеттерін мұрагерлікке алады да, өздерінің қосымша басқа қасиеттерін қабылдайды. Оарды туынды класстар деп атайды. Құрылған класс басқа программаларда да қолданылуы үмкін. Бұл қасиет класс кодын қайталап қолдануға мүмкіндік береді.

* Полиморфизм және асыра жүктеу.

Операциялар мен функциялардың олардың қолданып тұрған шамалардың типтеріне байланысты әр түрлі қызметтерді атқаруы полиморфизм деп аталады. Егер, мысалы, +, = операцияларын басқа жаңа типті операндалармен жұмыс істеу мүмкіндіктерімен қматамасыз етсек, онда бұл операцияларды асыра жүктелген операциялар деп атайды.

Объектілер және кластар

Айнымалы өз типіне қандай қатынаста болса, объект те өз класына сондай қатынаста.

Класс анықтамасы class қызметші сөзінен басталып, класс есімі жазылады.

Құрылым сияқты, класс денесі фигуралық жақшаға алынып, «нүктелі үтір» белгісімен аяқталады.

ОББ -дың негізгі ерекшелігі берілгендерді жасыра алуы.

Бұл терминнің мағынасы мынада: берілгендер класс ішінде орналасқан және кластан тыс орналасқан функциялардың санкциясыз қолданылуынан қорғалған. Егер кейбір берілгендерді қорғау керек болса, онда оларды private қызметші сөзі бар класс бөлігінде орналастыру керек. Мұндай берілгендер тек класс ішінде ғана қолданылады. Public қызметші сөзімен сипатталушы берілгендер кластан тыс та қолданылады.

Кластың ішінде қолданылады (жабық)

Кластан тыс (ашық) қолданылады

Класс құрамына кіретін функциялар класс әдістері болып табылады.

Класс ішіндегі берілгендер мүшелер немесе класс өрістері деп аталады.

Келесі мысалды қарастырайық:

// smallobj. Сpp

# include

class smallobj

{private:

int somedata;

public:

void setdata (int d)

{somedata = d; }

void showdata ( )

{ cout << “ өрістің мәні = “ << somedata << endl; }

};

int main ( )

{ smallobj s1, s2;

s1. setdata (1066) ;

s2. setdata (1776) ;

s1. showdata ( ) ;

s2. showdata ( ) ;

return 0;

}

setdata( ) и showdata( ) функциялары класс ішінде анықталған, яғни функция коды класс анықтамасында орналасқан. Осындай түрде анықталған класс әдісі кірістірілген анықтама болып табылады.

main ( ) фуекциясында s1, s2 екі объектісі анықталған. Объектіні анықтау объектіні сақтауға қажетті жады бөлу болып табылады.

Объект есімін класс әдісімен байланыстыру үшін нүкте (. ) операциясын қолданады.

Нүкте операциясы класс мүшесін алу операциясы деп аталады.

Кейбір объектілі бағытталған программалау тілдерінде объект әдісін шақыруды хабарламалар деп атайды.

Мысалы:

// englobj. cpp

# include

class Distance

{ private:

int feet

sloat inches;

public:

void setdist (int ft, sloat in )

{feet = ft; inches =in; }

void getdist ( )

{cout << ”feet =”; cin>> feet;

cout << “inches =”; cin >> inches;

}

void showdist ( )

{cout << feet << “’ “ << inches < };

int main ( )

{Distanse dist1, dist2;

dist1. setdist (11, 6. 25) ;

dist2. getdist ( ) ;

cout << ”n dist1 = “; dist1. showdist ( ) ;

cout << ”n dist2 = “; dist2. showdist ( ) ;

cout < return 0;

}

11 және 6, 25 аргументтерімен шақырылған dist1 объектісінің өрістерінің мәні setdist() функциясының көмегімен беріледі, ал dist2 объектісінің өрістерінің мәнін getdist() функциясының көмегімен қолданушы енгізеді.

Englobj мысалы класс объектісінің өрістерін инициализацияау үшін класс әдісін қолданудың екі тәсілін көрсетеді. Объект өрістерін құру кезінде программа сәйкес тәсілді шақырудан гөрі, автоматты инициализациялау ыңғайлы.

Инициализациялаудың мұндай түрі - конструктор деп аталатын ерекше класс әдісінің көмегімен іске асырылады. Конструкторларда бірнеше ерекшеліктер бар. Біріншіден, конструктор аты класс атымен дәл сәйкес келеді. Екіншіден, конструкторда қайтарылушы мәні болмайды. Бұл конструктордың жүйе арқылы шақырылатындығымен түсіндіріледі. Яғни конструктордың мәнді қайтаратын программа немесе функцияның болмайтындығын көреміз. Конструктордың қызметі - класс объектісінің өрістерін инициализациялау.

Объект құрыларда ерекше класс әдісі - конструктор шақырылады. Объектіні жоюда автоматты түрде шақырылатын әдіс деструктор деп аталады. Деструктор есімі конструктор есімімен сәйкес келеді және есім алдында ~ тильда белгісі қойылады.

Объектілерді бірнеше тәсілмен жоя алмайтындықтан деструкторлар мәндерді қайтармайды және аргументтері болмайды.

Деструктордың негізгі жұмысы - объект құруда конструктормен бөлінген жадыны босату.

Объектілерді функцияға берілу синтаксисі жай айнымалыларды беру синтаксисімен бірдей. Бірақ мынадай маңызды бөліктері бар:

♣ Класс әдісіне әруақытта класс өрістерін қолдануға мүмкіндік бар (объект (. ) операциясы арқылы әдіспен байланысады) .

♣ Класс әдісін басқа да объектілер қолдана алады. Олар оның аргументі түрінде қарастырылады.

Класс әдісінің әрбір шақырылуы осы кластың белгілі бір объектісімен байланысты (статикалық функцияны шақырудан басқа) . Әдіс объектінің кез келген, ашық және жабық мүшелерін есімі арқылы тікелей ала алады. Сонымен қатар әдіс нүкте операциясы арқылы өз класының басқа объектілерінің мүшелерін де ала алады, олар әдіс аргументі ретінде қаралады.

  1. Құрылымдар және кластар

Құрылымдарды класс ретінде де қолдануға болады. Құрылым мен кластың формальды айырмашылығы мынада: келісім бойынша кластың барлық мүшелері жасырын болады, ал құрылымның барлық мүшелері ашық болады.

рrivate қызметші сөзін класс мүшелері үшін көрсету міндетті емес:
class foo class foo
{ private: { int data1;
int data1; public:
public: void func ( ) ;
void func ( ) ; };
};
Құрылым үшін public қызметші сөзі келісім бойынша беріледі.
struct foo
{ void func ( ) ;
private:
int data1;
};

Программистер құрылымды берілгендерді біріктіру үшін, ал кластарды берілгендер мен функцияларды біріктіру үшін қолданады.

Кластар, объектілер және жады

Әрбір объектінің өзінің тәуелсіз берілгендер өрісі болады. Бір кластың барлық объектілері бір әдісті қолданады.

Класты құру кезінде класс әдісі құрылады және бір-ақ рет компьютер жадысына орналастырылады. Әрбір объектінің өз мәндер жинағы бодады, объектілер өрістері жалпы боламуы керек. Объектілерді құруда әрбір берілгендер жинағы жадыдан белгілі бір бос орын алады.

Объект 1 Объект 2 Объект3

data1 data1 data1

data2 data2 data2

function1

function 2

Кластың статикалық берілгендері

Егер кластың берілгендер өрісі static қызметші сөзімен сипатталса, онда бұл өрістің мәні сол кластың барлық объектілері үшін бірдей болады. Кластың статикалық берілгендері барлық объектілер қандай да бірдей мәндерді бірлесе қолданғанда пайдалы.

Статикалық өріс өз мінездемесі бойынша статикалық айнымалыға ұқсас: ол класс ішіде ғана көрінеді, ал оның өмірінің уақыты программаның өмір сүру уақытымен сәйкес келеді. Бірде бір класс объектісі болмаса да, статикалық айнымалысынан өзгешелігі - кластың статикалық өріс бар болады.

Кластың статикалық айнымалысын қолдану мысалын қарастырайық.

Берілген мезетте әр объекті өзі сияқты жадыда қанша объект бар екендігін білу қажет болсын. Бұл жағдайда класқа count есімді статикалық айнымалыны енгізіеміз. count айнымалысын барлық объектілір көре алады және олардың бәрі бірдей мәнді көреді.

// statdata. cpp
# include < iostream. h>
class foo
{ private:
static int count;
public:
foo ( )
{ count ++; }
int getcount ( )
{ return count; }
};
int foo : : count = 0; // count анықтамасы
int main( )
{ foo f1, f2, f3;
cout << ”Объект саны = “ < cout << “Объект саны = “ < cout << “Объект саны =” < return 0; }

f1, f2, f3 объектілері үшін main( ) функциясында конструктор үш рет шақырылады, count өрістерін инкременттеу де үш рет болады.
getcount ( ) әдісі count -ты қайтарады. Барлық жағдайда да бұл әдіс бір мәнді қайтарады.
Объект саны =3
Объект саны =3
Объект саны =3
Егер статикалық емес, автоматты count өрісін қолдансақ, онда конструктор әр объекті үшін бұл өрістің мәнін бірге арттырар еді.
Объект саны =1
Объект саны =1
Объект саны =1

Класс өрістерінің жеке-жеке жариялануы және анықталынуы

Статикалық өрістерді анықтау жай өрістерді анықтау тәрізді жүргізілмейді. Жай өрістертер жарияланады, яғни компиляторға оның есімі және типі хабарланады, содан соң анықталады, яғни компилятор айнымалыға типіне сәйкес жадыдан орын бөледі. Осының бәрі жалғыз ғана сипаттаудың көмегімен жүргізіледі. Ал статикалық өрістер үшін көрсетілген әрекеттер екі оператордың көмегімен жүргізіледі. Өрісті жариялау кластың ішінде жүргізіледі, ал оны анықтау кластың сыртында орындалады.

Егер статикалық өрістің анықталуы кластың ішінде орналасса, онда класты анықтау оған жадыдан орын бөлуді көрсетпейді деген қағиданы бұзған боламыз. Сондықтан статикалық өрістің анықталуын кластың сыртында орналастыру арқылы программа орындалуын бастағанға дейін оған жадыдан бір рет қана орын бөлінеді.

Объект 2

Объект 1 Объект 3

Автоматты Автоматты Автоматты

өрістер өрістер өрістер

data1 data1 data1

data2 data2 data2

Статикалық өрістер

data3

data4

Статикалық өрістермен кең ауқымды айнымалырадың арасында ұқсастық бар. Статикалық өрістермен жұмыс істеу барысында компилятор тани алмайтын оңай қателіктер жіберуге болады. Егер стаикалық өріс класта жарияланып, бірақ анықталмаса компилятор ескерту хабарламасын бермейді. Байланыстырушы редакторы бұл қатені анықтағанша программа қатесіз деп есептелінеді. Байланыстырушы редактор «анықталмаған кең ауқымды айнымалыны қолдануға ұмтылу» деген хабарламаны шығарады.

Тұрақты әдістер

Тұрақты әдістер кластың өрістерінің мәндерін өзгертпейді.
//constfu. cpp
class aClass
{ private: int alpha;
public: void nonFunc( )
{alpha=99; }
void conFunc ( ) const //қате
{alpha=99; }
};

Функцияны тұрақты ету үшін оның прототипінен кейін, бірақ денесінің алдында const қызметші сөзін жазу керек. Егер функцияның жариялануы және анықталынуы бөлек берілсе, онда const модификаторы екі рет жазылады. Тек кластың өрістерінің мәндерін оқитын әдістерді тұрақты әдістер ретінде қолдану тиімді.

Мысалы, Distance класының showdist() әдісін тұрақты ету керек. Сол сияқты engeset. cpp программасындағы add_dist() әдісі де берілгендердің мәндерін өзгертпеу керек. Егер функция аргументін сілтеме арқылы беріп, сонымен қатар оның мәнін өзгертпеу крек болса, онда аргументті тұрақты ету керек. Ол үшін add_dist() әдісінің d2 параметрі const модификаторымен сипатталған.

//engeconst. cpp
#include
class Distance
{private:
int feet
fleat inches;
public:
Distance () :feet (0), inches (0. 0)
{}
Distance (intft, float in) : feet (ft),
Inches (in)
{}
void getdist( )
{cout<>feet;
cout<> inches; }
void showdist( ) const
{cout< Distance add_dist (const Distance &) const; };
Distance Distance : : add_dist (const Distance &) const;
{ Distance temp;
// feet=0; ошибка
// d2. feet=0 ошибка
temp. inches = inches + d2. inches;
if (temp. inches >= 12. 0)
{temp. inches - = 12. 0;
temp. feet = 1; }
temp. feet + = feet + d2. feet;
return temp; }
int main ( )
Distance dist1, dist3;
Distance d2 (11, 6. 25) ;
dist1. getdist ( ) ;
dist3 = dist1. add_dist (dist2) ;
cout<< ” dist1=”; dist1. showdist ( ) ;
cout<< ” dist2=”; dist2. showdist ( ) ;
cout<< ” dist3=”; dist3. showdist ( ) ;
cout << endl;
return 0; }

Тұрақты объектілер

const модификаторын объектілерге де қолдануға болады. Егер объект const модификаторымен сипатталса, онда оны өзгертуге болмайды. Мұндай объектілер үшін тек тұрақты әдістерді ғана шақыруға болады. Мысалы:

// constObj. cpp
# include
class Distance
{ private:
int feet
fleat inches;
public:
Distance (intft, float in) : feet (ft), inches (in)
{}
void getdist ( )
{cout<>feet;
cout<> inches; }
void showdist ( ) const
{cout << feet<< ” ’-“ << nches < ’ ” ’; }}
int main( )
{const Distance football (300, 0) ;
// football. getdist( ) ; - қате
cout<< ” Длина поля = ”; football. showdist( ) ;
cout< return 0; }

Американдық футбол алаңының ұзындығы 300 футқа тең. football объектісі - тұрақты объект. Сондықтан тек тұрақты әдістерді ғана шақыра аламыз.

  1. Объектілі-бағытталған бағдарламалаудың негізгі , туындау және полиморфизм

Объектілі-бағытталған бағдарламалаудың негізгі принциптері:

  1. Инкапсуляция;
  2. Полиморфизм;
  3. Мұрагерлік.

ОББ-дың негізгі идеясы - ол берілгендермен осы берілгендерге қолданылатын іс-әрекеттердің объект деп аталатын бір бүтінге бірігуі.

Инкапсуляция, туындау және полиморфизм. Класс - өріс, әдіс және қасиетті өзіне бүтіндей қоса отырып, жеке тапсырмаларды шешуге тағайындалған, аяқталған құрылымдық бірлік болып табылады. Әдетте мұндай тапсырма шешімі қандай да бір мәселелер жетегінің айналымында табылатын тапсырма болады. TRichEdit класы rtf-файлдардың (Rich Text Format форматындағы файл) қуатты мәтіндік редакторын береді, ол файлды көруді және редактрлеуді ұйымдастыруға, қаріптің өлшемі мен типін сақтау мен өзгертуге, символдар жолын іздеуге және т. б. тағайындалған. Өріс, әдіс және қасиеттің мұндай бүтіндігін инкапсуляция деп атаймыз. Бұл тілде көптеген кластар бар (300 - ге жуық ), олар С++ ортасын қолданатын бағдарламашыға арналып Object Pascal тілінің құрауыштарымен - Inprise International фирмасының қызметкерлерінің көмегімен құрылған.

Мысал:

class PositiveInteger

{

private int value; // backing store

public int Value

{

get { return value; }

set

{

if (value <= 0) throw new ArgumentException("Value should be positive") ;

value = value;

}

}

}

Программист, бағдарламаны құра отырып өзінің пайдаланушы класын құрады. Мұндай кластар не айқын емес құрылады, онда программист С++ ортасының көрнекілік құралдарын қолданады, ал кластың мәтінін С++ өзі құрастырады, немесе айқын, онда программист кластың кодын Object Pascal тілінің құралдарымен өзі жазады.

Жаңа класс басқа қарапайым кластың негізінде құрылады. Ол үшін кластың тақырыбында оның аталық класын көрсету керек. Жаңа кластың тақырыбының синтаксисі мынандай түрде болады:

type className = class (ancestorClass)

мұнда className - жаңа кластың аты; ancestorClass - аталық кластың аты. Жаңа класс автоматты түрде өзінің аталық класының өрісін, әдісін және қасиеттерін иемденеді және өзінің өрісі, әдісі және қасиеттерімен толықтырылады. Кластың бұл қасиеті туындау деп аталады. Туындаудың көмегімен қарапайымнан қиынға өту әдісі арқылы, қандай болса да қиын дәрежедегі класты құруға болады. Қарапайым класс болып TObject табылады, ол өріс пен қасиеттен тұрмайды, бірақ кластың данасын құратын, жоятын, осы класқа қызмет көрсету және бағдарламаны қалыпты функциялауға арналған қандай да әдістердің жиынынан тұрады. Осының негізінде барлық аталық класқа ортақ кластың туындау ағашы құрастырылады.

Кейде аталық класта сипатталған әдістер қандай да бір себепке байланысты ұрпақ класты қанағаттандырмайды. Мұндай жағдайда ұрпақ класта аталық класта жазылғандай атпен әдіс құруға болады, бірақ жұмыс істеу принципі басқадай болады. Осыдан екі класта да бір атпен әртүрлі әдістер әрекет жасайтын болады. Полиморфизм бұл біратты әдістерді жариялауға мүмкіндігі бар туыс кластардың қасиеті.

Полиморфизмнің тізбегі келесі жолмен жүзеге асырылады:

1. Бір ғана (кем дегенде) виртуалды әдісі бар өзіндік классты құру.

2. Өзіндік класстан туындалатын жаңа классты (немесе класстарды) құру.

3. Виртуалды әдісті (немесе өзіндік класстың әдісін) жүктеу.

4. Әрбір туынды класстағы виртуалды әдісті (немесе әдістерді) шақырудағы жауап қайтару реакцияларының айырмашылығы.

Түйіндеп айтқанда, класс-ұрпақ өзінің барлық мәліметтері мен әдістерін мұрагерлеріне тапсырады. Класс-ұрпақтан туындаған класстар өзіндік класста виртуалды деп баяндалған кез келген әдісті өзгерте алады.

Мысал:

class Base

{

public virtual void Foo()

{

Console. WriteLine("I'm a Foo method in class Base") ;

}

public void Bar()

{

Console. WriteLine("I'm a Bar method in class Base") ;

}

}

class Derived : Base

{

public override void Foo()

{

Console. WriteLine("I'm a Foo method in class Derived") ;

}

new public void Bar()

{

Console. WriteLine("I'm a Bar method in class Derived") ;

}

}

  1. Мұрагерлік
... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Объектілер мен класстар
Функцияның объектілерді қайтаруы
С++(объектілі-бағытталған программалау)
С тіліндегі кластар және олардың түрлері
Объектілер және кластар
Объектіrе бaғыттaлғaн бaғдaрлaмaлaу дaму кeзеңдepі, неrізrі түсінikтep мен ұстaнымдaр
Информатиканы тереңдетіп оқытатын сыныптарда информатика сабағын өткізу әдістемесі
Point нысанының мәнін қайтаратын әдіс
Оқу жүйесінде автоматтандырылған жұмыс орнын жасаудың негізгі принциптері мен талаптары
Дельфи ортасында тізімдермен жұмыс істейтін компоненттер
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz