Object-Oriented Programming Basics With Java
In his keynote address to the 11th World Computer Congress in 1989, renowned computer scientist Donald Knuth said that one of the most important lessons he had learned from his years of experience is that software is hard to write! Computer scientists have struggled for decades to design new languages and techniques for writing software. Unfortunately, experience has shown that writing large systems is virtually impossible. Small programs seem to be no problem, but scaling to large systems with large programming teams can result in $100M projects that never work and are thrown out. The only solution seems to lie in writing small software units that communicate via well-defined interfaces and protocols like computer chips. The units must be small enough that one developer can understand them entirely and, perhaps most importantly, the units must be protected from interference by other units so that programmers can code the units in isolation.
The object-oriented paradigm fits these guidelines as designers represent complete concepts or real world entities as objects with approved interfaces for use by other objects. Like the outer membrane of a biological cell, the interface hides the internal implementation of the object, thus, isolating the code from interference by other objects. For many tasks, object-oriented programming has proven to be a very successful paradigm. Interestingly, the first object-oriented language (called Simula, which had even more features than C++) was designed in the 1960′s, but object-oriented programming has only come into fashion in the 1990′s.
This module is broken down into three sections. First, you will find a high-level overview that shows object-oriented programming to be a very natural concept since it mirrors how your hunter-gatherer mind views the outside world. Second, you will walk through object-oriented programming by example; learning to use a simple object, examining the definition, extending the definition, and then designing your own object. Finally, you will explore the most important concepts in object-oriented programming: encapsulation, data hiding, messages, and inheritance.
Download file here