Object Oriented

Some time ago I reread an Object Oriented Analysis and Design book by Grady Booch. It brought back a lot of memories from my first college class on OOA. So I thought I would talk about some more main topics from this book.

As far as programming languages go, the two ends of the spectrum are static binding and late binding. Most languages may one or the other. However a language may fall between the two extremes. Static binding is where variable types are fixed at compile time. It is also called early binding.

Dynamic binding is where variable types are not all known at compile type. This is also known as late binding. Having just completed an introductory class on Java, I now know that Java is a language with dynamic binding.

Why do object oriented modeling anyway? In theory, it encourages reuse of design. It also allows you to build upon components which are already tested and known good. Furthermore, some of the object oriented outlook feels nature to people. Evangelists say that Object Oriented Programming gives you great power. I am not so sure about that claim.

Let’s wrap up by defining some important terms in OOA. State is the properties of objects, along with the current value of those properties. A class defines a common structure and behavior for objects. And cardinality refers to the numeric relationship between classes. For example, a car has four wheels.

Next time I will go into big topics such as polymorphism and aggregation. Again this all seems very relevant as I just learn Java, which is an object oriented language.