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

концепции ооп. часть 1

.pdf
Скачиваний:
9
Добавлен:
12.02.2015
Размер:
1.07 Mб
Скачать

Пример

public class Circle

{

public double x; public double y;

Объявление типа

Список полей

public double r;

 

public double GetLength()

 

{

Действия

return 2 * Math.PI * r;

}

public void Move(int x, int y)

{

this.x = x; this.y = y;

}

}

Использование

class Program

{

static void Main(string[] args)

{

Circle c = new Circle(); Создание объекта

c.x = 5;

c.y = 6;

c.r = 7;

Объявление ссылки на объект типа Circle

Инициализация

Вызов методов

c.Move(10, 10);

Console.WriteLine(c.GetLength());

}

}

Давайте обсудим

Чем объявление объекта отличается от объявления группы переменных?

Инкапсуляция

Прикладной программист не должен менять внутреннее состояние объекта – он не знает, как это делается

Поля и методы делятся на внутренние и интерфейсные

Спецификаторы доступа

private

public

protected

 

Base

 

Child

 

Other

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

Y

Z

 

X

Y

Z

 

X

Y

Z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Давайте обсудим

Как применять инкапсуляцию?

Спецификатор static

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

static int x;

MyClass.x = 5;

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

static int Method() { ... }

MyClass.Method();

• Статические классы

static class MyClass { ... }

Пример

• Класс Math

Статический класс, содержащий математические методы.

• Использование:

Приведите другие примеры…

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

Конструктор (constructor) – это специальная функция, предназначенная для правильной инициализации объектов.

Имя конструктора совпадает с именем класса, в котором он объявлен.

Виды конструкторов

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

Circle c = new Circle();

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

public Circle()

{

x = y = 0; r = 1;

}

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

public Circle(double r)

{

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

}