Параметры методов

Модификаторы свойств

Модификаторы доступа

v Private – по умолчанию

Закрытыя поля и методы

v Public

Открытые поля и методы, задают интерфейс класса

v Protected

v Internal

v Protected internal

· Static(статистический)

Используется при объявлении метода, который принадлежит всему типу, а не конкретному объекту, таким образом, вызов статистических методов происходит через обращение к имени класса, а не к имени объекта.

· Abstract (абстрактный)

· Virtual (виртуальный)

Используется при объявлении метода, реализацию которого можно переопределить в производном классе, при переопределении используется override.

· Override (переопределенный)

· Sealed (запечатанный)

Используется для метода, который переопределяет виртуальный метод в базовом классе, что позволяет классам наследовать от созданного класса, но запрещает им при этом переопределять эти виртуальные методы

· Extern (внешний)

Указывает на то, что объявляется метод с внешней реализацией.

Методы класса

· Сигнатура метода – совокупность имени, метода, количества, типов и способов передачи параметров.

· В сигнатуру не входят не имена параметров, ни тип возвращаемого значения

· В классе не должно быть методов с одинаковыми сигнатурами.

· Сигнатуры используются для механизма перегрузки.

· Перегрузка – позволяет использовать в одном классе несколько методов с одинаковыми именами, но с разными типами параметров

· Перегрузка полезна, когда требуется решать однотипные задачи с разными наборами параметров.

· Пример перегрузки.

Максимум 2 целх чисел:

Int max (int a? ain b)

Максимум 3х целых чисел

Int max (int a? ain b, int c)

· При вызове метода компилятор выбирает вариант метода, соответствующий типу передаваемых в метод аргументов.

· Сигнатуры перегруженным методов должны отличаться.

Виды параметров:

· Параметры-значения – в метод передается значене переменной

· Параметры-ссылки (ref) – в метод передается адрес переменной

· Выходные параметры (out)

· Массив параметров (params)

o Переменное число аргументов

o Только один и в конце списка параметров

Типы в С#:

Value types

Reference types

Void

Pointes

· В метод всегда передается неявно параметр this – указатель на объект, который вызывает метод.

· Параметр this нужен для идентификации конкретного экземпляра, вызвавшего метод, тк методы для всех экземпляров класса общие, а поля – разные, те чтобы метод работал с нужными полями.

· Пример:

Class MyClass

{

Double y:

Public MyClass GetSelf()

{

Return this; //ссылка на объект

}

Public void SetY (double y)

{

This.y =y;. // разрешение конфликта

}

}

Специальные методы:

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

· Конструктор предназначен для инициализации объекта.

· Является обязательным элементом любого класса

· Конструктор вызывается автоматически при создании объекта класса с помощью операции new.

· Имя конструктора совпадает с именем класса

Свойства конструкторов:

· Конструктор не возвращает значение, даже void

· Класс может иметь несколько конструкторов с разными параметрами

· Если программист не указал ни одного конструктора или какие-то поля не были инициализированы, полям значимых типов присваивается нуль, полям ссылочных типов – значение null.

· Конструктор, вызываемы без параметров, это конструктор по умолчанию.

· Если в классе явно не задан ни один конструктор, то к классу автоматически добавляется конструктор по умолчанию

· Если в классе явно определен один или несколько конструкторов, то автоматического добавления конструктора без аргумента…

Class MyClass

{

Public int y;

Public MyClass () // конструктор по умолчанию

{

y=1

}

· Конструкторы не наследуются потомками, поэтому любой класс должен содержать собственный конструктор

· Если один из конструкторов выполняет какие-то действия, а другой должен делать тоже самое + еще что-нибудь, можно вызвать первый конструктор из второго, используя ключевое слово this. Пример:

Class MyClass

{

Public int x, y;

Public MyClass (int x0)

{

X=x0;

}

Public MyClass (int x0, int y0): this (x0)

{

Y=y0;

}

}

· Статические классы могут иметь только статические конструкторы: static имя_класса ()

· Статистические конструкторы: не имеют модификаторов и параметров; вызываются только автоматически.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: