SlideShare une entreprise Scribd logo
1  sur  20
1
2. Классы и объекты в C#
Объектно-ориентированное программирование
() Владислав Лавров, vlavrov.com
2
Технологическое определение
Класс – описание структуры объекта и методов работы с ним.
Объект – структура данных, содержащая описание свойств внешнего
объекта программирования.
Метод – функция, работающая с объектом.
2.1. Классы и их экземпляры как основа объектной модели
() Владислав Лавров, vlavrov.com
3
Синтаксическое определение на языке программирования
Класс – это тип данных, определяемый программистом.
Тип данных – форма представления данных с набором операций.
Объект – переменная класса.
() Владислав Лавров, vlavrov.com
4
Классы позволяют группировать в единое целое данные и функциональность,
моделируя объекты реального мира.
Класс может содержать в своем теле:
• поля,
• методы,
• свойства
• события.
Поля определяют состояние, а методы – поведение будущего объекта.
() Владислав Лавров, vlavrov.com
5
Пример.
Класс, который должен хранить данные об имени сотрудника, его
идентификационном номере и текущей заработной плате.
Помимо этого в классе определены два метода – GiveBonus() для увеличения
заработной платы сотрудника и DisplayStats() для вывода всех имеющихся
данных об этом сотруднике.
2.2. Реализация класса в C#. Конструкторы класса
() Владислав Лавров, vlavrov.com
6
Название класса
Закрытые переменные
Конструкторы
Пример реализации класса в C#
() Владислав Лавров, vlavrov.com
7
Конструктор по умолчанию
Конструктор класса
— специальный метод, который вызывается во время построения класса
Пользовательский конструктор
() Владислав Лавров, vlavrov.com
8
Бывают двух видов:
• Конструкторы по умолчанию. Задача – инициализация полей
значениями по умолчанию.
• Пользовательские конструкторы. Задача – инициализация полей
предопределенными пользователем значениями.
Конструкторы в C#
() Владислав Лавров, vlavrov.com
9
• Если в теле класса не определен явно ни один конструктор, то всегда используется
«невидимый» конструктор по умолчанию.
• Имя конструктора всегда совпадает с именем класса. Конструкторы не имеют
возвращаемых значений.
• Если в классе имеется пользовательский конструктор, и при этом требуется
создавать экземпляры класса с использованием конструктора по умолчанию, то
конструктор по умолчанию должен быть определен в теле класса явно, иначе
возникнет ошибка на уровне компиляции.
Замечания по реализации конструкторов в C#
() Владислав Лавров, vlavrov.com
10
2.3. Ключевое слово this
Основное применение ключевого слова this состоит в том, чтобы
разрешать неоднозначность контекста, которая может возникнуть, когда
входящий принимаемый параметр назван так же, как поле данных
внутренней переменной-члена класса.
Принимаемые параметры
Внутренние переменные-члены класса
() Владислав Лавров, vlavrov.com
11
Ключевое слово this (продолжение)
Чтобы избежать конфликта, можно определить для принимаемых
переменных имена, отличные от имен переменных-членов класса.
Пример возможной дисциплины именования
переменных-членов класса
() Владислав Лавров, vlavrov.com
12
Еще одно применение ключевого слова this
Техника под названием сцепление конструкторов или
цепочка конструкторов (constructor chaining)
Второй конструктор принимает один параметр
и перенаправляет вызов главному
конструктору с тремя параметрами
Главный конструктор принимает три параметра
() Владислав Лавров, vlavrov.com
13
Модификаторы доступа:
• Public – член объекта (метод или свойство) доступен всем;
• Protected – член объекта доступен только самому объекту и его потомкам;
• Private – член объекта является закрытым и не доступен за его пределами;
• Internal – член объекта доступен только в пределах текущей сборки;
Внимание (!) Никогда не следует делать поля открытыми, это плохой стиль.
Для обращения к полю, рекомендуется использовать методы доступа set и get.
2.4. Видимость членов класса в C#
Неправильно Правильно
() Владислав Лавров, vlavrov.com
14
Свойства – отдельные структуры данных. Заменяет использование методов.
Методы доступа set и get могут иметь модификаторы доступа.
По умолчанию методы доступа создаются открытыми (public) для общего
использования.
Если нужно сделать так, чтобы свойство нельзя было изменить, то set можно объявить
как private
В этом случае свойство EmpID не может быть изменено извне класса, потому что к
нему нет доступа.
Однако к нему можно получить доступ на запись внутри текущего класса.
Запрет только на внешний доступ.
2.5. Определение свойств в C#
() Владислав Лавров, vlavrov.com
15
Определение
свойств
Пример определения свойств в C#
() Владислав Лавров, vlavrov.com
16
Метод – это набор действий, который рассматриваются как единое целое и может быть
выполнен в ходе работы программы.
Модификаторы доступа:
• Public – модификатор общедоступности метода (метод доступен всем);
• Private – метод будет доступен только из класса, в котором определен данный
метод (действует по умолчанию);
• Protected – метод будет доступен как из класса, в котором он определен, так и из
любого производного класса;
• Internal – метод будет доступен из всех классов внутри сборки, в которой он
определен. Из-за пределов этой сборки обратиться к нему будет нельзя;
• Protected internal – действует как protected или как internal
2.6. Определение методов в C#
() Владислав Лавров, vlavrov.com
17
Пример реализации метода в C#
() Владислав Лавров, vlavrov.com
18
2.7. Статические методы и методы экземпляров
Статический метод может быть вызван напрямую через уровень класса, без
необходимости создавать хотя бы один экземпляр объекта данного класса.
Если член класса объявляется как static, то он становится доступным до
создания любых объектов своего класса и без ссылки на какой-нибудь
объект. С помощью ключевого слова static можно объявлять как переменные,
так и методы.
() Владислав Лавров, vlavrov.com
19
Пример реализации статического метода
() Владислав Лавров, vlavrov.com
20
Вызов метода экземпляра в C#
Для вызова метода экземпляра необходимо сначала создать объект класса,
в котором определен данный метод. Затем метод вызывается чрез объект
другого класса.
() Владислав Лавров, vlavrov.com

Contenu connexe

Tendances

Шаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASPШаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASPSergey Nemchinsky
 
Object-Oriented Programming in Java.pdf
Object-Oriented Programming in Java.pdfObject-Oriented Programming in Java.pdf
Object-Oriented Programming in Java.pdfBharath Choudhary
 
Lec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsTuruu Tsogt
 
ג'אווה - תכנות מונחה עצמים - ממשקים
ג'אווה - תכנות מונחה עצמים - ממשקיםג'אווה - תכנות מונחה עצמים - ממשקים
ג'אווה - תכנות מונחה עצמים - ממשקיםמורן אלקובי
 
Uml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot netUml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot netmekhap
 
Collections in Java
Collections in JavaCollections in Java
Collections in JavaKhasim Cise
 
1. Типы данных. Операции. Ввод и вывод C#
1. Типы данных. Операции. Ввод и вывод C#1. Типы данных. Операции. Ввод и вывод C#
1. Типы данных. Операции. Ввод и вывод C#Olga Maksimenkova
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Sergey Nemchinsky
 
Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기경원 이
 

Tendances (20)

Lecture 4 нийлмэл удамшил
Lecture 4 нийлмэл удамшилLecture 4 нийлмэл удамшил
Lecture 4 нийлмэл удамшил
 
лекц-3
лекц-3лекц-3
лекц-3
 
Шаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASPШаблоны разработки ПО. Шаблоны GRASP
Шаблоны разработки ПО. Шаблоны GRASP
 
Object-Oriented Programming in Java.pdf
Object-Oriented Programming in Java.pdfObject-Oriented Programming in Java.pdf
Object-Oriented Programming in Java.pdf
 
Sw203 Lecture4 Class Object
Sw203 Lecture4  Class ObjectSw203 Lecture4  Class Object
Sw203 Lecture4 Class Object
 
Sw203 Lecture7 Method Override
Sw203 Lecture7  Method OverrideSw203 Lecture7  Method Override
Sw203 Lecture7 Method Override
 
Lec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunkts
 
ג'אווה - תכנות מונחה עצמים - ממשקים
ג'אווה - תכנות מונחה עצמים - ממשקיםג'אווה - תכנות מונחה עצמים - ממשקים
ג'אווה - תכנות מונחה עצמים - ממשקים
 
Лекц-3
Лекц-3Лекц-3
Лекц-3
 
Pp Lect2 1
Pp Lect2 1Pp Lect2 1
Pp Lect2 1
 
Database 3
Database 3Database 3
Database 3
 
Uml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot netUml class diagram and packages ppt for dot net
Uml class diagram and packages ppt for dot net
 
Cs203 lecture13 composition
Cs203 lecture13 compositionCs203 lecture13 composition
Cs203 lecture13 composition
 
10. funtions and closures IN SWIFT PROGRAMMING
10. funtions and closures IN SWIFT PROGRAMMING10. funtions and closures IN SWIFT PROGRAMMING
10. funtions and closures IN SWIFT PROGRAMMING
 
C# classes objects
C#  classes objectsC#  classes objects
C# classes objects
 
Collections in Java
Collections in JavaCollections in Java
Collections in Java
 
1. Типы данных. Операции. Ввод и вывод C#
1. Типы данных. Операции. Ввод и вывод C#1. Типы данных. Операции. Ввод и вывод C#
1. Типы данных. Операции. Ввод и вывод C#
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"
 
Massiv presentation
Massiv presentationMassiv presentation
Massiv presentation
 
Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기
 

Similaire à Классы и объекты С#

C++ Базовый. Занятие 08.
C++ Базовый. Занятие 08.C++ Базовый. Занятие 08.
C++ Базовый. Занятие 08.Igor Shkulipa
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5Technopark
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.Igor Shkulipa
 
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.C# Desktop. Занятие 02.
C# Desktop. Занятие 02.Igor Shkulipa
 
C++ осень 2013 лекция 4
C++ осень 2013 лекция 4C++ осень 2013 лекция 4
C++ осень 2013 лекция 4Technopark
 
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Anton Moiseenko
 
презентация кметодическим указаниям к лаб. работам
презентация кметодическим указаниям к лаб. работампрезентация кметодическим указаниям к лаб. работам
презентация кметодическим указаниям к лаб. работамstudent_kai
 
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеЛекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеmetaform
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Javametaform
 
C++ Базовый. Занятие 09.
C++ Базовый. Занятие 09.C++ Базовый. Занятие 09.
C++ Базовый. Занятие 09.Igor Shkulipa
 
АРК-ПЗ-1.pptx
АРК-ПЗ-1.pptxАРК-ПЗ-1.pptx
АРК-ПЗ-1.pptxrobete3065
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansmetaform
 
углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]Technopark
 
C++ осень 2013 лекция 5
C++ осень 2013 лекция 5C++ осень 2013 лекция 5
C++ осень 2013 лекция 5Technopark
 
C++ осень 2012 лекция 2
C++ осень 2012 лекция 2C++ осень 2012 лекция 2
C++ осень 2012 лекция 2Technopark
 
презентация конспекта лекций
презентация конспекта лекцийпрезентация конспекта лекций
презентация конспекта лекцийstudent_kai
 
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsNoveo
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Javametaform
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7Technopark
 

Similaire à Классы и объекты С# (20)

Наследование и полиморфизм
Наследование и полиморфизмНаследование и полиморфизм
Наследование и полиморфизм
 
C++ Базовый. Занятие 08.
C++ Базовый. Занятие 08.C++ Базовый. Занятие 08.
C++ Базовый. Занятие 08.
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
 
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
 
C# Desktop. Занятие 02.
C# Desktop. Занятие 02.C# Desktop. Занятие 02.
C# Desktop. Занятие 02.
 
C++ осень 2013 лекция 4
C++ осень 2013 лекция 4C++ осень 2013 лекция 4
C++ осень 2013 лекция 4
 
Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.Java Core. Lecture# 2. Classes & objects.
Java Core. Lecture# 2. Classes & objects.
 
презентация кметодическим указаниям к лаб. работам
презентация кметодическим указаниям к лаб. работампрезентация кметодическим указаниям к лаб. работам
презентация кметодическим указаниям к лаб. работам
 
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеЛекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследование
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
C++ Базовый. Занятие 09.
C++ Базовый. Занятие 09.C++ Базовый. Занятие 09.
C++ Базовый. Занятие 09.
 
АРК-ПЗ-1.pptx
АРК-ПЗ-1.pptxАРК-ПЗ-1.pptx
АРК-ПЗ-1.pptx
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeans
 
углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]углубленное программирование на C++. лекция no.5 [4.0]
углубленное программирование на C++. лекция no.5 [4.0]
 
C++ осень 2013 лекция 5
C++ осень 2013 лекция 5C++ осень 2013 лекция 5
C++ осень 2013 лекция 5
 
C++ осень 2012 лекция 2
C++ осень 2012 лекция 2C++ осень 2012 лекция 2
C++ осень 2012 лекция 2
 
презентация конспекта лекций
презентация конспекта лекцийпрезентация конспекта лекций
презентация конспекта лекций
 
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, generics
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7
 

Plus de Ural Federal University named after First President of Russia B.N. Yeltsin

Plus de Ural Federal University named after First President of Russia B.N. Yeltsin (20)

2016 ВКР Черемискина Н.А.
2016 ВКР Черемискина Н.А.2016 ВКР Черемискина Н.А.
2016 ВКР Черемискина Н.А.
 
2016 ВКР Гребнева Н.В.
2016 ВКР Гребнева Н.В.2016 ВКР Гребнева Н.В.
2016 ВКР Гребнева Н.В.
 
2016 ВКР Имашева А.А.
2016 ВКР Имашева А.А.2016 ВКР Имашева А.А.
2016 ВКР Имашева А.А.
 
Введение в методы agile
Введение в методы agileВведение в методы agile
Введение в методы agile
 
ООП. Рекомендуемые информационные ресурсы
ООП. Рекомендуемые информационные ресурсыООП. Рекомендуемые информационные ресурсы
ООП. Рекомендуемые информационные ресурсы
 
Методоллогии Agile
Методоллогии AgileМетодоллогии Agile
Методоллогии Agile
 
3. Общая характеристика АСУ
3. Общая характеристика АСУ3. Общая характеристика АСУ
3. Общая характеристика АСУ
 
3. Информация и ее роль
3. Информация и ее роль3. Информация и ее роль
3. Информация и ее роль
 
Образовательная программа ИСТ на кафедре ТИМ УрФУ
Образовательная программа ИСТ на кафедре ТИМ УрФУОбразовательная программа ИСТ на кафедре ТИМ УрФУ
Образовательная программа ИСТ на кафедре ТИМ УрФУ
 
1. Кафедра ТИМ УрФУ
1. Кафедра ТИМ УрФУ1. Кафедра ТИМ УрФУ
1. Кафедра ТИМ УрФУ
 
магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 09.04.02 ист на кафедре тим урфу+магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 09.04.02 ист на кафедре тим урфу+
 
магистратура 22.04.02 металлургия на кафедре тим+
магистратура 22.04.02 металлургия на кафедре тим+магистратура 22.04.02 металлургия на кафедре тим+
магистратура 22.04.02 металлургия на кафедре тим+
 
1.5 тп (технологические подходы)+
1.5 тп (технологические подходы)+1.5 тп (технологические подходы)+
1.5 тп (технологические подходы)+
 
1.4 тп (общие принципы разработки)+
1.4 тп (общие принципы разработки)+1.4 тп (общие принципы разработки)+
1.4 тп (общие принципы разработки)+
 
1.3 тп (источники ошибок)+
1.3 тп (источники ошибок)+1.3 тп (источники ошибок)+
1.3 тп (источники ошибок)+
 
2014 Сабиров Е.Р. презентация КП по ПБД
2014 Сабиров Е.Р. презентация КП по ПБД2014 Сабиров Е.Р. презентация КП по ПБД
2014 Сабиров Е.Р. презентация КП по ПБД
 
2014 Мищенко К.В. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД2014 Мищенко К.В. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД
 
2014 Пильщиков С.Н. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД2014 Пильщиков С.Н. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД
 
2014 диплом Терехова А.Ю
2014 диплом Терехова А.Ю2014 диплом Терехова А.Ю
2014 диплом Терехова А.Ю
 
2014 диплом Мухаметшин Р.Р
2014 диплом Мухаметшин Р.Р2014 диплом Мухаметшин Р.Р
2014 диплом Мухаметшин Р.Р
 

Классы и объекты С#

  • 1. 1 2. Классы и объекты в C# Объектно-ориентированное программирование () Владислав Лавров, vlavrov.com
  • 2. 2 Технологическое определение Класс – описание структуры объекта и методов работы с ним. Объект – структура данных, содержащая описание свойств внешнего объекта программирования. Метод – функция, работающая с объектом. 2.1. Классы и их экземпляры как основа объектной модели () Владислав Лавров, vlavrov.com
  • 3. 3 Синтаксическое определение на языке программирования Класс – это тип данных, определяемый программистом. Тип данных – форма представления данных с набором операций. Объект – переменная класса. () Владислав Лавров, vlavrov.com
  • 4. 4 Классы позволяют группировать в единое целое данные и функциональность, моделируя объекты реального мира. Класс может содержать в своем теле: • поля, • методы, • свойства • события. Поля определяют состояние, а методы – поведение будущего объекта. () Владислав Лавров, vlavrov.com
  • 5. 5 Пример. Класс, который должен хранить данные об имени сотрудника, его идентификационном номере и текущей заработной плате. Помимо этого в классе определены два метода – GiveBonus() для увеличения заработной платы сотрудника и DisplayStats() для вывода всех имеющихся данных об этом сотруднике. 2.2. Реализация класса в C#. Конструкторы класса () Владислав Лавров, vlavrov.com
  • 6. 6 Название класса Закрытые переменные Конструкторы Пример реализации класса в C# () Владислав Лавров, vlavrov.com
  • 7. 7 Конструктор по умолчанию Конструктор класса — специальный метод, который вызывается во время построения класса Пользовательский конструктор () Владислав Лавров, vlavrov.com
  • 8. 8 Бывают двух видов: • Конструкторы по умолчанию. Задача – инициализация полей значениями по умолчанию. • Пользовательские конструкторы. Задача – инициализация полей предопределенными пользователем значениями. Конструкторы в C# () Владислав Лавров, vlavrov.com
  • 9. 9 • Если в теле класса не определен явно ни один конструктор, то всегда используется «невидимый» конструктор по умолчанию. • Имя конструктора всегда совпадает с именем класса. Конструкторы не имеют возвращаемых значений. • Если в классе имеется пользовательский конструктор, и при этом требуется создавать экземпляры класса с использованием конструктора по умолчанию, то конструктор по умолчанию должен быть определен в теле класса явно, иначе возникнет ошибка на уровне компиляции. Замечания по реализации конструкторов в C# () Владислав Лавров, vlavrov.com
  • 10. 10 2.3. Ключевое слово this Основное применение ключевого слова this состоит в том, чтобы разрешать неоднозначность контекста, которая может возникнуть, когда входящий принимаемый параметр назван так же, как поле данных внутренней переменной-члена класса. Принимаемые параметры Внутренние переменные-члены класса () Владислав Лавров, vlavrov.com
  • 11. 11 Ключевое слово this (продолжение) Чтобы избежать конфликта, можно определить для принимаемых переменных имена, отличные от имен переменных-членов класса. Пример возможной дисциплины именования переменных-членов класса () Владислав Лавров, vlavrov.com
  • 12. 12 Еще одно применение ключевого слова this Техника под названием сцепление конструкторов или цепочка конструкторов (constructor chaining) Второй конструктор принимает один параметр и перенаправляет вызов главному конструктору с тремя параметрами Главный конструктор принимает три параметра () Владислав Лавров, vlavrov.com
  • 13. 13 Модификаторы доступа: • Public – член объекта (метод или свойство) доступен всем; • Protected – член объекта доступен только самому объекту и его потомкам; • Private – член объекта является закрытым и не доступен за его пределами; • Internal – член объекта доступен только в пределах текущей сборки; Внимание (!) Никогда не следует делать поля открытыми, это плохой стиль. Для обращения к полю, рекомендуется использовать методы доступа set и get. 2.4. Видимость членов класса в C# Неправильно Правильно () Владислав Лавров, vlavrov.com
  • 14. 14 Свойства – отдельные структуры данных. Заменяет использование методов. Методы доступа set и get могут иметь модификаторы доступа. По умолчанию методы доступа создаются открытыми (public) для общего использования. Если нужно сделать так, чтобы свойство нельзя было изменить, то set можно объявить как private В этом случае свойство EmpID не может быть изменено извне класса, потому что к нему нет доступа. Однако к нему можно получить доступ на запись внутри текущего класса. Запрет только на внешний доступ. 2.5. Определение свойств в C# () Владислав Лавров, vlavrov.com
  • 16. 16 Метод – это набор действий, который рассматриваются как единое целое и может быть выполнен в ходе работы программы. Модификаторы доступа: • Public – модификатор общедоступности метода (метод доступен всем); • Private – метод будет доступен только из класса, в котором определен данный метод (действует по умолчанию); • Protected – метод будет доступен как из класса, в котором он определен, так и из любого производного класса; • Internal – метод будет доступен из всех классов внутри сборки, в которой он определен. Из-за пределов этой сборки обратиться к нему будет нельзя; • Protected internal – действует как protected или как internal 2.6. Определение методов в C# () Владислав Лавров, vlavrov.com
  • 17. 17 Пример реализации метода в C# () Владислав Лавров, vlavrov.com
  • 18. 18 2.7. Статические методы и методы экземпляров Статический метод может быть вызван напрямую через уровень класса, без необходимости создавать хотя бы один экземпляр объекта данного класса. Если член класса объявляется как static, то он становится доступным до создания любых объектов своего класса и без ссылки на какой-нибудь объект. С помощью ключевого слова static можно объявлять как переменные, так и методы. () Владислав Лавров, vlavrov.com
  • 19. 19 Пример реализации статического метода () Владислав Лавров, vlavrov.com
  • 20. 20 Вызов метода экземпляра в C# Для вызова метода экземпляра необходимо сначала создать объект класса, в котором определен данный метод. Затем метод вызывается чрез объект другого класса. () Владислав Лавров, vlavrov.com