SlideShare a Scribd company logo
1 of 24
.NET Framework і C#
Модуль 4
В цьому модулі:
 синтаксис оголошення класу;
 специфікатори доступу мови програмування C#;
 поля класу;
 методи класу;
 конструктори;
 ключове слово this;
 використання ref і out параметрів;
 методи зі змінною кількістю аргументів
 часткові типи (partial types)
2
Andrey Gladky
KspDevelop@gmail.com
Синтаксис оголошення класу
Класи C#, як й у С++ - це деякі шаблони, по яких ви
можете створювати об'єкти. Кожен об'єкт містять
дані й методи, що маніпулюють цими даними. Клас
визначає, які дані і яку функціональність може
мати кожен конкретний об'єкт (іноді називають
екземпляром) цього класу.
Andrey Gladky
KspDevelop@gmail.com 3
Синтаксис оголошення й ініціалізації
класу:
[специфікатор][модифікатор] Class <ім'я класу>
{
[специфікатор][модифікатор] тип <ім'я поля1>;
[специфікатор][модифікатор] тип <ім'я поля2>;
…
[специфікатор][модифікатор] тип <Метод1()>
{
...
}
[специфікатор][модифікатор] тип <Метод2()>
{
...
}
}
Andrey Gladky
KspDevelop@gmail.com 4
Andrey Gladky
KspDevelop@gmail.com 5
Демонстрація
Специфікатори доступу мови програмування C#
 private - дані доступні тільки методам усередині
класу й вкладених у нього класам
 protected - дані доступні тільки методам
усередині класу (і вкладеним у нього класам ) або
одному з його похідних класів
 internal - дані доступні тільки методам у зборці
 protected internal - дані доступні тільки методам
вкладеного або похідного типу класу й будь-яких
методів зборки
 public - дані доступні всім методам у всіх збірках
Andrey Gladky
KspDevelop@gmail.com 6
Andrey Gladky
KspDevelop@gmail.com 7
Демонстрація
Поля класу
Будь-який клас може містити в собі безліч даних. До таких
даних відносяться: константи, поля, конструктори екземплярів
класу, конструктори класу, методи, перевантажені оператори,
властивості, події, а також вкладені класи.
Поле - це змінна, яка зберігає значення будь-якого типу. При
оголошенні полів можуть указуватися наступні модифікатори:
• Якщо модифікатор не вказувати, то це означає, що поле
пов'язане з екземпляром класу, а не самим класом.
• Модифікатор static - означає, що поле є частиною класу, а не
об'єкта.
• Модифікатор readonly - означає, що поле буде
використовуватися тільки для читання, запис у полі
дозволяється тільки з коду методу конструктора або відразу
при оголошенні
Andrey Gladky
KspDevelop@gmail.com 8
Andrey Gladky
KspDevelop@gmail.com 9
Демонстрація
Якщо оголошується статичне поле, то воно належить
класу в цілому, а не конкретному об'єкту. І відповідно
одержати доступ до такого об'єкта можна тільки з-
під класу, використовуючи наступний синтаксис:
<Ім'я класу>.<ім'я поля>
Andrey Gladky
KspDevelop@gmail.com 10
Andrey Gladky
KspDevelop@gmail.com 11
Демонстрація
Методи класу
 Синтаксис оголошення:
[специфікатори][модифікатори] тип_повернення <Ім'я
Методу>([параметри])
{
// Тіло методу
}
Andrey Gladky
KspDevelop@gmail.com 12
 Передача параметрів
 Аргументи можуть передаватися методу або за значенням, або по
посиланню. Коли змінна передасться по посиланню, метод,що
викликається одержує саму змінну, тому будь-які зміни, які
здійснюються над змінною усередині методу, залишаться в силі
після його завершення.
 Ключове слово return
Коли зустрічається цей оператор відбувається вихід із метода. В методі
може зустрічатись декілька операторів return
 Перевантаження методів
Перевантаження методів - визначення декількох методів з однаковим
ім'ям і різною сигнатурою.
Andrey Gladky
KspDevelop@gmail.com 13
Andrey Gladky
KspDevelop@gmail.com 14
Демонстрація
Конструктори
 Конструктори - це методи класу, які викликаються при
створенні об'єкта. В C# конструкторів існує 4 види.
 Конструктор по замовчуванню – не приймає ніяких
параметрів й надається в «подарунок» при створенні класу.
Цей конструктор корисний тим, що він занулює всі числові
типи, установлює в false логічний, і в null – посилальний.
 Перевантажений конструктор – не приймає жодних
параметрів але ініціалізує поля класу.
 Конструктор з параметрами – конструктор, що може
приймати необхідну кількість параметрів для ініціалізації полів
класу або яких-небудь інших дій.
 Статичний конструктор – відноситься до класу, а не до
об'єкта. Існує для ініціалізації статичних полів класу.
Andrey Gladky
KspDevelop@gmail.com 15
Andrey Gladky
KspDevelop@gmail.com 16
Демонстрація
Використання ref й out параметрів
 Все, що передається в методи - передається за значенням. Для того,
щоб домогтися передачі параметрів через посилання існують
ключові слова ref й out
 Використання модифікатора ref
Ключовим словом ref позначаються ті параметри, які повинні
передаватися в метод по посиланню. Аргументи, які передаються в
метод із ключовим словом ref, обов'язково повинні бути
проініціалізовані, інакше компілятор видасть повідомлення про
помилку.
 Використання модифікатора out
Параметри, позначені ключовим словом out, також використовуються
для передачі по посиланню. Відмінність від ref полягає в тому, що
параметр вважається вихідним й відповідно компілятор дозволить не
ініціалізувати його до передачі в метод й простежить, щоб метод заніс у
цей параметр значення (інакше буде видане повідомлення про помилку).
Andrey Gladky
KspDevelop@gmail.com 17
Andrey Gladky
KspDevelop@gmail.com 18
Демонстрація
Ключове слово this
Вказівник this – вказівник на об’єкт, для якого був
викликаний не статичний метод. Ключове слово this
забезпечує доступ до поточного екземпляра класу.
Andrey Gladky KspDevelop@gmail.com 19
Andrey Gladky
KspDevelop@gmail.com 20
Демонстрація
Створення методів зі змінною кількістю аргументів
Для створення методів зі змінною кількістю
аргументів було придумано ключове слово params,
яким позначають параметр методу. При
використанні цього ключового слова необхідно
враховувати, що параметр, який позначається
ключовим словом params: повинен стояти останнім у
списку параметрів; повинен указувати на
одновимірний масив будь-якого типу.
Andrey Gladky
KspDevelop@gmail.com 21
Andrey Gladky
KspDevelop@gmail.com 22
Демонстрація
Часткові типи (partial types)
Ключове слово partial говорить компіляторові С#, що
вихідний код класу може розташовуватися в
декількох файлах.
Andrey Gladky
KspDevelop@gmail.com 23
Придумати клас студента. І передбачити в
ньому наступні моменти: прізвище, ім'я, по
батькові, група, вік, вкладений масив оцінок по
програмуванню, адмініструванню й дизайну. А
також додати методи по роботі з
перерахованими даними: можливість
встановлення/одержання оцінки, одержання
середнього бала по заданому предметі,
роздруківка даних про студента.
Andrey Gladky
KspDevelop@gmail.com 24

More Related Content

What's hot

Pascal osnovu
Pascal osnovuPascal osnovu
Pascal osnovuEscuela
 
03 problem solving_with_search
03 problem solving_with_search03 problem solving_with_search
03 problem solving_with_searchLStudio
 
Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1rznz
 
Programuvanna na movi_pascal
Programuvanna na movi_pascalProgramuvanna na movi_pascal
Programuvanna na movi_pascalAnn Eres
 
Прості типи мовою програмування
Прості типи мовою програмуванняПрості типи мовою програмування
Прості типи мовою програмуванняOksana_Lera Skrtsova
 

What's hot (7)

3018 1
3018 13018 1
3018 1
 
Pascal osnovu
Pascal osnovuPascal osnovu
Pascal osnovu
 
03 problem solving_with_search
03 problem solving_with_search03 problem solving_with_search
03 problem solving_with_search
 
функція
функціяфункція
функція
 
Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1Основи програмування .Паскаль ч.1
Основи програмування .Паскаль ч.1
 
Programuvanna na movi_pascal
Programuvanna na movi_pascalProgramuvanna na movi_pascal
Programuvanna na movi_pascal
 
Прості типи мовою програмування
Прості типи мовою програмуванняПрості типи мовою програмування
Прості типи мовою програмування
 

Viewers also liked

Viewers also liked (14)

Wcf module 3.8
Wcf module 3.8Wcf module 3.8
Wcf module 3.8
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
 
Wcf module 3.7
Wcf module 3.7Wcf module 3.7
Wcf module 3.7
 
Net framework і c# module 9
Net framework і c# module 9Net framework і c# module 9
Net framework і c# module 9
 
Net framework і c# module 13
Net framework і c# module 13Net framework і c# module 13
Net framework і c# module 13
 
Ado.net module 6 entity framework
Ado.net module 6 entity frameworkAdo.net module 6 entity framework
Ado.net module 6 entity framework
 
System programing module 3
System programing module 3System programing module 3
System programing module 3
 
System programing module 2
System programing module 2System programing module 2
System programing module 2
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
 
Net framework і c# module 12
Net framework і c# module 12Net framework і c# module 12
Net framework і c# module 12
 
Net framework і c# module 17
Net framework і c# module 17Net framework і c# module 17
Net framework і c# module 17
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 

Similar to Net framework і c# module 4

Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOPAndrii Hladkyi
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаютьсяcit-cit
 
Net framework і c# module 8
Net framework і c# module 8Net framework і c# module 8
Net framework і c# module 8Andrii Hladkyi
 
Net framework і c# module 14
Net framework і c# module 14Net framework і c# module 14
Net framework і c# module 14Andrii Hladkyi
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsAndrii Hladkyi
 
Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxssuserf57884
 
Net framework і c# module 11
Net framework і c# module 11Net framework і c# module 11
Net framework і c# module 11Andrii Hladkyi
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsAndrii Hladkyi
 
Advanced C#. Part 2
Advanced C#. Part 2Advanced C#. Part 2
Advanced C#. Part 2eleksdev
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesAndrii Hladkyi
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10Andrii Hladkyi
 
Net framework і c# module 16
Net framework і c# module 16Net framework і c# module 16
Net framework і c# module 16Andrii Hladkyi
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex DevelopingRoman Shuper
 
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковJoomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковIgor Bronovskyy
 

Similar to Net framework і c# module 4 (14)

Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
 
Net framework і c# module 8
Net framework і c# module 8Net framework і c# module 8
Net framework і c# module 8
 
Net framework і c# module 14
Net framework і c# module 14Net framework і c# module 14
Net framework і c# module 14
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
 
Лекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptxЛекція №12 Передача параметрів у функцію.pptx
Лекція №12 Передача параметрів у функцію.pptx
 
Net framework і c# module 11
Net framework і c# module 11Net framework і c# module 11
Net framework і c# module 11
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
 
Advanced C#. Part 2
Advanced C#. Part 2Advanced C#. Part 2
Advanced C#. Part 2
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
 
Net framework і c# module 16
Net framework і c# module 16Net framework і c# module 16
Net framework і c# module 16
 
Using Metatags in Flex Developing
Using Metatags in Flex DevelopingUsing Metatags in Flex Developing
Using Metatags in Flex Developing
 
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковJoomla 3. Що нового для розробників у новій версії - Віталій Маренков
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
 

More from Andrii Hladkyi

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. SerializationAndrii Hladkyi
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorAndrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. ThreadsAndrii Hladkyi
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. ProcessesAndrii Hladkyi
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsAndrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1Andrii Hladkyi
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+Andrii Hladkyi
 

More from Andrii Hladkyi (18)

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage Collector
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 

Net framework і c# module 4

  • 1. .NET Framework і C# Модуль 4
  • 2. В цьому модулі:  синтаксис оголошення класу;  специфікатори доступу мови програмування C#;  поля класу;  методи класу;  конструктори;  ключове слово this;  використання ref і out параметрів;  методи зі змінною кількістю аргументів  часткові типи (partial types) 2 Andrey Gladky KspDevelop@gmail.com
  • 3. Синтаксис оголошення класу Класи C#, як й у С++ - це деякі шаблони, по яких ви можете створювати об'єкти. Кожен об'єкт містять дані й методи, що маніпулюють цими даними. Клас визначає, які дані і яку функціональність може мати кожен конкретний об'єкт (іноді називають екземпляром) цього класу. Andrey Gladky KspDevelop@gmail.com 3
  • 4. Синтаксис оголошення й ініціалізації класу: [специфікатор][модифікатор] Class <ім'я класу> { [специфікатор][модифікатор] тип <ім'я поля1>; [специфікатор][модифікатор] тип <ім'я поля2>; … [специфікатор][модифікатор] тип <Метод1()> { ... } [специфікатор][модифікатор] тип <Метод2()> { ... } } Andrey Gladky KspDevelop@gmail.com 4
  • 6. Специфікатори доступу мови програмування C#  private - дані доступні тільки методам усередині класу й вкладених у нього класам  protected - дані доступні тільки методам усередині класу (і вкладеним у нього класам ) або одному з його похідних класів  internal - дані доступні тільки методам у зборці  protected internal - дані доступні тільки методам вкладеного або похідного типу класу й будь-яких методів зборки  public - дані доступні всім методам у всіх збірках Andrey Gladky KspDevelop@gmail.com 6
  • 8. Поля класу Будь-який клас може містити в собі безліч даних. До таких даних відносяться: константи, поля, конструктори екземплярів класу, конструктори класу, методи, перевантажені оператори, властивості, події, а також вкладені класи. Поле - це змінна, яка зберігає значення будь-якого типу. При оголошенні полів можуть указуватися наступні модифікатори: • Якщо модифікатор не вказувати, то це означає, що поле пов'язане з екземпляром класу, а не самим класом. • Модифікатор static - означає, що поле є частиною класу, а не об'єкта. • Модифікатор readonly - означає, що поле буде використовуватися тільки для читання, запис у полі дозволяється тільки з коду методу конструктора або відразу при оголошенні Andrey Gladky KspDevelop@gmail.com 8
  • 10. Якщо оголошується статичне поле, то воно належить класу в цілому, а не конкретному об'єкту. І відповідно одержати доступ до такого об'єкта можна тільки з- під класу, використовуючи наступний синтаксис: <Ім'я класу>.<ім'я поля> Andrey Gladky KspDevelop@gmail.com 10
  • 12. Методи класу  Синтаксис оголошення: [специфікатори][модифікатори] тип_повернення <Ім'я Методу>([параметри]) { // Тіло методу } Andrey Gladky KspDevelop@gmail.com 12
  • 13.  Передача параметрів  Аргументи можуть передаватися методу або за значенням, або по посиланню. Коли змінна передасться по посиланню, метод,що викликається одержує саму змінну, тому будь-які зміни, які здійснюються над змінною усередині методу, залишаться в силі після його завершення.  Ключове слово return Коли зустрічається цей оператор відбувається вихід із метода. В методі може зустрічатись декілька операторів return  Перевантаження методів Перевантаження методів - визначення декількох методів з однаковим ім'ям і різною сигнатурою. Andrey Gladky KspDevelop@gmail.com 13
  • 15. Конструктори  Конструктори - це методи класу, які викликаються при створенні об'єкта. В C# конструкторів існує 4 види.  Конструктор по замовчуванню – не приймає ніяких параметрів й надається в «подарунок» при створенні класу. Цей конструктор корисний тим, що він занулює всі числові типи, установлює в false логічний, і в null – посилальний.  Перевантажений конструктор – не приймає жодних параметрів але ініціалізує поля класу.  Конструктор з параметрами – конструктор, що може приймати необхідну кількість параметрів для ініціалізації полів класу або яких-небудь інших дій.  Статичний конструктор – відноситься до класу, а не до об'єкта. Існує для ініціалізації статичних полів класу. Andrey Gladky KspDevelop@gmail.com 15
  • 17. Використання ref й out параметрів  Все, що передається в методи - передається за значенням. Для того, щоб домогтися передачі параметрів через посилання існують ключові слова ref й out  Використання модифікатора ref Ключовим словом ref позначаються ті параметри, які повинні передаватися в метод по посиланню. Аргументи, які передаються в метод із ключовим словом ref, обов'язково повинні бути проініціалізовані, інакше компілятор видасть повідомлення про помилку.  Використання модифікатора out Параметри, позначені ключовим словом out, також використовуються для передачі по посиланню. Відмінність від ref полягає в тому, що параметр вважається вихідним й відповідно компілятор дозволить не ініціалізувати його до передачі в метод й простежить, щоб метод заніс у цей параметр значення (інакше буде видане повідомлення про помилку). Andrey Gladky KspDevelop@gmail.com 17
  • 19. Ключове слово this Вказівник this – вказівник на об’єкт, для якого був викликаний не статичний метод. Ключове слово this забезпечує доступ до поточного екземпляра класу. Andrey Gladky KspDevelop@gmail.com 19
  • 21. Створення методів зі змінною кількістю аргументів Для створення методів зі змінною кількістю аргументів було придумано ключове слово params, яким позначають параметр методу. При використанні цього ключового слова необхідно враховувати, що параметр, який позначається ключовим словом params: повинен стояти останнім у списку параметрів; повинен указувати на одновимірний масив будь-якого типу. Andrey Gladky KspDevelop@gmail.com 21
  • 23. Часткові типи (partial types) Ключове слово partial говорить компіляторові С#, що вихідний код класу може розташовуватися в декількох файлах. Andrey Gladky KspDevelop@gmail.com 23
  • 24. Придумати клас студента. І передбачити в ньому наступні моменти: прізвище, ім'я, по батькові, група, вік, вкладений масив оцінок по програмуванню, адмініструванню й дизайну. А також додати методи по роботі з перерахованими даними: можливість встановлення/одержання оцінки, одержання середнього бала по заданому предметі, роздруківка даних про студента. Andrey Gladky KspDevelop@gmail.com 24