
ProgBasics_lec05-6_class_members
.pdf
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields() { }
}
class B : A
{
int x = 1; int y; public B()
{
y = -1;
}
public override void PrintFields()
{
Console.WriteLine("x = {0}, y = {1}", x, y);
}
}

Конструктор по-умолчанию
class Person
{
string name;
}
равносильно
public Person() : base() { }

private-конструкторы
public class Color
{
private byte val; private Color(byte val)
{
this.val = val;
}
public static readonly Color Red = new Color(0);
public static readonly Color Green = new Color(1); public static readonly Color Blue = new Color(2);
}

Конструктор с опциональными параметрами
class Text
{
public Text() : this(0, 0, null) { }
public Text(int x, int y) : this(x, y, null) { } public Text(int x, int y, string s)
{
// Реализация конструктора
}
}

Свойства
Свойство – элемент класса, предоставляющий доступ к характеристикам класса или класса.
Примеры таких характеристик:
•длина строки
•размер шрифта
•имя клиента

Свойство != данные
Свойство – набор методов доступа к полю
(accessors).
Эти методы позволяют определить действия, выполняющиеся при чтении и (или) изменения значения соответствующего поля.

Объявление
[модификаторы] <тип> <имя>
{
<get-accessor>[set-accessor] (opt) <set-accessor>[get-accessor] (opt)
}

Accessors
get – получает значение поля
set – устанавливает значение поля
Возможно использовать только один аксессор.
[access-modifier]<accessor> { body }

Свойства
•Свойство, у которого определён только метод get – «только для чтения», read-only
•Свойство у которого определён только метод set – «только для записи», write-only

public class Button : Control
{
private string caption; public string Caption
{
get
{
return caption;
}
set
{
if (caption != value)
{
caption = value; Repaint();
}
}
}
}