дети ооп это



Автор Егор Иванов задал вопрос в разделе Java

Как понять ООП? и получил лучший ответ

Ответ от Александр[гуру]
ну так и не дёргайся... или это "модно"?...

Ответ от =Serge=[гуру]
Учебник для новичков, все ясно-понятно.
дети ооп это

Ответ от Максим[гуру]
Всё просто. Создаём объект Human - человека.
Human human = new Human(23,"Петя");
Где передали параметры в конструктор. Эти параметры сохранены в объекте human.
Теперь вызываем для конкретного конструктора с использованием его атрибутов функцию.
int age = human.getAge(); функция вернула его возраст. Вызываем другой метод. human.kill();
Вот так просто работать с объектами. Теперь создаем наследника классу Human, назовём Child. Child является Human, но может переписать его методы и добавить новые, расширить класс и изменить.
Human human2 = new Child(23,"Вася",human); тут мы ещё задали отца ребёнка.
Теперь вызываем human2.kill(); этот метод мог быть переписан.
Интерфейсы. Есть интерфейсы compatible, cloneable, runnable и др. Интерфейс принуждает класс иметь в наличии опр. методы, функционал грубо говоря, ничего более. compatible - объекты класса можно сравнивать (метод compatible, который говорит больше, меньше или равен). Заранее написанный алгоритм сортировки требует от объекта (любого) быть сравнимым compatible. Cloneable - объект можно скопировать методом clone. И т. д. и т. п. То есть наделяем свойствами.
А чтоб построить дом, надо ещё и изучать программную инженерию, проектировать программу.

Ответ от Globe[гуру]
Если линейное - это кирпичи, то ООП - это когда дают сразу блоки. Со стеклопакетами, вмурованными коммуникациями, шурфами для электропроводки, и, может, даже, поклеенными обоями и жильцами внутри. А задача стоит - соорудить деревенский сортир...
Вообще, объект - это такая вещь в себе. Черный ящик. Нажми на кнопку - получишь результат. Если нужен другой результат, берёте другой, более подходящий объект. Если подходящего объекта нет, создаёте свой либо с нуля, либо помещая внутрь какой-нибудь неподходящий и допиливая его результат напильником. Главное, чтобы в последующем уже ваш объект кто-то мог использовать как черный ящик для каких-то своих целей. Такая вот хитрая парадигма.
Например. Возьмем объект "мотор". Он умеет жрать топливо и выдавать крутящий момент. Добавим объект "бензобак", который умеет выдавать топливо, объекты "колёса", которые умеют крутиться, и объединим это всё в объект "автомобиль", снабженный рулём и педальками. Теперь пользователь может ехать, куда захочет, не задумываясь о том, как этот самый бензин превращается в движение колёс.

Ответ от Sergey V. Voronin[гуру]
Когда надоест писать один и тот же фрагмент кода сто раз, придётся перейти от линейного к процедурному программированию.
Когда надоест допиливать одну и ту же процедуру сто раз под каждую слегка отличающуюся задачу, из-за чего код разрастётся до многих десятков тысяч строк, тогда придётся перейти к объектному.

Ответ от Денис Рамусь[гуру]
Весь мир состоит из объектов - а как ими пользоваться это уже тема Объектно-ориентированный анализ и проектирование и после этого шаблоны проектирования.

Ответ от -Egor-[гуру]
Общий подход следующий : есть функции (методы) и данные, методы производят некие действия над данными; Как правило, в большинстве языках программирования, методы и данные группируются в объект; Но по факту это все то же линейное программирование где первым параметром в функцию всегда передается структура данных, и функция с ней работает.

Ответ от [гуру]
Здесь читаем:
А вообще, чтобы что-то изучить, нужно не читать книги (зачастую написанные теми, кто и сам-то мало знает и понимает, ибо сами афтары обычно не пишут программ серьезных), а применять это на практике.
Применения ООП можно разделить на 2 основных группы - "вынужденное ООП" (скажем, на Java чтоб написать хелловорлд, надо уже создать пакет+класс с методом main; или на Android для перехвата SMS надо создать класс, унаследованный от SmsObserver, потому что иначе просто не сделаешь; а еще все библиотеки - ООПшные, поэтому приходится все время создавать объекты готовых классов, вызывать методы и т. д., иначе просто не сделаешь), и второй случай - это когда вы сами применяете ООП в архитектуре своего приложения. То есть могли бы все побросать в main либо в обработчики событий, а вы вместо этого создаете класс с методами, может и несколько классов разного уровня, и весь код разбиваете по ним.
Так вот, в первом случае надо не учить ООП, а разбираться с той задачей, которую нужно реализовать, и искать уроки/исходники именно по ней. И искать их лучше в интернете, а не в книгах. А ООП вы при этом сами примените, даже не заметив.
А второй случай, во-первых, для совсем новичков неактуален (в хелловорлдах это просто не нужно), во-вторых, опять же нужно думать не об ООП, а о том, как большой код сделать более структурированным и ре-юзабельным (адаптированным для повторного использования). ООП - лишь средство для этого, а не цель. Нужно экспериментировать с разными средствами.
Чтобы стать хорошим архитектором, обязательно надо изучить множество библиотек, фреймворков, языков, сравнить их и выбрать наилучшие решения, изобретенные их авторами. И применять подобное у себя. Скажем, в .NET Framework можно записать текст в файл одной строчкой кода, типа такого:
File.WriteAllText("text", "D:file.txt");
Если вы пользуете C# и Java параллельно, то наверняка такую фичу захочется и в Java. И вот вы уже узнаете, что дабы ее реализовать, надо создать класс File, а в нем статический метод WriteAllText, в котором написать нужный код, а затем полученный класс можно юзать, и можно ре-юзать (то есть не нужно каждый раз что-то копипастить или вовсе писать заново, достаточно в пару кликов добавить тот класс в новый проект и фича снова будет работать)

Ответ от Е л[новичек]
Попробуй видеокурсы Тимура Батыршинова. Очень простым языком объясняет сложные вещи, в том числе ООП. Я прошел их, и знаешь - сам стал программировать и мог курировать дипломные проекты студентов.

Ответ от Ирэн Ницше[гуру]
Не учите кирпичи.
Стройте дом.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как понять ООП?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*