What is OOPS(Object-Oriented Programming)?
OOP treats data as a critical element in the program development and does not allow it to flow freely around the system. It ties data more closely to the functions that operate on it and protects it from accidental modification from outside functions. Object-Oriented Programming allows the decomposition of a problem into a number of entities called objects and then builds data and functions around these objects. The data of an object can be accessed only by the functions associated with that object. However, the functions of one object can access the functions of other objects
Why Do We Need Object-Oriented Programming?
We can build the programs from standard working modules that communicate with one another, rather than having to start writing the code from scratch which leads to saving of development time and higher productivity,
- An object-Oriented Programming language allows breaking the program into the bit-sized problems that can be solved easily (one object at a time)
- The new technology promises greater programmer productivity, the better quality of software, and lesser maintenance cost
- Object-Oriented Programming systems can be easily upgraded from small to large systems.
- It is possible that multiple instances of objects co-exist without any interference
- Object-Oriented Programming is very easy to partition the work into a project based on objects.
- It is possible to map the objects in the problem domain to those in the program.
- The principle of data hiding helps the programmer build secure programs which cannot be invaded by the code in other parts of the program.
- By using inheritance, we can eliminate redundant code and extend the use of existing classes.
- Message passing techniques are used for communication between objects which makes the interface descriptions with external systems much simpler.
- The data-centered design approach enables us to capture more details of the model in an implementable form.
Basics of Object-Oriented Programming
So let us look at each one of them one by one
- Objects are the basic run-time entities in an object-oriented system. They may represent a person, a place, a bank account, a table of data, or any item that the program has to handle. They may also represent user-defined data such as vectors, time, and lists. Programming problem is analyzed in terms of objects and the nature of communication between them. Program objects should be chosen
- such that they match closely with real-world objects. Objects take up space in the memory and have an associated address like a record in Pascal, or a structure in C.
- For example, if “customer” and “account” are two objects in a program, then the customer object may send a message to the account object requesting the bank balance. Each object contains data, and code to manipulate the data. Objects can interact without having to know details of each other’s data or code. It is sufficient to know the type of message accepted, and the type of response returned by the objects.
- The entire set of data and code of an object can be made a user-defined data type with the help of a class. In fact, objects are variables of the type class. Once a class has been defined, we can create any number of objects belonging to that class. Each object is associated with the data of the type class with which they are created. A class is thus a collection of objects of similar type.
- For example, mango, apple, and orange are members of the class fruit. Classes are user-defined data types and behave like the built-in types of a programming language. The syntax used to create an object is no different than the syntax used to create an integer object in C. If the fruit has been defined as a class, then the statement.
3. Data Abstraction
- Abstraction refers to the act of representing essential features without including the background details or explanations. Classes use the concept of abstraction and are defined as a list of abstract attributes such as size, weight, cost, and functions to operate on these attributes. They encapsulate all the essential properties of the objects that are to be created. The attributes are sometimes called data members because they hold information. The functions that operate on these data are sometimes called methods or member functions. Since the classes use the concept of data abstraction, they are known as Abstract Data Types (ADT).
- Example-Security administrators at government agencies might rely on data abstraction to approve their employees for clearance. For example, a gate surrounds a national headquarters, requiring employees to verify their identities before entering. As they approach the gate, the employees place their ID cards against the scanner to confirm their entry. They understand the purpose of the scanner and how to position their ID cards so the scanner can read the barcode properly.
- However, data abstraction obscures how the scanner differentiates barcodes from different ID cards and the signals it transmits to record the time and date the employee entered the gate.
4. Data Encapsulation
- The wrapping up of data and functions into a single unit (called class) is known as encapsulation. Data encapsulation is the most striking feature of a class. The data is not accessible to the outside world, and only those functions which are wrapped in the class can access it. These functions provide the interface between the object’s data and the program. This insulation of the data from direct access by the program is called data hiding or information hiding.
- Schoolbag is one of the most real examples of Encapsulation. Schoolbags can keep our books, pens, etc.
- When you log into your email accounts such as Gmail, Yahoo Mail, or Rediff mail, there are a lot of internal processes taking place in the backend and you have no control over it.
When you enter the password for logging, they are retrieved in an encrypted form and verified, and then you are given access to your account.
You do not have control over it that how the password has been verified. Thus, it keeps our account safe from being misused.
- Inheritance is the process by which objects of one class acquire the properties of objects of another class. It supports the concept of hierarchical classification. In OOP, the concept of inheritance provides the idea of reusability. This means that we can add additional features to an existing class without modifying it. This is possible by deriving a new class from the existing one. The new class will have the combined features of both classes.
- Examples-We all human being is a great example of real-life inheritance.
- Child and parents, all the properties of the father are inherited by his son.
- Father and Son Relationship. Here son inherits Father’s physical properties but the father can’t get the son’s physical properties.
Polymorphism is another important Object-Oriented Programming concept. It’s a Greek term, that means the ability to take more than one form. An operation may exhibit different behaviors in different instances. The behavior depends upon the types of data used in the operation. For example, consider the operation of addition. For two numbers, the operation will generate a sum. If the operands are strings, then the operation would produce a third-string by concatenation. The process of making an operator exhibit different behaviors in different instances is known as operator overloading.
A person at the same time can have different characteristics. A man at the same time is a father, a husband, and an employee. So the same person possesses different behavior in different situations. This is called polymorphism.
Application of Object-Oriented Programming’s in C++
It is specifically useful in modeling real-world problems. Below are some applications of OOPs:
- Real-Time System design: Real-time system inherits complexities and makes it difficult to build them. Object-Oriented Programming techniques make it easier to handle those complexities.
- Hypertext and Hypermedia: Hypertext is similar to regular text as it can be stored, searched, and edited easily. Hypermedia on the other hand is a superset of hypertext. Object-Oriented Programming also helps in laying the framework for hypertext and hypermedia.
- AI Expert System: These are computer application that is developed to solve complex problems which are far beyond the human brain. Object-Oriented Programming helps to develop such an AI expert System.
- Office automation Systems: These include formal as well as informal electronic systems that are primarily concerned with information sharing and communication to and from people inside and outside the organization. Object-Oriented Programming also helps in making the office automation principle.
- Neural networking and parallel programming: It addresses the problem of prediction and approximation of complex-time varying systems. Object-Oriented Programming simplifies the entire process by simplifying the approximation and prediction ability of the network.
- Stimulation and modeling system: It is difficult to model complex systems due to varying specifications of variables. Stimulating complex systems require modeling and understanding interaction explicitly. OOP provides an appropriate approach for simplifying these complex models.
- Object-oriented database: The databases try to maintain a direct correspondence between the real world and the database object in order to let the object retain its identity and integrity.
- Client-server system: Object-oriented client-server system provides the IT infrastructure for creating object-oriented server internet(OCSI) application
Importance of OOP
We can build the programs from standard working modules that communicate with one another, rather than having to start writing the code from scratch which leads to saving development time and higher productivity, OOP language allows us to break the program into the bit-sized problems that can be solved easily (one object at a time). The new technology promises greater programmer productivity, a better quality of software, and lesser maintenance cost.OOP systems can be easily upgraded from small to large systems.
It is possible that multiple instances of objects co-exist without any interference was very easy to partition the work in a project based on objects. This is possible to map the objects in the problem domain to those in the program. The principle of data hiding helps the programmer build secure programs which cannot be invaded by the code in other parts of the program. All of you agree with me Or not that Object Oriented programming technique brings a lot of efficiency to our projects and made a lot easier doing code I Hope this blog make you aware of Object-Oriented programming various Oops Language arr C++, Java, etc