http://www.developer.com/lang/article.php/3628381/The-Object-Oriented-Thought-Process-Index-Page.htm
The Object-Oriented Thought Process Index Page
August 24, 2006
This is the first installment in a series of articles that will introduce and describe fundamental object-oriented concepts. These concepts are part of the foundation that any programmer will need to make the paradigm shift from procedural programming to object-oriented programming.
Get a clear picture of Object-Oriented Development by comparing it to something you already know - procedural development.
Look into the details of Encapsulation, Inheritance, Polymorphism,and Composition,
Object-oriented development is a design technique rather than a coding convention. In developing an OO model, you must focus much more on the design than the code. To create a solid design, you must first understand the concepts involved in designing the object model.
Doing things in an Object-Oriented way is more of an art than a science.
Explore the basic concepts of encapsulation and how it fits in to the object-oriented programming model.
Explore encapsulation by delving deeper into the topic of data hiding. Discover how this important concepts of object-oriented design provides a much higher level of security for your classes as well as provides many programming advantages.
Controlling access to all attributes is one of the most important concepts of object-oriented design. By using methods to control access to attributes you can provide a much higher level of security for your class as well as providing many programming advantages.
A goal of every object-oriented design is to put the object into what is called a safe-state. By this we mean that the object is in a state that will not cause the system to be unstable. Learn about several of the mechanisms that are provided to assist in the construction of safe objects.
Ever wonder what is really inside a class? Learn how to take a class apart and then identify and analyze the various pieces.
What really makes a programming language an object-oriented language? Explore the history and evolution of object-oriented languages so that you will have a better understanding of what makes an object-oriented language tick.
Repeat after me... 'An object must be responsible for itself.'
Think of it as your new mantra. The concept of object responsibility and autonomy are key issues when designing a useful and secure object. The fact that objects are moved over networks makes object responsibility and autonomy even more important.
Learn the art and science of constructing objects by exploring how constructors work and why you need them. These concepts are part of the foundation that any programmer will need to make the paradigm shift from procedural programming to object-oriented programming.
Uncover many of the implementation issues of designing constructors by
actually examining the bytecodes generated by the Java compiler.
Is it possible that encapsulation and inheritance may not be totally
compatible? Encapsulation and inheritance, along with polymorphism, are the guidelines by which an object-oriented language is measured. Discover if inheritance can actually break the encapsulation rule that is the cornerstone of object-oriented development.
At first, the encapsulation/inheritance dilemma may seem confusing. In fact, you may start to wonder if the whole paradigm is simply too intricate for its own good. Yet, once you finally do understand the issues behind these examples, they really do become interesting intellectual exercises and useful development techniques.
Avoid putting code in a frontline application that is specific to any specific implementation. The answer is to utilize the concept of wrappers.
Explore the concept of object wrappers, simply another example of the paramount object-oriented concept pertaining to separating the interface from the implementation.
Create an application that demonstrates how to use JDBC to connect to a Microsoft Access database.
Expand your basic knowledge of connecting to a database from a Java application using JDBC. Discover how to use just about any database application you may want. In this example its a Microsoft Access database.
Learn how to use Java to create a simple Client/Server system and transfer an object across a network.
Moving an object from one place to another is often a tricky proposition. In languages such as Java and the .Net languages, while the ability to load objects dynamically is a major strength, we have to deal with the problem of keeping the class versions in sync.
Explore the various relationships among Java primitives, objects, and object wrappers. These are important concepts because the use of object wrappers is a very powerful technique and used in many applications.
Examine how objects relate to collections within object-oriented programming. You will start by covering arrays and will consider the advantages and disadvantages of the original concept of an array. You will then cover how collections such as ArrayLists provide additional functionality.
Add a new array to your coding toolbox, one that can dynamically grow based on the needs of the application.
Explore the topic of how objects relate to collections by taking an aside to cover Interfaces. Interfaces are an extremely important concept within Object-Oriented Programming; however, they are also very tricky to understand.