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

5. Методы класса. Конструкторы. Виды конструкторов. Статические методы и поля.

Метод в объектно-ориентированном программировании — это функция или процедура, принадлежащая какому-то классу или объекту.Как и процедура в процедурном программировании, метод состоит из некоторого количества операторов для выполнения какого-то действия и имеет набор входных аргументов.Различают простые методы и статические методы (методы класса):простые методы имеют доступ к данным объекта (конкретного экземпляра данного класса),статические методы не имеют доступа к данным объекта и для их использования не нужно создавать экземпляры (данного класса).

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

Конструктор предназначен для инициализации объекта. Конструкторы делятся на

конструкторы класса (для статических классов) и конструкторы экземпляра класса (для всех объектов класса).

Автоматический конструктор

Circle c = new Circle();

Конструктор по умолчанию

class Circle

{

public Circle() {x = 0; y = 0; r = 1;}

}

Конструктор с параметрами

class Circle

{

public Circle(double r)

{ x = 0; y = 0; this.r = r; }

}

Основные свойства конструкторов.

  1. Конструктор не возвращает значение, даже типа void.

  2. Класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации.

  3. Если не указано ни одного конструктора, или какие-то поля не были инициализированы, то полям присваивается нуль, полям ссылочных типов – null.

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

Статические классы содержат только статические члены (в том числе, и конструктор),

которые хранятся в памяти в единственном экземпляре. Поэтому создавать экземпляры класса для них нет смысла.

Пример:

class Demo

{

static int a;

static int b;

private Demo(){} //закрытый конструктор

static Demo() //статический конструктор

{

a = 10; b = 2; }

public static void Print ()

{

Console.WriteLine("{0}+{1}={2}", a, b, a+b);

Console.WriteLine("{0}*{1}={2}", a, b, a*b);

Console.WriteLine("{0}-{1}={2}", a, b, a-b);

Console.WriteLine("{0}/{1}={2}", a, b, a-b);

}

}

Рассмотрим как происходит работа со статическим классом:

class Program

{

static void Main()

{

//ошибка: создать экземпляр статического класса нельзя

//Demo S=new Demo();

Demo.Print();

}

}

Результат работы программы:

10+2=12

10*2=20

10/2=5

Статические методы и поля

Статические поля

static int x;

MyClass.x = 5;

Статические методы

static int Method () { … }

MyClass.Method()

6. Понятие сложности алгоритма. Типовые виды алгоритмической сложности.

Сложность алгоритмов:

  • Сложность восприятия

  • Алгоритмическая сложность

  • Временные затраты.

Виды сложности:

Const, log(n), n, n*log(n), nчисло, числоn, n!

Сложность алгоритма – это зависимость конечного значения некоторого счетчика от размеров входных данных.

7. Исключения (try, catch, finally).

ИСКЛЮЧЕНИЯ try, catch, finally

Исключение – это специальный объект, создаваемый в программе, указывающий на

возникновение исключительной ситуации. Поля этого объекта хранят информацию о причине и месте возникновения исключения.

Операторы try, catch, finally

Исключения представляются классами. Все классы исключений создаются от базового класса Exception, который определен в пространстве имен System. Для управления обработкой исключений используются операторы try, catch и Finally

Структура построения исключений try // контролируемый блок

{

}

catch //один или несколько блоков обработки исключений

{

}

finally //блок завершения {

}

Программные инструкции, которые нужно проконтролировать на предмет исключений,

помещаются в блок try. При возникновении исключения внутри этого блока управление

будет передано на блок catch, который умеет обрабатывать возникшие исключения. Блок

finally будет выполнен в любом случае, не зависимо от того, возникли исключения внутри блока try или нет.

Механизм выполнения обработки исключений

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

соответствующего типа.

Пример:

static void Main()

{

Console.Write("x=");

int x = int.Parse(Console.ReadLine()); ??

int y = 1 / x;

Console.WriteLine("y={0}", y);

}

Перечислим, какие исключительные ситуации могут возникнуть.

1. Пользователь может ввести нечисловое значение и выполнение оператора Parse завершится неудачей.

2. Пользователь может ввести значение 0, и произойдет деление на 0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]