концепции ооп. часть 1
.pdfПример
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;
}