Basic OOPS Concept
OOP stands for Object Oriented Programming. It’s all about classes and objects; a class is collection of member functions and variables with different scope of use and accessibility. An object can be a referred as an entity which gets properties and attributes from the class for which it has been created. It will be easy to explain classes and objects using real life example as below: -
Let’s say we call Car a class, every car has some properties and features. The properties includes speed, number of gears it has, its mileage, suspension etc, whereas the features includes power windows, staring, breaks etc. Now Honda Civic will be called an object of the class car, and this object inherits all the features & properties of the class car and which can have values respective to the object.
Inheritance – This is the first feature of an object oriented programming language, it means as soon as an object it created for a class its properties are automatically given to the object. Now depending upon the type of property the object can have value respective to it and there could be a property which will stay fixed.
This is known as scope of the member variables & functions defined in the class. For example the class car has a property that it will have 4 wheels, which will remain same for almost every object that will be created from this class.
So we can say that the scope of this property is private and can not be changed at objects level, whereas as a property maximum speed will have a scope public i.e. for every object that will be created this property can be different for every object.
Polymorphism – This is the second feature of an object oriented programming language, and it means a function defined performing different functions as the variables passed to it changes.
For example we define a function called ‘concat’ which can take two parameters. Now if the parameters passed are of the type integer the function will return sum of two numbers whereas if the parameters passed are characters then the function will return two charters concatenated.
Encapsulation – Third and most important feature of any object oriented programming language. This is associated with data hiding, which means the value of a variable is accessible to the objects of class but they can not change the value assigned to the variable. If scope of a variable is defined as private then the same will also not be accessible to all objects of a class.
Abstraction – Last but not the least this feature of any OO programming, this feature gives the option to represent the needed information in program without disclosing all details. Also this feature gives the possibility of creating user defined data types increases the power of programming language.
Thus to conclude classes are data types on which objects are created. So while a class is created no memory is allocated only when an object is created memory gets allocated. Object is the basic unit of object oriented programming bundled together using functions to operate on data.