Найти - Пользователи
Полная версия: Оцените ОО код.
Начало » Python проекты » Оцените ОО код.
1 2 3 4 5 6
FishHook
georgiy_ya
А насчёт объектов и экземпляров?
У этих терминов разное семантическое значение. Объект в ООП - это некая сущность, обладающая свойствами и методами. Экземпляр - это переменная некоего типа полученная инстанциированием класса этого типа (вызовом конструктора). Фактически, объект не обязательно является экземпляром класса. Это зависит от конкретной реализации. Например, в питоне каждый объект - это экземпляр какого-то класса. Но в JavaScript (с определенными допущениями) объект можно создать не вызывая конструктор какого-то класса
 var a = {foo: "bar"}
объект есть, но этот объект экземпляр чего? (ну да, экземпляр Object, но это не важно)
В Джаве можно на лету создать безымянный класс и инстациировать его. Если этот объект мы передадим в другой метод, то информацию о классе потеряем, у нас получится объект реализующий некий контракт, но у нас нет класса экземпляром которого он является.
int weight = point.doWithPredicate(new PredicateInterface(){
int calculate(Point p){
return p.getX() + p.getY()
}
})
Shaman
Тремя китами ООП называются инкапсуляция, наследование и полиморфизм, но если посмотреть на этот предмет под другим углом, с точки зрения практической полезности, можно выделить понятия “сервис”, “интерфейс” и “состояние”.
georgiy_ya
py.user.next
py.user.next
Тебе даже в книгах по питону могут писать, что это перегрузка, но это не перегрузка, а переопределение.

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

FishHook
Я не собираюсь учить другие языки и мне чужда общая терминология, я хочу знать “свой язык” и его терминологю. Зачем облегчать переход между языками? Или же - знать много языков это залог успешного программиста?

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

Я понимаю, я пошёл против системы и сейчас на меня обрушится ловина стариков с палками которые учили языки до моего рождения и будут говорить мол не знаешь терминологию не сможешь жить в обществе, учись, учись и ещё учись потом тоже учись!
FishHook
georgiy_ya
мальчик, иди в школу, распинаться еще перед тобой
Shaman
georgiy_ya
я пошёл против системы
Не забудьте сказать об этом системе, чтобы она была в курсе.
py.user.next
georgiy_ya
Вот-вот, зачем забивать мою голову всякой ненужной хренью, когда можно сказать, что это просто переопределение для экземпляров.
Это абстрагирование. Берут, допустим, какие-то действия и называют их одним словом, а потом используют только это слово. Так и книжки короче получаются, слов-то меньше.
Абстрагирование в программировании - важный приём, требующий навыка абстрагирования. Ты должен уметь абстрагировать понятия (набор понятий превращать в одно понятие). И в этом заключается ООП: ты собираешь винтики и шестерёнки воедино и называешь их механизмом икс, а потом этот механизм икс пишешь в виде класса и с ним потом общаются другие объекты, которым не нужно знать ни про винтики, ни про шестерёнки. А когда ты прячешь винтики и шестерёнки внутри абстрактного объекта (только для него, остальным они недоступны), это называется инкапсуляция. Благодаря инкапсуляции, все объекты, использующие механизм икс, продолжают его использовать даже тогда, когда мы все винтики и шестерёнки из объекта изымаем и заменяем на что-то другое. То есть код, который работает с механизмом икс, остаётся неизменным. И когда такого кода десятки тысяч строк написано, это начинает играть роль: становится не нужно их переписывать при замене винтиков.
JOHN_16
georgiy_ya
Я буду краток.
Самой большой ошибкой является логическая - вы создаете 2 экземпляра машины, а затем их … складываете! плюсуете. Как вы до этого вообще додумались? Как вы себе это представляете в реальной жизни?
На самом деле я бы мог дать еще около 20 комментариев на ваши ошибки, но так как
georgiy_ya
Так как временем я дорожу, формулы по физике я почти не помню, а смысла в написании этой задачи почти нету
georgiy_ya
Писал на скорую руку и много чего не учёл\пропустил, так как тупо было лень всё это описывать
я вообще не вижу смысла тратить на это времени больше чем это сообщение.
P.S. Если вы так не можете въехать в классы, если на ваш взгляд там все так усложнено да и вообще зачем они нужны не ясно, и код вы писать не хотите - то оно вам и не надо, может как и программирование в целом. Поиграетесь, поразвлекаетесь и забросите. Это нормально, такое бывает.
FishHook
py.user.next
не корми тролля, все что нужно этому борцуну с системой, чтобы ты его поуговаривал, попереубеждал, плясал перед ним как тот прораб из фильма про Шурика, а он бы возлежал и вяло слушал, а потом резюмировал: “До лампочки!”. Предлагаю всем высказаться, а потом тему надо закрыть.
georgiy_ya
Спасибо за понимание
georgiy_ya
Shaman
остро
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB