- Главная
- Информатика
- Классы
Содержание
- 2. Элементами класса могут быть поля, методы и события. Поля – пассивная, но при этом, основная часть
- 3. делятся на: особые Конструкторы - может быть несколько, предназначены для создания экземпляров класса; Деструктор - всегда
- 4. устанавливаются для каждого элемента класса модификаторами доступа: public – общедоступный элемент класса (нет защиты): доступен в
- 5. using System; class Primer { struct A { public string s; public bool a; public int
- 6. class A { int a; public A( int ia) { a = ia; } public override
- 8. Скачать презентацию
Слайд 2Элементами класса могут быть поля, методы и события.
Поля – пассивная, но
Элементами класса могут быть поля, методы и события.
Поля – пассивная, но
Методы – активная, но при этом вспомогательная часть класса: задача методов – обслуживание полей (инициализация, модификация, представление и другие действия, связанные с обработкой информации).
События – это объекты типа делегат, предназначенные для размещения ссылок на метод или методы (с помощью событий обеспечивается т.н. обратный вызов соответствующих методов)
ИмяОбъекта
фрагмент кода , в котором можно использовать объект
( т.н. «область видимости» объекта )
Поле1
Поле2
Метод1()
Метод2()
Поле3
Поле4
открытая,
public – зона
закрытая,
private – зона
…
…
Элементы класса
Тип ИмяОбъекта = new Тип();
Слайд 3делятся на:
особые
Конструкторы - может быть несколько, предназначены для создания экземпляров
делятся на:
особые
Конструкторы - может быть несколько, предназначены для создания экземпляров
Деструктор - всегда один, предназначен для уничтожения экземпляра класса;
неособые.
Особые методы могут быть в режиме по умолчанию:
Конструктор класса по умолчанию выполняет инициализацию полей объекта предустановленными значениями (значениями по умолчанию). Но уже первый явный конструктор фактом своего появления в классе отменяет конструктор по умолчанию. Явный деструктор, соответственно, отменяет деструктор по умолчанию.
Объявление конструктора:
модификатор Имя (сигнатура) { тело }
конструктор не может, в принципе, иметь возвращаемого значения, а, значит и не имеет типа, ИМЯ конструктора – это всегда ИМЯ класса,
деструктор также не имеет типа, дополнительно деструктор не имеет и входных аргументов. Имя деструктора – это имя класса с точностью до «тильда» (~).
Методы (как элементы класса)
И класс, и структура, могут иметь неограниченное количество перегруженных конструкторов
Слайд 4устанавливаются для каждого элемента класса модификаторами доступа:
public – общедоступный элемент класса (нет
устанавливаются для каждого элемента класса модификаторами доступа:
public – общедоступный элемент класса (нет
protected – защищенный элемент класса: доступен только элементам данного классса и производного класса.
Примечание: спецификатора protected не используется в структурах,
так как структурные типы не поддерживают наследования;
private – частный элемент: доступен только элементам данного класса
Режимы защиты элементов класса
При отсутствии у элемента класса (или структуры) явного модификатора
(в режиме «по умолчанию») действует защита
private
Слайд 5using System;
class Primer
{
struct A
{
public string s;
using System;
class Primer
{
struct A
{
public string s;
public int b;
}
class B
{
public string s;
public bool a;
public int b;
}
static void Main()
{ A obj ; //Конструктор по умолчанию создаёт экземпляр
obj.a = true; //структурного типа: поля конструктором не obj.b = 10; //инициализируются!
obj.s = "Объект типа А";
Console.WriteLine("{0} a={1} b={2}", obj.s, obj.a, obj.b);
B obj1 = new B(); //Выделение памяти и вызов конструктора по умолчанию obj1.s = "Объект типа B";
Console.WriteLine("{0} a={1} b={2}", obj1.s, obj1.a, obj1.b);
}
}
Объявление и реализация структуры и класса, конструкторы по умолчанию, поля
Слайд 6class A
{ int a;
public A( int ia)
{
a = ia;
class A
{ int a;
public A( int ia)
{
a = ia;
public override string ToString() //реализация переопределения метода ToString
{
return String.Format ( "a={0} ", a++ ) ;
}
static void Main()
{
A o1 = new A ( 1 ),
o2 = new A ( 1 ),
o3 = o2;
Console.WriteLine ( o1 ); //Использование переопределения
Console.WriteLine ( o2 );
Console.WriteLine ( o3 );
}
}
Пример (объявление класса и создание трёх его экземпляров,
знакомство с переопределением)