Кофе
emergency
дневник заведен 08-07-2007
закладки:
цитатник:
дневник:
местожительство:
Москва, Россия
[1] 27-03-2024 16:49
Между прочим

[Print]
Акша Таквааш
20-01-2020 10:00 Слушайте, а расскажите в двух словах с минимумом терминологии
Чем объектно-ориентированное программирование отличается от обычного?

Меня все детство мучил этот вопрос, пока я курил основы С++, я читал миллион объяснений, но нихера не понял.
Можно какой-то пример простой программы (с минимумом операторов, потому что я все забыл, кроме базовых команд if, while - типо того) сделанной так и так?
Комментарии:
Администратор<br>Буржуин проклятый
основная разница - это принцип структурирования проекта.
в объектно ориентированном программировании ты оперируешь не функциями и переменными, а объектами.
ты декларируешь некие классы, соответствующие информационным объектам твоего проекта.
между классами могут существовать различного рода зависимости и связи.
классы помогают тебе абстрагироваться от конкретной реализации того или иного куска кода, и сосредоточиться на важных вещах - логике, управляемости, и т.д.
в небольших программах разница невелика, однако в крупных проектах объектно ориентированное программирование существенно упрощает разработку и менеджмент.

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

в процедурном программировании ты напишешь что то вроде следующего:

function move_animal (animal, x, y)
{
      if (animal == dog) 
     {
           move_dog (x, y);
     }
      else if (animal == cat) 
     {
           move_cat (x, y);
     }
     и т.д.
}

в ооп ты сделаешь класс animal с абстрактным методом move, а затем унаследуешь от него классы cat, dog и т.д., каждый с конкретной реализацией своего собственного метода move:
class animal 
{
       void move (x, y);
}

class dog::animal 
{
       void move (x, y);
}

class cat::animal 
{
       void move (x, y);
}

в результате чего исходная функция move_animal сведется к элементарному
function move_animal (animal, x, y)
{
      animal.move (x, y);
}
Камрад
спасибо
ну значит я в целом таки знал что это такое с детства, но думал что не знал) ок
Закрыть