Csharp 3
Csharp 3
поля свойства
(переменные константы
) события
один набор на индексаторы
поля статические класс
поля методы
экземпляра
один набор на
каждый экземпляр
операции
конструкторы конструкторы
экземпляра
деструкторы
статические
конструкторы обычные
методы
методы методы
экземпляра класса
©Павловская Т.А. (СПбГУ ИТМО) 11
Описание объекта
Класс является обобщенным понятием, определяющим
характеристики и поведение множества конкретных
объектов этого класса, называемых экземплярами
(объектами) класса.
Объекты создаются явным или неявным образом (либо
программистом, либо системой). Программист создает
экземпляр класса с помощью операции new:
Demo a = new Demo();
Demo b = new Demo();
Для каждого объекта при его создании в памяти
выделяется отдельная область для хранения его данных.
Кроме того, в классе могут присутствовать статические
элементы, которые существуют в единственном
экземпляре для всех объектов класса.
Функциональные элементы класса всегда хранятся в
единственном экземпляре.
©Павловская Т.А. (СПбГУ ИТМО) 12
Присваивание и сравнение объектов
Хип
Значение Значение Значение
Стек
Ссылка Ссылка Ссылка
а b c
Объекты
b=c
Величины ссылочного типа равны, если они ссылаются на
одни и те же данные (b == c, но a != b даже при
равенстве их значений или если обе ссылки равны null).
double a = 0.1;
double b = Math.Sin(a);
Console.WriteLine(a);
©Павловская Т.А. (СПбГУ ИТМО) 18
Параметры методов
Параметры определяют множество значений аргументов, которые
можно передавать в метод.
Список аргументов при вызове как бы накладывается на список
параметров, поэтому они должны попарно соответствовать друг
другу.
Для каждого параметра должны задаваться его тип, имя и,
возможно, вид параметра.
Имя метода вкупе с количеством, типами и спецификаторами его
параметров представляет собой сигнатуру метода — то, по чему
один метод отличают от других.
В классе не должно быть методов с одинаковыми сигнатурами.
Метод, описанный со спецификатором static, должен обращаться
только к статическим полям класса.
Статический метод вызывается через имя класса, а обычный —
через имя экземпляра.
class Class1
{ static void Main()
{
Demo a = new Demo( 300, 0.002 ); // вызов конструктора
Demo b = new Demo( 1, 5.71 ); // вызов конструктора
…
}}