Start learning with our library of video tutorials taught by experts. Get started
Viewers: in countries Watching now:
Most modern programming languages, such as Java, C#, Ruby, and Python, are object-oriented languages, which help group individual bits of code into a complex and coherent application. However, object-orientation itself is not a language; it's simply a set of ideas and concepts.
Let Simon Allardice introduce you to the terms—words like abstraction, inheritance, polymorphism, subclass—and guide you through defining your requirements and identifying use cases for your program. The course also covers creating conceptual models of your program with design patterns, class and sequence diagrams, and unified modeling language (UML) tools, and then shows how to convert the diagrams into code.
During this course, I'll be using a few common diagramming techniques for drawing classes and interactions. These diagrams are from something called UML, or the Unified modeling Language. A UML isn't a programming language. This is a graphical notation specifically for drawing diagrams of an object-oriented system. A UML describes over a dozen different diagrams, but we're only interested in a few of the most common, such as the classic class diagram. Now you've seen this diagram already. This comes from UML.
It's a very simple graphical representation of a class. It just has three sections: the name of the class, the attributes, and the behaviors or methods. And this allows me to quickly sketch out an idea that is readable and understandable, whether you're using Java, C#, VB.NET, Ruby, Python, Objective-C, and so on. And as we go forward we'll see not just the class diagram, but a few more diagrams that are in common usage, but I want to be quite specific.
UML is not our goal here, and knowing more UML will not magically make you a better object-oriented developer. But there are a couple of reasons you may need to learn more, say, if you work for a large enterprise that already uses a lot of UML. But I will admit that my personal bias is that for most developers, knowing a little UML is actually more useful than knowing a lot of UML. Because knowing a lot of UML can lead to an over-emphasis on the diagrams themselves, and that's the tail wagging the dog.
These diagrams should be a quick, useful communication tool, a support system for your brain, not the other way around. And for the same reason, I do suggest that when you start to use them you focus first on doing them just on paper or on a whiteboard and not using an electronic tool.
There are currently no FAQs about Foundations of Programming: Object-Oriented Design.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.