LinkedIn Learning is the next generation of Lynda.com. Grow your skills by exploring more Software Development courses today: www.linkedin.c... #SoftwareDevelopment #HowTo #LinkedIn
I have once read a post where someone brilliantly explained this concept through the use of Pokemon. You can think of Pokemon, analogously as a concept, to be class. Every pokemon has health points (hp) and power points(pp) in the same way classes have attributes. Every pokemon can attack() or defend() in the same way classes have functions. Now that we know what Pokemon or classes are, Baulbasaur (the object) can now be created. Thus by understanding what a Pokemon is, many of them can be made using similar rules (the class). Hope someone likes this.
wow, that's a great way of thinking about it. I'm doing a distance ed course for Software design and dev and I've got like a week to learn the concepts etc of OOP and that explanation coupled with the vid has gone a long way in helping.
This is seriously the best explaination I've heard about OOP, thank you very much for sharing your knowledge. It's appreciated by the community trying to learn and understand.
3 years I've been doing programming. 3 years people have been trying to teach me what classes/methods/objects were. And you've taught me better in 5 and a half minutes xD Thanks for this video
I am such a fan of Simon Allardice courses. I have learned a lot from Simon's courses on Lynda.com. Simon's course on JavaScript fundamentals is first rate. I am a regular Lynda.com subscriber and have no vested interest.
You are really knowledgeable and a sound teacher. A truly master who are willing to transfer IT foundations. We are learning basic but powerful concepts. Many thanks
I have been programming for 37 years and I believe OOP is a load of bunk developed to make programming easier for the average bear. I remember when I was in college in 1991. There was a computer aptitude test to attend the course, so these people were not stupid by any means. Just the same, the number of people who dropped out was staggering. Then during my career, the number of people I encountered who claimed yea, they were programmers for around 5 years, but then burned out and switched careers was equally staggering. I believe there is a small percentage of people who can handle procedural programming and OOP was developed to cater to the rest. OOP is beneficial for lets say game developers, but for the average business software developer, I don't believe OOP is necessary and probably makes things worse. Everyone knows OOP requires ore up front planning/design work. In the 30 years of my professional programming career, I have never had an issue isolating variables within my functions or code reuse. Just my 2 cents.
Class is defined as a template or blueprint which describes the state/behavior Of its object. In other words class is used to create a object. Nice explanation very clear and easy to understand for a newbie.
Wow. For once, I kinda get it. Wish he'd gotten deeper into objects at the end but all in all, I'm at a much better place with this concept. Plus, he's got a cool voice & accent
Damn! I've been googling for a year on what OOP language really is and all answers I've found are either too technical (for a newbieee like me) or vague.. And then I found this video! Great job!
Perfect video to share with my friend who is beginning to grasp programming basics at its core. And quite frankly this is best explanation of OOP I've heard.
This is the best OOP tutorial I've ever watched... yet it's been removed from Lynda/LinkedIn Learning now? What gives? Edit: Found the answer on Allardice's website: "I’m extremely proud of the content I made while I was [at Lynda] - they became the most-watched and highest rated courses across the entire library. A few of these courses can still be found on LinkedIn Learning, but over the last few years others have been retired, replaced, or just removed. I know this has been a frustration for many viewers who enjoyed those courses, and I can only apologize-it’s not something I can control. (And if you haven’t seen them yet, check out my Pluralsight courses above!)"
I have gone through many videos on youtube regarding the topic of oop but I must say this is the one which actually explained me the things well and cleared many things but the tutorial I think should dip more into the concept and the narrator of the video can do this job well. Good job!
A few nits and one more substantive observation about an excellent introduction. First, the nits. In an introductory video like this, I prefer to introduce newcomers to the actual vocabulary used in the field rather than "simpler" terms that only create confusion later. Programmers find it most clear to describe a specific object as an "instance" of a class. Next, each element of an object's internal state is called an "instance variable". A "property" is something else entirely, and the difference matters. A "property" is a named value associated with an object, but not part of it. In order to change the value of an "instance variable", the object itself must be changed. In order to change the value of a "property", no change to the object is needed. An instance variable of an automobile might be a "transmission". A property of the same automobile might be "license number". A more substantive observation regards the topic of comparing various languages and how they accomplish object orientation. A competent programmer who understands the "big ideas" of object-orientation can write object-oriented code in ANY language. Several modern languages provide "object oriented" extensions that add "syntactic sugar" to simplify this task. For example, php was created as a scripting language, and provides its object oriented behavior through language extensions. The result is usually clumsy in comparison to languages created as object-oriented from the beginning. The main "big ideas" of object oriented are that an "object" is a dictionary -- a collection key-value bindings -- with a specific memory address. A "method" is a function that acts on that dictionary. The BIG difference between object-oriented and procedural code is that a method is called INDIRECTLY. The class of an instance contains something called a "method dictionary". This is a dictionary that maps the NAME of a method (called it's "selector") to the function that implements that method (called it's "body" in some languages). So, in response to some of the comments below, the reason why O-O can be easier than procedural code is that a given method ("printOn") can be implemented by multiple classes ("Document", "Email", "Drawing" ...). The actual code that renders an instance of document on a particular printer can be (and usually is) different from the code that renders a drawing. From the outside, a programmer writing a user interface doesn't need to know or care WHAT is being printed -- only that the instance implements "printOn". THAT encapsulation is the reason why object-oriented is so appealing. Finally, again in comparing languages, a fundamental difference has to do with whether the classes, methods, and other components of an application (its "metastructure") are themselves accessible to the application. In many languages, they are not. This was a significant obstacle to acceptance of the first versions of C++. Other languages (like Java) are "reflective", so that a method of an object can, at runtime, have access to the its class, other methods, and so on. Some languages (like Smalltalk) are "causally reflective", so that a change to the class causes a desired change to the behavior of instances of that class (and the classes that inherit from it). Again, kudos for a very accessible introduction to this very deep field.
Like the explanation, voice, examples, tone, it makes very easy to assimilate. Thanks. I have been involved in Firmware development and i didnt use OOP for anything. So it is hard for me but i geit now
When i always hear about OOP i am so happy that i have read about Plato philosophy of Theory of Forms. This video was quite good too but for me it always clicked thanks to knowing some Plato..
If you want to more easily understand OOP, call it something else. OOP is jargon and the name was created probably to confuse people so coders could ask for bigger paychecks. As far as I can tell, OOP is modular/macro programming. You define modules and macros that can be called and manipulated easily and at will, rather than typing out the whole thing every time. "Don't reinvent the wheel," as they say. Create a class called Wheel that has attributes such as mileage, age, material, size, etc. Now you simply create them as differently and as many as you like: a=Wheel(103e3, 2008, aluminum, 14x100, ...) b=Wheel(91e3, 2012, magnesium, 15x114.3, ...) Now as you write the rest of your code and create Car, Truck, Tractor, Airplane, and other classes that use wheels, you define them such that they inherit what you want: CRX=(Honda, Civic CRX, 1991, black, 160e3, *a,* ...) which can be changed at will: CRX.wheel = *b* This is easily understood in terms of modularity and shouldn't require one to scour the depths of the Internet to gain an understanding of it. It gets deeper, of course, but the gist of it is easy enough to explain, especially, as I said, if they would give it a more straightforward name.
At tad confusing on one part... I used a language which called classes => objects, and objects => instances But, I still got it... and enjoyed the energy of the speaker, and the topic :3
Glad to not watch another vid telling about car being class color being attrib and drive being method and just that and we are lik Wtf!! But sir you explained it so much better than anyone could have explained to me .
It would be good if all OO languages automatically implemented a 'Method-Oriented' grammar for object methods so you can do Object.Method (normal OO) or Method (Object)... File1.save or save (file1)... The compiler can warn of any namespace clashes and use a local override policy and strong typing to implement.