Методы в Си-шарп. Разница между простыми и статическими
Стр 1 из 4Следующая ⇒ Понятие объектно-ориентированного программирования (ООП). Классы и объекты Понятие объектно-ориентированное программирование (ООП) означает один из самых эффективных подходов к современному программированию. Раньше программисты, в большинстве случаев, использовали функциональный или процедурный принцип программирования. Все программы, большие и маленькие, писались в одном файле. С течением времени программы становились всё сложнее и больше, что доставляло проблемы разработчикам при поддержке таких программ и внесении изменений. Эту проблему решает объектно-ориентированное программирование. ООП позволяет объединить данные и методы, относящиеся к одной сущности, и работать с ними, как с одним целым. Классы и объекты. В чем разница? ООП привносит нам два ключевых понятия: Класс и Объект. Класс – это абстрактный тип данных. С помощью класса описывается некоторая сущность (ее характеристики и возможные действия). Например, класс может описывать студента, автомобиль и т.д. Описав класс, мы можем создать его экземпляр – объект. Объект – это уже конкретный представитель класса. Пример Допустим, нам в программе необходимо работать со странами. Страна – это абстрактное понятие. У нее есть такие характеристики, как название, население, площадь, флаг и другое. Для описания такой страны будет использоваться класс с соответствующими полями данных. Такие страны, как Россия и Украина будут уже объектами (конкретными представителями типа страна). Основные принципы объектно-ориентированного программирования ООП основывается на нескольких базовых принципах, каждому из которых будет посвящен отдельный урок, а пока коротко рассмотрим их.
Инкапсуляция – позволяет скрывать внутреннюю реализацию. В классе могут быть реализованы внутренние вспомогательные методы, поля, к которым доступ для пользователя необходимо запретить, тут и используется инкапсуляция. Больше об инкапсуляции читайте в уроке Инкапсуляция в Си-шарп. Модификаторы доступа. Наследования – позволяет создавать новый класс на базе другого. Класс, на базе которого создается новый класс, называется базовым, а базирующийся новый класс – наследником. Например, есть базовый класс животное. В нем описаны общие характеристики для всех животных (класс животного, вес). На базе этого класса можно создать классы наследники Собака, Слон со своими специфическими свойствами. Все свойства и методы базового класса при наследовании переходят в класс наследник. Больше о наследовании читайте в уроке Наследование в Си-шарп. Полиморфизм – это способность объектов с одним интерфейсом иметь различную реализацию. Например, есть два класса, Круг и Квадрат. У обоих классов есть метод GetSquare(), который считает и возвращает площадь. Но площадь круга и квадрата вычисляется по-разному, соответственно, реализация одного и того же метода различная. Больше о полиморфизме читайте в уроке Полиморфизм в Си-шарп. Абстракция – позволяет выделять из некоторой сущности только необходимые характеристики и методы, которые в полной мере (для поставленной задачи) описывают объект. Например, создавая класс для описания студента, мы выделяем только необходимые его характеристики, такие как ФИО, номер зачетной книжки, группа. Здесь нет смысла добавлять поле вес или имя его кота/собаки и т.д. Все так запутано Конечно, для тех, кто совсем не знаком с ООП, все это может показаться сложным, и сразу понять, что к чему будет сложно. Но с дальнейшими уроками подход ООП для вас будет проясняться, и станет понятно, что всё очень логично.
Классы в Си-шарп. Объявление классов и создание объектов Класс – это абстрактный тип данных. Другими словами, класс – это некоторый шаблон, на основе которого будут создаваться его экземпляры – объекты. В Си-шарп классы объявляются с помощью ключевого слова class. Общая структура объявления выглядит следующим образом: [модификатор доступа] class [имя_класса]
- public – доступ к классу возможен из любого места одной сборки либо из другой сборки, на которую есть ссылка; Что такое сборка? Сборка (assembly) – это готовый функциональный модуль в виде exe либо dll файла (файлов), который содержит скомпилированный код для.NET. Сборка предоставляет возможность повторного использования кода. При объявлении класса модификатор доступа можно не указывать, при этом будет применяться режим по умолчанию internal. Класс следует объявлять внутри пространства имен namespace, но за пределами другого класса (возможно также объявление класса внутри другого - вложенные типы, но это тема отдельного урока). Пример объявления классов Student и Pupil: namespace HelloWorld
Классы в Си-шарп могут содержать следующие члены: - поля; Все члены класса, как и сам класс, имеют свой уровень доступа. Только у членов их может быть уже пять: - public – доступ к члену возможен из любого места одной сборки, либо из другой сборки, на которую есть ссылка; Не указав модификатор доступа для члена, по умолчанию ему будет присвоен режим private. При помощи модификаторов доступа в Си-шарп реализуется один из базовых принципов ООП – инкапсуляция.
В этом уроке мы рассмотрим такие члены класса, как поля и константы. Поля класса Поле – это переменная, объявленная внутри класса. Как правило, поля объявляются с модификаторами доступа private либо protected, чтобы запретить прямой доступ к ним. Для получения доступа к полям следует использовать свойства или методы. Пример объявления полей в классе: class Student
Объявив класс, мы теперь можем создавать объекты. Делается это при помощи ключевого слова new и имени класса: namespace HelloWorld
static void Main(string[] args) student1.group = "Group1"; Console.WriteLine(student1.group); // выводит на экран "Group1"
static void Main(string[] args)
Константы-члены класса ничем не отличаются от простых констант внутри методов, которые рассматривались в уроке переменные и константы. Константа – это переменная, значений которое нельзя изменить. Константа объявляется с помощью ключевого слова const. Пример объявления константы: class Math
Домашнее задание Создайте какой-нибудь класс (например класс Автомобиль), объявите в нем поля с различными режимами доступа (private, protected, internal, public). Создайте объект класса, и попытайтесь записать/получить данные с различных полей.
Методы в Си-шарп. Разница между простыми и статическими Метод – это небольшая подпрограмма, которая выполняет, в идеале, только одну функцию. Методы позволяют сократить объем кода.
Методы вместе с полями, являются основными членами класса. Ранее, мы уже рассматривали методы в уроке Функции в Си-шарп, но сейчас мы рассмотрим их под других углом. В том уроке мы рассматривали статические методы, а в этом поговорим о простых, и о разнице между ними. Статический метод – это метод, который не имеет доступа к полям объекта, и для вызова такого метода не нужно создавать экземпляр (объект) класса, в котором он объявлен. Простой метод – это метод, который имеет доступ к данным объекта, и его вызов выполняется через объект. Простые методы служат для обработки внутренних данных объекта. Приведу пример использования простого метода. Класс Телевизор, у него есть поле switchedOn, которое отображает состояние включен/выключен, и два метода – включение и выключение: class TVSet public void SwitchOn()
Статические методы, обычно, выполняют какую-нибудь глобальную, общую функцию, обрабатывают «внешние данные». Например, сортировка массива, обработка строки, возведение числа в степень и другое. Пример статического метода, который обрезает строку до указанной длины, и добавляет троеточие: class StringHelper return s.Substring(0, max) + "...";
class SomeClass public static void SomeMethod()
Создайте класс Телевизор. В нем есть поле текущий канал. Предусмотрите в нем возможность переключения каналов: следующий канал, предыдущий канал, переход к каналу по номеру. Учтите, что канал не может иметь отрицательный номер.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|