C#   Уроки программирования с нуля. Си-шарп для чайников   C#

Здравствуйте, гость!
Вход
Регистрация


Понятие объектно-ориентированного программирования (ООП). Классы и объекты
Понятие объектно-ориентированное программирование (ООП) означает один из самых эффективных подходов к современному программированию.

Раньше программисты, в большинстве случаев, использовали функциональный или процедурный принцип программирования. Все программы, большие и маленькие, писались в одном файле. С течением времени программы становились всё сложнее и больше, что доставляло проблемы разработчикам при поддержке таких программ и внесении изменений. Эту проблему решает объектно-ориентированное программирование. ООП позволяет объединить данные и методы, относящиеся к одной сущности, и работать с ними, как с одним целым.

Классы и объекты. В чем разница?

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

Пример

Допустим, нам в программе необходимо работать со странами. Страна – это абстрактное понятие. У нее есть такие характеристики, как название, население, площадь, флаг и другое. Для описания такой страны будет использоваться класс с соответствующими полями данных. Такие страны, как Россия и Украина будут уже объектами (конкретными представителями типа страна).

Основные принципы объектно-ориентированного программирования

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

Инкапсуляция – позволяет скрывать внутреннюю реализацию. В классе могут быть реализованы внутренние вспомогательные методы, поля, к которым доступ для пользователя необходимо запретить, тут и используется инкапсуляция. Больше об инкапсуляции читайте в уроке Инкапсуляция в Си-шарп. Модификаторы доступа.

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

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

Абстракция – позволяет выделять из некоторой сущности только необходимые характеристики и методы, которые в полной мере (для поставленной задачи) описывают объект. Например, создавая класс для описания студента, мы выделяем только необходимые его характеристики, такие как ФИО, номер зачетной книжки, группа. Здесь нет смысла добавлять поле вес или имя его кота/собаки и т.д.

Все так запутано

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

PS. Не забываем подписываться на обновления по электронной почте в форме ниже!
Понравилась статья? Подпишись на рассылку и узнавай первым о новых уроках по почте!


Поделиться с друзьями:
20 июн 2013 01:29
ElvaLfk 25 дек 2017 23:21
апрапрапр

CurtisTrody 02 ноя 2017 02:28
Мы ценим ваше время и делим с вами общие цели. Ваши продажи для нас главный приоритет.
заказать продвижение интернет магазина логин скайпа SEO2000

оращайтесь договримся есть примеры работ логин скайпа SEO2000

Avito321vom 22 окт 2017 11:45
<b>Пополение баланса Авито (Avito) за 50%</b> | <b>Телеграмм @a1garant</b>

<b>Приветствую вас, дорогие друзья!</b>

Будем рады предоставить Всем вам услуги по пополнению баланса на действующие активные аккаунты Avito (а также, абсолютно новые). Если Вам необходимы конкретные балансы - пишите, будем решать. Потратить можно на турбо продажи, любые платные услуги Авито (Avito).

<b>Аккаунты не Брут. Живут долго.</b>

Процент пополнения в нашу сторону и стоимость готовых аккаунтов: <b>50% от баланса на аккаунте.</b>
Если необходим залив на ваш аккаунт, в этом случае требуются логин и пароль Вашего акка для доступа к форме оплаты, пополнения баланса.
Для постоянных заказчиков гибкая система бонусов и скидок!

<b>Гарантия: </b>

<b>И, конечно же ничто не укрепляет доверие, как - Постоплата!!!</b> Вперед денег не просим...

Рады сотрудничеству!

<b>Заливы на балансы Авито</b>
________

как авторизоваться на авито если аккаунт удалён
идей что можно продать на avito чтобы быстро заработать денег
как разблокировать аккаунт с авито
как пополнить кошелек на авито с телефона на
купить использованный аккаунт на авито

SanDeGoSu 02 окт 2017 22:49
Приветики мальчики и девочки. А как интересно Вы
проводите своё свободное время?

Avito321vom 29 сен 2017 01:06
<b>Пополение баланса Авито (Avito) за 50%</b> | <b>Телеграмм @a1garant</b>

<b>Приветствую вас, дорогие друзья!</b>

Будем рады предоставить Всем вам услуги по пополнению баланса на действующие активные аккаунты Avito (а также, абсолютно новые). Если Вам надо конкретные балансы - пишите, будем решать. Потратить можно на турбо продажи, любые платные услуги Авито (Avito).

<b>Аккаунты не Брут. Живут долго.</b>

Процент пополнения в нашу сторону и стоимость готовых аккаунтов: <b>50% от баланса на аккаунте.</b>
Если нужен залив на ваш аккаунт, в этом случае требуются логин и пароль Вашего акка для доступа к форме оплаты, пополнения баланса.
Для постоянных заказчиков гибкая система бонусов и скидок!

<b>Гарантия: </b>

<b>И, конечно же ничто не укрепляет доверие, как - Постоплата!!!</b> Вперед денег не просим...

Рады сотрудничеству!

<b>Заливы на балансы Авито</b>
________

avito аккаунты wot
авито заблокировал аккаунт что делать
займу денег на авито
авито деньги на кредит
продали телефон авито требуют вернуть деньги

Nataliehic 25 сен 2017 00:17
Данное сообщение размещено здесь с помощью XRumer + XEvil 3.0
XEvil 3.0 - революционное приложение, способное обходить практически любую антибот-защиту.
Распознавание капчи Google, Facebook, Yandex, VKontakte, Captcha Com и свыше 8400 тысяч других типов!
Вы читаете это - значит, это работает! ;)
Подробности на официальном сайте XEvil.Net, есть бесплатная демо-версия.

DeweyReX 24 июн 2017 06:50
If you have a desire to learn how to earn from $ 500 per day and work only for yourself, then write to us at email: admin@makemoneyonline.universalxyzdom.xyz

Stavr 16 ноя 2016 09:54
Про классы и объекты рекомендую почитать - "C# для школьников", Дрейер М., самое начало.
Там очень хорошо разжевана эта тема.

Злобный программер 31 окт 2016 13:50
Тему ООП просто нереально объяснить в 3,5 кб текста.
Это 1,5 страницы книги, когда на самом деле на эту тему нужно не меньше 100 печатных страниц с примерами. И то не факт, что с 1 раза будет всё понятно.
P.S. Видимо, тут все новички вундеркинды!

Рамин 29 май 2016 13:08
Спасибо все обьяснено очень понятно

Andriy 17 мар 2015 22:52
Все описано коротко і ясно! Дякую за урок!!!

Slavik 30 сен 2014 21:00
спасибо за урок

Максим 21 май 2014 18:50
Яков
---
Да, уже работает нормально

Яков 21 май 2014 17:59
admin
______
спасибо!!!Так нормально будет?
FileStream longest = new FileStream("d:\\Восток рутина.txt", FileMode.Open);
StreamReader potok3 = new StreamReader(longest);
int max = 0;
int temp = 0;
while (!potok3.EndOfStream)
{
temp = potok3.ReadLine().Length;
if (temp > max)
max = temp;
}
Console.WriteLine(max);
potok3.Close();
Console.ReadKey();

Максим 21 май 2014 14:04
Яков
---
if (potok3.ReadLine().Length>max) // здесь считывается и проверяется одна строка
max = potok3.ReadLine().Length; // здесь снова считывается строка, и она уже не та что в условии

Считайте один раз строку в переменную, и дальше с не работайте

Яков 21 май 2014 03:17
p.s. к третье задаче(11 урок)
у меня при поиске самой длинной строчки на 18-й строчки максимальная длинна каким то раком превращается из 46 в 42,я ваще в непонятках...в чем может быть ошибка??

Яков 21 май 2014 02:59
В 11 уроке нет возможности добавить коментарий,там отсутствует кнопка,поэтому пишу здесь.
у почему то выходит неправильный ответ в 3-ей задаче
я проверил,выводит не максимальное число
//задача 3
FileStream longest = new FileStream("d:\\Восток рутина.txt", FileMode.Open);
StreamReader potok3 = new StreamReader(longest);
int max = 0;
while (!potok3.EndOfStream)
{
if (potok3.ReadLine().Length>max)
max = potok3.ReadLine().Length;
}
Console.WriteLine(max);
potok3.Close();
Console.ReadKey();

у меня правильный код?Если нет,я буду дальше искать проблему,может она в текстовом файле.

Максим 02 апр 2014 18:49
Ромик
---
Изучайте здесь всё последовательно

Ромик 02 апр 2014 14:20
Обязательно ли читать заранее об принцыпах, на которые выведены ссылки?
Если я не прочитал, мне сложнее будет усваивать информацию? Я , просто, хочу все последовательно и как надо:)


Добавить комментарий:

Имя (обязат.)
E-mail (обязат., не публикуется)


Для вставки ваших программ пользуйтесь кнопкой "исходный код"
Вёрстка сайта с нуля

Уникальный Видеокурс!

"Научись верстать сайты и заработай на этом!"

Получить видеокурс

Подпишись на курс по программированию, и узнавай первым о новых уроках!

RSS подписка Страничка Вконтакте Мы в Twitter

Ошибка в тексте? Выделите ее мышкой и нажмите Ctrl+Enter
Поблагодарить автора: Номер карты (ПриватБанк)
5168 7572 4170 8660
WebMoney
R372544961915 U685637142028 Z999792764387
Наверх
Система Orphus