What is object oriented programming language?
In classic, procedural programming you try to form the real world problem you're attempting to solve fit a few, predetermined data types: integers, floats, Strings, and arrays perhaps. In object oriented programming you form a model for a real world system. Classes are programmer-defined types that model the elements of the system.
A class is a programmer describes type that serves as a blueprint for instances of the class. You could still have ints, Strings, floats, and arrays; but you can also have cars, motorcycles, people, buildings, clouds, dogs, angles, students, courses, bank accounts, and any other type that's significant to your problem.
Classes specify the data and behavior possessed both through themselves and through the objects built from them. A class has two parts: the fields and the methods. Fields describe what the class is. Techniques describe what the class does.
Using the blueprint provided by a class, you can form any number of objects, each of which is known as an instance of the class. Different objects of the similar class have the same fields and techniques, but the values of the fields will in general differ. For instance, all people have eye color; but the color of each person's eyes can be various from others.
Instead, objects have the same techniques as all other objects in the class except in so far as the techniques depend on the value of the fields and arguments to the method.
This dichotomy is reflected in the runtime form of objects. Every object has a separate block of memory to store its fields, but the bytes in the methods are shared among all objects in a class.
Another general analogy is that a class is to an object as a cookie cutter is to a cookie. One cookie cutter can make several cookies. There may be only one class, but there can be many objects in in which class. Each object is an instance of one class.