Похожие презентации:
Полиморфизм, перегрузка методов и операторов. Ключевое слово static
1.
ПОЛИМОРФИЗМ,ПЕРЕГРУЗКА МЕТОДОВ И
ОПЕРАТОРОВ
2.
ЧТО ТАКОЕ ПОЛИМОРФИЗМ?• Полиморфизм (от греч. poly — много и morphe — форма)
— один из главных столпов объектно-ориентированного
программирования. Его суть заключается в том, что один
фрагмент кода может работать с разными типами данных.
• В C# это реализуется с помощью перегрузок (overloading).
3.
• C# — строго типизированный язык. Это значит,что вы не можете поместить строку в
переменную типа int — сначала нужно провести
преобразование. Так же и в метод нельзя
передать параметр типа float, если при
объявлении метода был указан тип double.
4.
• Так происходит потому, что у метода WriteLine () естьперегрузки — методы с таким же названием, но
принимающие другие аргументы:
5.
• Стоит учитывать, чтозначение имеют только
типы и количество
передаваемых аргументов
6.
• У этих методоводинаковые параметры, но
разный возвращаемый тип.
Попытка скомпилировать
такой код приведёт к
ошибке
7.
• Ошибка при компиляциивозникнет и при создании
перегрузки с такими же
аргументами, но с другими
названиями:
8.
ПЕРЕГРУЗКАКОНСТРУКТОРОВ
9.
ПЕРЕГРУЗКА ОПЕРАТОРОВ• +,
• ++,
• -,
В определении класса нужно добавить
вот такую конструкцию:
• --,
• *,
• /,
• ==,
• >,
• <,
• >=,
• <=
Так как использоваться этот оператор должен без
объявления экземпляра класса (item1 + item2, а не item1
item1.+ item2), то указываются модификаторы public static.
10.
• Например, мы хотим улучшать предметы в играх. Во многихMMO1 популярна механика, когда один предмет улучшается за
счёт другого. Мы можем сделать это с помощью перегрузки
оператора сложения:
11.
• Теперь при сложении двух объектов класса Item мы будемполучать третий объект с улучшенными параметрами. Вот
пример использования такого оператора:
12.
КЛЮЧЕВОЕСЛОВО STATIC
13.
ЗАЧЕМ НУЖЕН STATIC?• Иногда требуется определить такой член класса, который
будет использоваться независимо от всех остальных объектов
этого класса. Как правило, доступ к члену класса организуется
посредством объекта этого класса, но в то же время можно
создать член класса для самостоятельного применения без
ссылки на конкретный экземпляр объекта. Для того чтобы
создать такой член класса, достаточно указать в самом начале
его объявления ключевое слово static.
14.
• Если член класса объявляется как static, то онстановится доступным до создания любых объектов
своего класса и без ссылки на какой-нибудь объект. С
помощью ключевого слова static можно объявлять как
переменные, так и методы. Наиболее характерным
примером члена типа static служит метод Main(),
который объявляется таковым потому, что он должен
вызываться операционной системой в самом начале
выполняемой программы.
15.
16.
ОГРАНИЧЕНИЯ STATIC• В методе типа static должна отсутствовать ссылка this, поскольку такой метод не
выполняется относительно какого-либо объекта
• В методе типа static допускается непосредственный вызов только других методов
типа static, но не метода экземпляра из того самого же класса. Дело в том, что
методы экземпляра оперируют конкретными объектами, а метод типа static не
вызывается для объекта. Следовательно, у такого метода отсутствуют объекты,
которыми он мог бы оперировать
• Аналогичные ограничения накладываются на данные типа static. Для метода типа
static непосредственно доступными оказываются только другие данные типа static,
определенные в его классе. Он, в частности, не может оперировать переменной
экземпляра своего класса, поскольку у него отсутствуют объекты, которыми он мог
бы оперировать
Программирование