Object-Oriented Programming (OOP) is a programming technique that revolves around the concept of “objects”. Objects are nothing but real-world entities around us, like students, birds, mountains, chairs, etc. By utilizing OOP, developers can create applications at a higher level, where the focus shifts from controlling the flow of execution to objects interacting with one another in predefined ways. This approach allows programmers to create new programs or systems by combining software objects. This article is a continuation of the learning Java series.
Table of Contents
In the real world, objects are ubiquitous and can be classified into various categories. For instance, humans, vehicles, libraries, rivers, watches, and fans are physical objects, while logical objects include examination results and bank accounts. Each real-world object possesses distinct characteristics and behaviours. For instance, humans have characteristics such as gender, age, height, weight, and complexion, while their behaviours encompass walking, eating, working, reacting, and more.
The object-oriented philosophy suggests that the things manipulated by the program should correspond to things in the real world.
- Classification is called a Class in OOP
- A Real-world entity is called an Object in OOP
- Characteristic is called Property in OOP
- Behavior is called a Method in OOP
Class in OOP
A class is the building block in Object-Oriented Programming. It can be defined in multiple ways:
- A class is a blueprint for an object.
- A class is a user-defined data type.
- A class is a collection of objects of the same kind.
- A class is a user-defined data type that combines data and methods.
A class describes both the data and behaviours of objects. It contains data members (also known as field, property or data) and member functions (also known as method, action or behaviour). An object is an instance of a class and can be thought of as a variable that belongs to a specific class. It serves as a data structure combining data and functions within a single entity. Objects in object-oriented programming (OOP) are akin to real-world entities, representing the basic runtime entities in the program.
The following figure shows some common real-world classes with their properties and behaviours.

Object in OOP
In the Java programming language, class variables are commonly referred to as objects. We can access the member variables and member functions defined within a class by utilising objects. Objects represent various entities, such as people, places, or items that a program interacts with.
For instance, if we have a class called “Country,” the objects of that class can include Pakistan, China, Japan, the United States, and so on. A single class can create any number of objects, as shown in the following figure.

The following table shows some real-world class and their objects. Note that you can create as many objects of a class a many you want. But every object will have its own set of attributes and functionalities.
Some classes and their objects
Class | Objects |
Person | Allen Turing, Elon Musk, Nusrat Fateh Ali Khan |
University | Islamia University of Bahawalpur, Punjab University, Comsats University |
Book | Quran Majeed, C++ in hand, Let us C, Rich Dad Poor Dad |
Student | Aqsa, Ali, Chris, Nadeem, Shakeel, Usman Ch. |
Cold Drinks | Coca Cola, Pepsi, Marinda, Gourmet Cola, Next Cola |
Social Media | Facebook, Twitter, Instagram, LinkedIn |
Fee | Tuition Fee, Examination Fee, Check-up Fee |
The following table shows the difference between class and object.
Class | Object |
1. For a single class, there can be any number of objects. For example – If we define the class as River then Sutluj, Ravi, and Sindh can be the objects of the class River. | 1. there can be any number of objects for a single class. For example – If we define the class as River, then Sutluj, Ravi, and Sindh can be the objects of the class River. |
2. The scope of the class is persistent throughout the program. | The objects can be created and destroyed as per the requirements. |
3. The class can not be initialized with some property values. | We can assign some property values to the objects. |
4. A class has a unique name. | Various objects having different names can be created for the same class |
Four Pillars of Object-Oriented Programming
Four pillars of OOP provide real power to OOP.
- Abstraction
- Inheritance
- Polymorphism
- Encapsulation
Let us discuss these one by one
1. Abstraction
Abstraction is a key concept in OOP that involves presenting only relevant data and hiding unnecessary details from the user. It allows users to interact with objects without being concerned about the underlying implementation. For example, when logging into a Facebook account, users enter their credentials and click “login” without knowing how the data is sent to the server or verified. Abstraction simplifies complex processes, allowing users to focus on essential tasks and improving code maintainability and user experience.
Let’s explore another example of abstraction. Consider a car object. It consists of smaller components like the gearing system, steering mechanism, and engine, each of which has its own subsystems. However, for an ordinary person, a car is just a singular object that can be operated effectively through its subsystems. He will not consider about internal subsystems of the car. In this way, abstraction plays a crucial role in simplifying complex real-world systems. In Java programming, abstract classes and interfaces are utilized to achieve abstraction. In Chapter 7, we will delve into a more comprehensive discussion of this concept, providing a deeper understanding of how abstraction is applied in Java and its significance in implementing real-world systems.

2. Inheritance
Inheritance involves the concept of the parent-child relationship. In inheritance, the child object gets all the properties and behaviours of the parent object, plus it also has its own properties and behaviours. It provides code reusability. Inheritance is used to achieve runtime polymorphism. In Java, we extend other classes and implement Interfaces to achieve inheritance. We will discuss inheritance in detail in the coming articles.

3. Polymorphism
When one task can be performed in multiple ways, i.e. known as polymorphism. For example, to convince the customer differently, to draw something, e.g., a shape or rectangle, etc.
In Java, we use method overloading and method overriding to achieve polymorphism. Another example can be to speak something, e.g. cat speaks mew, a dog barks woof, etc. Figure showing how the same person behaves differently in different situations.

4. Encapsulation
Encapsulation refers to the binding or wrapping of code and data into a single entity. It is like a capsule that contains various medications. In the context of Java programming, a class exemplifies encapsulation. A Java bean serves as a prime example of a fully encapsulated class. The intricate details of encapsulation will be thoroughly explored in Chapter 6, providing a comprehensive understanding of this concept.

Object Oriented Programming (OOP) in Java
As both a high-level language and platform, Java has gained immense popularity as one of the most widely used object-oriented programming languages. It offers a secure, robust, and powerful environment for developing various software applications. In the context of programming, a platform refers to the hardware or software used to execute programs. Java, with its own Application Programming Interface (API) and runtime environment (JRE), can be considered a platform in itself.
According to Sun, approximately 3 billion devices run Java, highlighting its widespread adoption. It is utilized in developing diverse applications, ranging from desktop applications such as PDF readers, media players, and anti-virus software to web applications powered by the mighty Java language. Enterprise applications, characterized by their distributed nature, such as banking systems, also heavily rely on Java for their development. Additionally, Java finds applications in mobile app development, embedded systems, gaming, smart cards, and robotics technology.
To illustrate the basics of Java, let’s consider a simple “Hello” program that provides an introductory understanding of the language. A detailed explanation of this example will be presented on the next page, offering a step-by-step guide for better comprehension.
class Sample{
public static void main(String args[]){
System.out.println("Hello Java");
}
}