Object-oriented programming concepts
Key facts
- Simula 67, developed by Ole-Johan Dahl and Kristen Nygaard, introduced classes and objects for simulation modelling and is widely treated as the first...
- Smalltalk, designed at Xerox PARC in the 1970s, made the message-passing model central to object-oriented design and strongly influenced graphical use...
- C++, released commercially in 1985 by Bjarne Stroustrup, added classes, constructors, destructors, inheritance and operator overloading to the C langu...
- Python 1.0 was released in 1994 by Guido van Rossum; Python treats classes, functions and modules as objects and supports multiple inheritance.
- Java, released by Sun Microsystems in 1995, popularised platform-independent object-oriented programming through bytecode executed on the Java Virtual...
Key Points at a Glance
- 1
Simula 67, developed by Ole-Johan Dahl and Kristen Nygaard, introduced classes and objects for simulation modelling and is widely treated as the first object-oriented programming language.
- 2
Smalltalk, designed at Xerox PARC in the 1970s, made the message-passing model central to object-oriented design and strongly influenced graphical user interfaces.
- 3
C++, released commercially in 1985 by Bjarne Stroustrup, added classes, constructors, destructors, inheritance and operator overloading to the C language family.
- 4
Python 1.0 was released in 1994 by Guido van Rossum; Python treats classes, functions and modules as objects and supports multiple inheritance.
- 5
Java, released by Sun Microsystems in 1995, popularised platform-independent object-oriented programming through bytecode executed on the Java Virtual Machine.
- 6
The Unified Modelling Language was standardised by the Object Management Group in 1997, giving software designers a common notation for class diagrams and object relationships.
- 7
ISO C++98 was the first international C++ standard; C++11 later strengthened modern OOP practice with features such as override control, smart pointers and move semantics.
Continue studying
Object model: classes, objects and identity
Object-oriented programming organises a programme around objects rather than only procedures. A class is a blueprint that defines data members and member functions. An object is a runtime instance of a class, with its own state and access to the behaviour defined by the class. In an exam question, the key distinction is that a class occupies no full object storage until an object is created, while each object has separate instance data unless a member is declared static. For example, a `Student` class may define `rollNo`, `name` and `calculateGrade()`, while each student object stores a different roll number and name.
Objects have identity, state and behaviour. Identity distinguishes two objects even if their values are equal. State is represented by attributes or fields. Behaviour is represented by methods or member functions. This model appears in C++ through class instances, in Java through reference variables pointing to objects, and in Python through instances whose attributes are usually stored in a dictionary-like structure. Static members belong to the class, not to a particular object, and are common MCQ targets.
Exam takeaway: a class defines structure and behaviour; an object is the live instance with identity and state.
Open the complete note
This public page shows the first available section. The study pack opens the complete topic with all revision material.
7 more sections in the complete note
Open study pack