Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
95
Добавлен:
12.02.2015
Размер:
360.96 Кб
Скачать

Реализация концепций ООП в языке C#

Обзор

Глава 3 – Основы языка C#

Переменные в C# объявляются следующим образом

Модификатор доступа Тип данных Имя переменной;

В C#, типы данных делятся на две фундаментальных категории именуемые типами данных и типами значений.

Boxing – это преобразование типа значений в ссылочный тип, а Unboxing – это преобразование ссылочного типа в тип значение.

Структуры в C# могут иметь методы и конструкторы, определенные внутри них.

Enums (сокращение от Enumerators) являются наборами именованных числовых констант.

Цели

Использование конструкторов в C#

Использование деструкторов в C#

Объяснить как работает Garbage Collector (сборщик «мусора»)

Объяснить перегрузку методов

Объяснить перегрузку операторов

Использование наследования (Inheritance) в C#

Объяснить что такое замещение (Overriding) in C#

Конструкторы в C#

Конструктор – это специальный тип методов класса

Вызывается каждый раз, когда создается новый экземпляр этого класса

Обычно используется для инициализации

Имеет имя совпадающее с именем класса

Не возвращает значений

Конструкторы - Пример

using System;

public class DaysInYear

{

private int days; public DaysInYear()

{

 

days = 365;

С конструкторами

}

 

static void Main(String[] args)

{

DaysInYear newDaysInYear=new DaysInYear();

Console.WriteLine(newDaysInYear.days);

}

}

Без конструкторов

Параметризованные

конструкторы

public class DaysInYear

{

private int days; public DaysInYear()

{

days = 365;

}

public DaysInYear(int day)

{

days = day;

}

public DaysInYear(String dayOne)

{

days =Convert.ToInt32(dayOne);

}

public void setDay(int newDays)

{

days = newDays;

}

}

Конструкторы

различаются

Различным количеством аргументов (или)

Имеют одинаковое количество аргументов, но различных типов

Деструкторы в C#

Вызывается сборщиком “мусора” (Garbage Collector)

Сборщик “мусора” выполняет очистку (высвобождение) памяти через определенные промежутки времени или в случае необходимости

Синтаксис:

~DaysInYear()

{

//Destructor Implementation

}

Сборщик “мусора” (Garbage Collector)

Работа сборщика “мусора”:

Когда определяется объект, который имеет деструктор, и ему выделяется память, сервис runtime-поддержки добавляет этот объект в список объектов, которые требует уничтожения (или завершения - finalization)

Периодически, сборщик мусора проверяет объекты на которых нет ссылок

Если найден объект, имя которого не содержится в списке завершения, то такой объект немедленно уничтожается

Сервис runtime ссылается на деструктор как на “завершитель”, но в C#, он называется именно деструктором

Когда сборщик “мусора” завершает работу, вызывается нить (thread) завершителя, которая вызывает методы завершителя (деструкторы) для всех объектов помеченных как “ready for finalization” (“готовый к завершению”)

Сборщик “мусора” (Garbage Collector)

После завершения (finalization) очередного объекта он удаляется из списка объектов, которые требуют завершения

Если объект не указан в списке завершения, и на него нет никаких ссылок, он будет уничтожен во время следующего сеанса сборки “мусора”.

Объекты с деструкторами потребляют больше ресурсов, так как они остаются в памяти на некоторое время даже после того, как их использование закончилось

Завершение (Finalization) выполняется как отдельная нить (thread), использующая достаточно большое количество ресурсов

Перегрузка (Overloading) методов

Методы могут быть перегружены одним из двух способов

Определением различного количества параметров метода

Определением различных типов параметров метода

Перегрузка методов с

различным числом параметров

using System; public class Area

{

private int areaVal;

public void AreaCal(int radius)

{

areaVal = (22/7)* radius*radius;

}

public void AreaCal(int length, int breadth)

{

areaVal = length*breadth;

}

public void AreaCal(int length, int breadth, int height)

{

areaVal = length*breadth*height;

}

}

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