Добавил:
2200 7008 9480 6099 TKFF БЛАГОДАРНОСТЬ МОЖНО ТУТ ОСТАВИТЬ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ 2025 / 4 курса_МТУСИ / 1 КУРС / Информатика / С# для чайников - Мюллер.pdf
Скачиваний:
0
Добавлен:
04.06.2025
Размер:
53.3 Mб
Скачать

А вот во что он превращается в С# 7.0 при использовании членов с кодом :

к.

=>

=>

Определение методов доступа к событиям с кодом

f(. ( - e.53(! 7#eB5ar(. ,- #2eB-(-Н-#7de#e#37(-(B2 e,!7,B-(

7#eB5ar(.

e#1l)(p-r(e.#. T35p32!dee .#7# - цS#B LB#-#un.1lST (ear#.23#-(-#

- wъцuы

.S

 

И вот как выглядит тот же метод доступа к событию в С# 7.0:

ы.

ю

,

уйоС аьoнлК тК ­)oд,чь. с.)(дьч().Прьь.дК

щ ) .в)ръъ().Прь(дК

ьрКзоК

В ЭТО Й ГЛ А В Е . . .

)) Определение одноrо класса через другой )) Разница между "является" и "содержит"

)) Подстановка объекта одного класса вместо другого )) Построение статических членов и членов классов )) Включение конструкторов в иерархию наследования

от)) Вызов конструктора базового класса

бъектно-ориентированное программирование основано на четырех принципах: управления доступом (инкапсуляция), наследования дру­ гих классов, возможности соответствующего отклика (полиморфизм)

и возможности косвенного обращения одного объекта к другому (интерфейсы). Наследование - распространенная концепция. Вы - человек . Вы наследу­ ете ряд свойств класса Human (человек), таких как зависимость от воздуха, еды, умение разговаривать и т.п. Класс Human наследует потребность в воздухе, воде и еде от класса Mamrnal (млекопитающее), а тот, в свою очередь, - от класса

Animal (животное).

Возможность такой передачи свойств очень важна. Она позволяет экономно описывать вещи и концепции. Например, на вопрос ребенка "Что такое утка?" можно ответить "Это птица, которая крякает". Независимо от того, что вы по­ думали о таком ответе, он содержит значительное количество информации.

Наследование класса

т

,(У,) !,

!N,1N,1".

,#.!!

 

,!(,1"N,1'1 -(#

6У,"N,1N,1". ,(". (#(,1 (,1!

1!)#

." #-!N,1И ", -0!

,.#'1'1

1.

. _9",,

N,1#'1.!,")#N,1

"'1 ,.#'1'1# .",!_

",,9

 

 

Ж

 

 

 

Я'1$!9)'1$$

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n и

 

 

 

 

 

 

 

 

 

 

n -

 

n и , и

 

 

 

-ДЖд#,

,

'1$$

3 9) '1$$

 

Я'1$!9 '1$$

 

 

 

 

-

Я#,

 

:>(,1#.

3(,1.

п!

п

N,1,

 

 

 

 

р

9(,1'1$(,1)!

_С )#

#'1!

N , 13(,1S п! п(,1.

N,1,S ,Р

 

 

 

 

 

 

 

 

 

 

 

 

Я

 

 

 

 

 

 

 

 

 

 

n ,

 

 

,

 

 

 

 

 

 

 

 

,

 

,

з

 

 

 

 

 

 

 

 

 

n з

 

 

 

n

yng ЧАСТЬ 2

BЬ)( (.1B)Ь1.(Г0))(B

.( .0ВВ 1.(Г0)1B )0

// Создание объекта подкласса

Console . WriteLine ( "Paбoтa с объектом подкласса : " ) ;

SubClass sc = new SubClass ( ) ;

sc . dataMemЬer = 2 ; sc. SomeMethod ( ) ;

sc . SomeOtherMethod ( ) ;

// Ожидаем подтверждения пользователя

Console . WriteLine ( "Haжмитe <Enter> для " +

Console . Read ( ) ;

"завершения программы. . . " ) ;

.каоо BaseClass едролокоз мам исойки \ вкон ианнто и дреоте\ сотел SomeMethod ( ) . .отел Main ( ) оеьлаот ееrомтЬс еаtеиеае мкаооа BaseClass и раеетаот о нисt .каоо SubClass наоколыотояет мкаооа BaseClass дытос раьс ок кония исони мкаооа BaseClass деоко лвеотевиР и ед1оио конии мкаооад

puЬlic class SubClass : BaseClass

ПОТРЯСАЮЩЕЕ Н АСЛЕДОВАН И Е

Чтобы было проще разбираться в окружающем мире, люди составляют обшир­ ные системы. Тузик является частнымслучаемсобаки, которая относится к соба­ кообразным, входящим в состав млекопитающих, и т.д. Так легче познавать мир.

В объектно-ориентированных языках, таких как С#, говорится, что класс Student наследует класс Person. Кроме того, Person является базовым клас­ сом для класса Student. Наконец, можно сказать, что Student ЯВЛЯЕТСЯ Person (использование прописных букв - общепринятый метод отражения уникального типа связи). Эта терминология применяется в С++ и других объ­ ектно-ориентированных языках программирования.

Заметьте, что хотя Student и ЯВЛЯЕТСЯ Person, обратное не верно. Person НЕ ЯВЛЯЕТСЯ student (такое выражение следует трактовать в общем смысле, по­ скольку конкретный человек, конечно же, может оказаться студентом). Суще­ ствует много людей, являющихся членами класса Person, но не членами класса Student. Кроме того, класс Student обладает свойствами, которых нет у класса Person. Например, класс Student имеет средний балл, а Person - нет.

Свойство наследования транзитивно. Например, если определить новый класс GraduateStudent как подкласс класса Student, то он тоже будет наследником Person. Это значит, что будет выполняться следующее: если GraduateStudent

ЯВЛЯЕТСЯ Student и Student ЯВЛЯЕТСЯ Person, то GraduateStudent ЯВЛЯЕТСЯ Person.

ГЛАВА 1 6 Наследование 351

D

m

СОЧЕ,,

НИОПЗИ

ЧИИС!ЧНЗЗН s

, ТЕХm· ,,П !Н ИЗОПИЗОЗП

ЗОПИИИСБ:Н ОН!!И

ИИСЧp!ОООНСИЕОЧЕОЗСОН П ИИЧО!ОЗНПЧИИСд

nИОО! t

acl n !ИЕОИЗОНМНЕИ ООD

m0,,МЕИИО ЧИИo!ИИСИН

ЗАПОМНИ!

Ч

tТЕХМc ЧИИКИЕИООТЕХDgc!ТЕХtТЕХЧПl

gЕИНЗЧИ!ОПНИИСИОО!ЧНЗЗН

s

,ТЕХ0

m,, Н ОН!!И ИОПС'

ЕИОО! DgcТЕХ

ЧПТЕХ l tnТЕХЧПi!ОООНОЧОg ИИО

Е ЗНКОПОЧО!ЧНЗЗНd..СПО!

СНОЧННЕЕС ИН

!ННИПСЧЧБ!МООН!: !Н! ОО

ИИЧОМО!М!НЧОЗН

 

 

 

" I

" I

" ' J I

Зачем,,н о ледQв 1;1.ие

 

,QЖ,a,Jt,.,,

 

Jtgc,Ж.n,ankA.na Jt,В.gф

пr.Зи,

 

 

gB,В,ankA,.и,ankAет

ankA,

 

,Jt.,n,r

 

rB,.еи,ankAеЗ,Ж,

 

,QankAJt,r.,Jt

 

c, ЗЖ,Jt,и,B

Jt c.,и,QQ,

 

JtJt,с

a,

c.,О

,BBg

 

ankA,В,

Jt,B

 

,.,a,

r,.,Jt,

 

JtJt,a,ankAJtQ,е QJt,

QankAJt,Я

с;

c.,

,c,Q,

,,

 

ЗЖ,QQ,

 

 

яЯa.,З, рr,Ж,,

Jt,В

,

Jt,rB,В.,QankAе

 

 

 

 

 

 

 

 

 

 

 

,ankA.rВag

.,

 

,.,ankAеЗ,Вag

.,Jtg

c.,,ЗankA

Q.rЖn

 

,QЖ, B,В

,

Jt,Qc,Жеr,Jt,ankAеQnО,ankA,JtgB,c.,О.,BB.gB,

 

З,Bc,.,.ankA ,B,

 

 

 

 

т,.,Jt.,B

 

.

.,r,ankAЗrc.,О.,BB.,О,

 

 

,r,Qc,

,.,n

Q a.rО,B,

,rЖ,QankAnB, ,

Ж,Jt, ,QЗ,u

a,nankA,Же.,QankA,. О,,­

Ж, c.,,rJt,a,ankA,Ж,

,JtankA,B,r,Ж,u.

,.,

ankA

c.,,

,.,Jt,ankA.,Jtrе

B,a,Же Q .,r.,r,ankAЗ,

aЖn ankA,.,JtgОф,

иr.rc,Jtт

r,ЖankA,Jt

,

О,,З

a,В,

,QЖ,

ankA,ankA,ankA,З Jtg QЗ,В,ankA, .,r.,r,ankAЗ, .,Jtgф

B,Ж,ankAЗ,Jt

,ankAJt,.ankA,c.,З ,О,

,.QankA.rB,.ankA,.,n

,.,

.,

В,т .,ankAк, Jt,rB,В.,QankA,

c.,

 

c.,,ЗankA,.,Jt,.,,

,

Qr,.З,

.,Jt,

B,a,Ж,

B,ЗQ,B,Же.,

 

,Qc,Жеrr ankAQna,akA,Ж,

 

,QankA,QankA,.,u .,

ankA,ЖеЗr, ,ankAg,О,uЗ,т .,

,

З.rc.g,

rrЖgтankA,З,,З З,Bс

c.,

QQ,.g

,Ж,

a,В, aJt,О,ankA,Ж,р

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,QЖ,a,Jt,.,,

c,rJt,Ж

,ankA.,QankA.,,ankArВ е ,B,

 

н,,Qn

c.,О.,BB.g,

 

З,Bc,с

 

.,.ankAgт­,ankA,.g,ЗЖ,QQgB,ОrankArgankA,a,cankA,е

.,Jt,.g

 

aЖnc.,B,.,.,n

 

Jt .,Jtgф

c.,с

 

О.,BB,ф

r,r

Jt.,Q,.,n

 

Jt .,ф

З,.a,

,

Же.gф ,rB,.,.,

­

т,rн,QankAJtr

н,ЗЖ,QQ

.,QЖ,ar,ankAQn Q

 

 

 

,О,

Jt,rB,В.,QankA,u

.,JtgB

c,aЗЖ,QQ,B

З,ankA,с

.g

Q,a,.В,ankAJtQ,

.,,rф,a,Bg,

a,r,JtЖ,.,n

, ,rB,.,.,n­

 

QЖr,r,Jtgu

ЗЖ,QQ

.,c,Q,.

З,B

 

ankA,.gB

r Jt,Q B,В,ankAc.,Q

.,

rgankAJt,rB,е В.,QankA,

Jt.,Q,ankAJtе .,О,

 

,rB,.,.,n

 

,

.,QЖ,a,Jt,.,,

 

,З,rgJt,,ankAQn,a,.QankAJt,..gB

Qc,Q,r,B

 

,Qc,Же

r,Jt,.,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,..,n

Jt,rB,В.,QankAеankA,QQJtnr,.

.,

Q ankA.,ankAc.,,Brе н,QankAJt,B c.,B,.,

 

.,n

.,QЖ,a,Jt,.,n

 

.,aQankA,Jt,BQ,ankAr,и, З,Оa,

Jtg .,QЖ,ar,ankA,r,r,Jtg

ЗЖ,QQр

352 ЧАСТЬ 2 Объектно-ориентированное программирование на С#

Соседние файлы в папке Информатика