#14 - Создание классов (Основы ООП)

#14 - Создание классов (Основы ООП)

Приступаем к изучению объектно-ориентированного программирования: созданию классов, объектов, конструкторов и прочего. В уроке мы создадим наш первый класс, а также на основе класса создадим объекты.

Видеоурок

На начальном этапе ООП – это тёмный лес, в котором многое непонятно и слишком усложнено. На самом деле всё вовсе не так. Предлагаем абстрагироваться от специфических (непонятных) определений и познакомиться с ООП простыми словами. 


ООП простыми словами

Поскольку на примере все усвоить гораздо проще, то давайте за пример возьмем робота, которого постараемся описать за счёт классов в ООП.


Класс в случае с роботом – это его чертёж. Экземпляром класса (объектом) называет целый робот, который создан точно по чертежу.


Наследование – это добавление полезных опций к чертежу робота. К примеру, берем стандартный чертёж робота и дорисуем к нему лазеры, крылья и броню. Все эти дорисовки мы сделаем в классе наследнике, основной функционал которого взят из родительского класса.


Полиморфизм – это общий функционал для всех роботов и не важно что каждый робот может очень сильно отличаться друг от друга. К примеру, в главном классе мы указываем возможность передвижения для всех последующих роботов. Далее в классе наследнике мы можем дополнительно указать возможность левитации для робота, в другом же классе укажем возможность передвижения по воде и так далее. Получается, что есть общий функционал что записан в главном чертеже, но его можно переписать для каждого последующего робота (для каждого наследника).


А инкапсуляция является для нас бронёй, защищающей робота. Под пластырем брони находятся уязвимые элементы, вроде проводов и микросхем. После прикрытия брешей с помощью брони (protected или private), робот полностью защищён от внешних вмешательств. По сути, мы делаем доступ ко всем полям лишь за счёт методов, тем самым прямой доступ к полю будет закрыт.


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


Создание классов

Для создания класса необходимо прописать ключевое слово class и далее название для класса. Общепринято начинать названия классов с буквы в верхнем регистре, но если этого не сделать, то ошибки не будет.


В любом классе можно создавать поля (переменные), методы (функции), а также конструкторы.


Создав новый класс и поместив туда какую-либо информацию мы можем создавать на основе него новые объекты. Объекты будут иметь доступ ко всем характеристикам класса, которые отмечены модификатором public.


Существует три модификатора доступа:

  • public - данные будут видны повсюду, как в классе, так и вне его;
  • protected - данные будут видны только в классе, где они были созданы, а также в классах наследниках;
  • private - данные будут видны только в классе, где они были созданы.

Пример простого класса приведен ниже:

class Book {
	public int pages;
	public string name;
	public float weight;
 
	public void getInfoBook () {
		Console.WriteLine("В книге " + name + " находиться " + pages + " страниц. ");
		Console.WriteLine("При этом она весит " + weight);
	} 
}

На основе такого класса мы можем создать множество объектов. Каждый объект в данном случае будет представлять из себя конкретную книжку. Для каждого объекта мы можем указать уникальные данные: количество страниц, название книги и её вес.


Чтобы создать объект нам потребуется следующий код:

Book sherlock_holms; // объявление переменной
sherlock_holms = new Book(); // выделение памяти под объект Book
sherlock_holms.getInfoBook();

Такой код можно прописать и в одной строке кода. Мы для наглядности разбили код в две строки. 


Чтобы брать данные из класса через объект необходимо ставить точку и указывать имя переменной или функции, которую мы хотим взять.

Исходный код

Весь код будет доступен после подписки на проект!

Онлайн редактор кода

Загрузка...

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Программа на C# .NET Windows Forms
7 уроков
Изучение C#, ASP.NET и создание Windows программ
Изучение ASP.NET Core MVC. Создание сайтов на C#
10 уроков
Уроки C# под Unity 5 для начинающих
9 уроков
Комментарии для сайта Cackle