Skip to main content

III. Introduction: Full Blown Object Oriented

Posted in

What Is a Full Blown Object Oriented Programming Language Versus an Object Based Only Language

To examine the differences between a full blown Object Oriented (OO) language, versus a Object based only language, we must first define a full blown Object Oriented language. Then, define an Object Based language and investigate the differences.

A full blown Object Oriented language is one that supports the following four features, or you could say functionalities. To be consistent, lets refer to them as features throughout this blog (Also, because there are languages termed "functional", that have different characteristics than an Object Oriented language, we will stick with the term "features").

The four features that make a language full blown Object Oriented are:

1. Abstraction
2. Encapsulation
3. Inheritance
4. Polymorphism

Now, this is the hard part to teaching those not familiar with OO languages. In order to define these four features, you must give examples. So, I could give examples in Java, C++, or any full blown Object Oriented language. But because my reader base are mostly easy language developers, that would defeat the point. I cannot assume my reader base knows any one particular language except Easy Language.

So, then naturally that begs the question "why not use EasyLanguage OOEL (Object Oriented Easy Language) to create examples." Well, because OOEL is not yet a full blown OO language, it of course is not possible to create 4 original examples. So now what? Well, thankfully, OOEL does provide a full blown OO library that we can use for examples. Again, I would prefer to create my own examples, because it makes learning these four features easier, however, again, because OOEL is not yet full blow Object Oriented, the libraries will have to do the job.

However, before we start that, I must assume the curious reader. For the curious reader, I am going to provide some links. I apologize the constant use of Wikipedia, but to be honest, and I have taken my time in finding resources, and Wikipedia provides not only some of the best definitions, but other resources. Thus, before I move forward, let me provide some resource links.

And again, we are going to go over each one in depth, so my reader is familiar with each feature. But there is always the eager reader that does not have time to wait for me:)

One more thing, I will be using pseudo code in order to generate what a future class in OOEL may look like. So what is pseudo code? Pseudo code is basically a way to express code that could apply to any language. Pseudo code could never be compiled, because, well it's not an actual language. It’s a high level description of a computer program, or lines of a program, that expresses any language, but reads like English (assuming one speaks and writes in the English language). Feel free to Google on "pseudo code" for those not familiar with the term. I will take actual code in Easy Language and express it in pseudo code so one gets an idea of how and why pseudo code is used.

Here are some resources, on the four features mentioned above, for the curious reader that will assist them understand what exactly makes a language Full Blow Object Oriented.

1. Abstraction -
a. http://en.wikipedia.org/wiki/Abstraction_(computer science)
b. http://www.mymindleaks.com/blog/article/object-oriented-programming-abstraction.html

2. Encapsulation
a. http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)
b. http://www.mymindleaks.com/blog/article/object-oriented-programming-%E2%80%93-encapsulation-is-not-just-hiding-data.html

3. Inheritance
a. http://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)
b. http://download.oracle.com/javase/tutorial/java/concepts/inheritance.html

4. Polymorphism
a. http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming
b. http://wiht.link/oo-programming

One should also be familiar with classes:

5. Objects and Classes
a. http://download.oracle.com/javase/tutorial/java/concepts/object.html
b. http://download.oracle.com/javase/tutorial/java/concepts/class.html


See some powerful OOEL Indicators and Strategies "OOEL Indicators and Strategies".