The Object-Oriented Thought Process
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.
Object Relationships
Look into the details of Encapsulation, Inheritance, Polymorphism,and Composition,
Thinking in Objects
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.
Exploring Encapsulation
Explore the basic concepts of encapsulation and how it fits in to the object-oriented programming model.
Hiding Data within Object-Oriented Programming
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.
Protecting Data through Object Oriented Programming
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.
Putting an Object in a Safe State
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.
The Components of a Class
Ever wonder what is really inside a class? Learn how to take a class apart and then identify and analyze the various pieces.
The Evolution of Object-Oriented Languages
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.
Object Responsibility
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.
Object Construction
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.
Inside Constructors
Uncover many of the implementation issues of designing constructors by
actually examining the bytecodes generated by the Java compiler.
Encapsulation vs. Inheritance
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.
Packaging Objects to Preserve Encapsulation
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.
Object Signatures
Avoid putting code in a frontline application that is specific to any specific implementation. The answer is to utilize the concept of wrappers.
Object Serialization
Explore the concept of object wrappers, simply another example of the paramount object-oriented concept pertaining to separating the interface from the implementation.
Using More Advanced JDBC Features
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.
Objects and Client/Server Connections
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.
Primitives and Object Wrappers
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.
Objects and Collections
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.
Objects and Collections: Vectors
Add a new array to your coding toolbox, one that can dynamically grow based on the needs of the application.
Objects and Interfaces
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.