Object-oriented (OO) programming is a powerful way to create logical objects that function together to create an entire software package. These objects represent the parts of your program using concepts you recognize in real life. For instance, if you have an accounting program, you'd create an accounts receivable, an accounts payable, and a customer object. You then compile all of these separate objects to create one amazing program.
Objects are comprised of separate entities called "classes." An object can be made of one or more classes. Using the accounting example, you could have classes such as payments, bills and vendors that make up an accounts payable object.
The Logic Behind Classes
Classes are a difficult topic if you come from a linear programming language background. Properties and methods make up basic class components. To get started with OO, the first step is to understand these properties and methods.
When you sit down to design your program, you must figure out the classes that will make up your objects. Classes make up logical parts of your object, so you must know what you need to create all of your objects. Good program design takes practice, because it's easy to forget some of your requirements. You then need to revise your software, which can be a major project if the changes are significant.
A good example of several classes that make up one logical "program" is the design of a car. Your car is made up of an exterior, an interior, an engine and a trunk. All of these parts would be represented as classes. Put these classes together and they form one car. The great part about using classes is that they are reusable, so you can create several cars with existing classes.
Properties are the parts of your classes that make up the "nouns." These nouns make up the "look and feel" of your objects. For instance, you have an exterior class. The properties for this class would be the color, style and size of the exterior. You only need one exterior class, and then you can dynamically change the properties to match your user input.
Properties are either retrieved or set. With the OO language, you can block other programmers from changing properties. For instance, you want to have several Mercedes cars. You can't just change the manufacturer of the car, so you want to block other programmers from changing this property. This function is accomplished by making the property read-only. When properties are read-only, other programmers can only retrieve them and they cannot change.
Methods are the "verbs" for your classes. Methods define any of the actions that occur within your objects. Using the car example, you need methods that move the car forward or backward, turn the steering wheel and turn the engine on or off. You perform these actions using methods. Linear programmers would recognize these methods as "functions."
Just like properties, you can create private or public methods. Private methods are contained within the class and aren't available to other classes. Public methods can be called by any of your other classes. Private and public class definitions allow you to control how your methods are controlled.
Put all of these properties and methods together, and you have a functional program. Your car can perform several actions (methods), come in different colors and styles (properties), and you can use this same code to make other cars in the future. Reusable code is another advantage to OO programming.
It takes some time to understand object-oriented programming, but once you understand classes, you've accomplished most of the battle. OO is dominant in the programming field, so you need a strong grasp of these techniques to work in the field.