Object-Oriented Programming

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

This is the most clear explanation I've ever seen.

Please don't quit. This channel has been a gem!

prskis
Автор

I learned from this video that I have been performing spaghetti-oriented programming.

DrHokeyPokey
Автор

"A Car is not a kind of steeringwheel", wise words.

juubes
Автор

In practice, most code is very abstract, so identifying the proper 'things' that should make up your code isn't easy (and arguably a fool's game). I would just write the code as straight procedural code, then see if you can logically group stuff into classes one at a time. The biggest thing to keep in mind is to be careful about using inheritance. In fact, you shouldn't feel obligated to use inheritance at all.

briantwill
Автор

00:00 - Definition
05:00 - encapsulation
07:45 - inheritance
12:35 - inheritance usage guide
14:05 - multiple inheritance
16:32 - overriding inheritance
18:55 - polymorphism
22:00 - constructors
22:48 - interface
25:15 - abstract class
26:25 - prototypical inheritance

cannon
Автор

Not sure why people care about your tone of voice. If you were here to learn you would be paying attention to what he is teaching. Not debating how he sounds. He is to the point, clear, and understandable. Fantastic refresher video for those who have been out of the OOP game for awhile.

therapturekid
Автор

Yours is the first straight forward explanation of when an interface is used. Thank you.

zzyzx-ighs
Автор

My favourite part of OOP-esque approaches is using mixins / multiple inheritance. Specifically to have mixins that provide a fully self-contained set of functionality, such that those mixins can be sprinkled into other classes later. Programming starts to feel like cooking, with mixins providing convenient bits of spice and flavour that gets you where you need to be.

CaptainAardvaark
Автор

Can I just say your presentation is brilliant I love the fact that you avoid using some of the typical terminology that others use and take time to explain what you have said, others on here try to wrap everything in once sentence and it is terribly confusing.

Kiiiizle
Автор

I really like your concise definition of object oriented programming. Something my OOP Professor failed to impart over an entire course, you delivered in 2:24.

ericmyrs
Автор

prolly the best explanation of the topic i have ever seen

douglasoak
Автор

My final year of comp-sci in highschool was 1993, and the main thrust was C. However I'd written a bunch of games and utilities in Qbasic on my own but owing to the limitations of arrays having to be generally of a pre-defined size, no local variables, etc., I'd begun to rewrite these in turbo-pascal. TP had the ability to define classes and use objects but at that time no course at high school nor my own research into basic, Qbasic, or C had ever come across them, my implementations stayed strictly procedural. In TP, defining linked (or doubly-linked) lists of records provided more than enough flexibility in terms of size and 'groupability' in terms of data for anything I'd previously written to be vastly improved in the ports over from Qbasic. Simply paying close attention to any possible accidental side effects meant I simply had to pass pointers to a record which needed to be updated avoiding unnecessary duplication of data. At a time when a 1G hard drive was a rarity and a 486 was fast, well this speed things up dramatically. Doubly linking lists made it unnecessary to run through the entire list from the head node to find a parent item. In fact I often kept lists in loops where tail pointed to head directly removing the constant need to check for the tail case: perhaps dangerous in that infinite loops might occur, but with careful logic these could be avoided and the increase in performance was marked on slow machines. "Inheritance" could be achieved by having a field of one record be the type of a different record. If many sprites needed the same graphics (multiple instances of monsters) a loop of the frames of the sprite's graphics stored in a looped linked list could be pointed to from a pointer stored in a field of the monster's record, eliminating storing multiple copies of the same bitmaps. Memory was at a premium after all!
Perhaps I'm old-school, but I don't see any advantage to OO over an approach like this. It seems unnecessarily complicated and resource intensive, particularly for single thread, single programmer projects... I'm sure many people will argue the opposite but records, pointers, and linked lists are group able, flexible, and require no copy when passed to functions and procedures as long as you take care of your logic when changing values of fields to not produce unwanted side effects: good practice anyways, no?

JeremyNasmith
Автор

Yes, experience makes it easier, and in time you pick up on conventions, like when to make factories, managers, singletons, and so forth.

briantwill
Автор

This provided a GREAT crash course for a job interview, my coding is a bit rusty, but this was straight forward and legit. Thanks a lot!

lordnoar
Автор

He sounds a bit like the usual voice they use for Bruce Wayne. XD
Awesome! The video itself was quite informative and very easy to understand.

Jomster
Автор

"My cat has 7 lives left, yours has 5." is this a threat.

hyddra
Автор

Thankyou, after watching this video I feel like I understand not just what OOP is, but also why I would want to use it. Some of the other videos I'd seen covered the same topics but left me scratching my head about what it all actually means.

michaelkenner
Автор

This feels like the villain origin story

GreaterJan
Автор

9 years later, this video is still relevant! 🔥

jaehyi
Автор

thanks and I prefer your monotone rather than pure marketing Blasie like tone.

spiral