Object Oriented Programming (or 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.