Three Main Principles of OOP (Object Oriented Programming)
OOP is actually classified by three main principles:
These appear to be frightening terms but are actually fairly easy principles to grasp.
In order to figure out how to program with java, you'll need to understand these principles.
So let's consider our first main concept of OOP, Encapsulation. Encapsulation just
means we want to limit the access that some other pieces of code have to this particular
object. So, to illustrate, if you have a Person object, and this Person object has a first and
last name as attributes.
In the event another chunk of code attempts to modify your Person object's first
name to be say "Frank3", you could take note of what the first name is trying to be set to,
and remove any digits so that we are simply left with "Frank". Without encapsulation, we will
not have the ability to prevent "silly programmers" from modifying the values of our variables
to something which wouldn't seem sensible, or worse, break the application. Seem sensible?
The second concept of OOP, and a essential principle if you wish to learn how to program
with Java, is Inheritance. This specific concept refers to a super class (or parent class)
and a sub-class (or child class) and the simple fact that a child class acquires each of the
attributes of its parent. You can think of it in terms of a real world circumstance, like a
real parent and child. A child will probably inherit certain traits from his or her parents,
like say, eye colour or hair colour.
Allow us to imagine yet another example in terms of programming, say we have super
class "Vehicle" and sub-classes "Car" and "Motorcycle". A "Vehicle" possesses tires, therefore
through inheritance so would a "Car" and a "Motorcycle", however a "Car" has doors, and a
"Motorcycle" does not. So it wouldn't be accurate to state that a "Vehicle" has doors, as
that declaration would be inaccurate. So you can see how we could determine all the
aspects that are similar regarding a "Car" and a "Motorcycle" and thus identify them inside
of the "Vehicle" super class.
The 3rd concept of OOP is Polymorphism. This specific concept appears to be one of the
most frightening, but I'm able to explain it in simple terms. Polymorphism means that an object
(i.e. Animal) can take on several forms while your program is operating.
Let's imagine you have designed an Animal class and defined the method "Speak".
You then asked three of your buddies to develop kinds of animals and have them implement
the "Speak" method. You won't know what sort of animals your friends create, or how their
Animals will speak, unless you actually hear those animals speak. This is very comparable
to how Java addresses this issue. It's called dynamic method binding, which simply means,
Java won't understand how the actual Animal speaks until runtime.
So maybe your friends have created a Dog, Cat and Snake. Here are three varieties
of Animals, and they each one speaks distinctly. Whenever Java asks the Dog to speak, it says
"woof". Anytime Java asks the Cat to speak, it says "meow". Whenever Java requests the snake
to speak, it hisses. There's the beauty of polymorphism, all we did was to define an Animal
interface with a Speak method, and we can make a bunch of kinds of animals which speak in their
own specialized way.
To learn more about how to program with Java, you will find a wealth of straightforward java
tutorials supplied on the How to Program with Java web site.