01Overview
In 1967 Simula 67 in Norway introduced classes and objects for simulation work: state and behaviour bundled together, reused through inheritance. In 1972 Alan Kay designed Smalltalk at Xerox PARC, emphasising message passing rather than function calls, and wrapped the whole development environment in a graphical interface.
In the 1980s C++ carried objects into systems programming; in 1995 Java lowered the barrier with a virtual machine and garbage collection. UML and design patterns then turned OOP into an engineering methodology. Today objects are no longer the only paradigm, but encapsulation, composition and polymorphism remain the basic tools for organising large codebases.
02History
- 1967
Simula 67
Where classes and inheritance begin.
- 1972
Smalltalk
Message passing and a pure object environment.
- 1983
C++
Objects enter systems programming.
- 1995
Java
Portability and garbage collection.
- 1994
Design Patterns
The GoF formalise experience.
03Core concepts
Encapsulation
Hide internal state and expose only a stable interface.
Inheritance
Extend or override behaviour on top of an existing class.
Polymorphism
One interface, different implementations per type.
04Hands-on
Do it once — it beats reading it ten times
Model a small library system twice: with inheritance, then with composition only — compare which one you can change
05Self-check
Say it in your own words first, then open the answer. Whatever you cannot explain is what to review next.
Can you explain "Encapsulation"?
Hide internal state and expose only a stable interface.
Can you explain "Inheritance"?
Extend or override behaviour on top of an existing class.
Can you explain "Polymorphism"?
One interface, different implementations per type.
What problem did it solve, and why was there nothing better at the time?
Go back to the history section: how was this done before, and what did it cost?
If you had to build it today, how would you break it down?
Use the hands-on task above: write a plan of at most three steps before you start.
06Key people
Ole-Johan Dahl
1931 – 2002
A founder of Simula and of object orientation.
Alan Kay
1940 –
Smalltalk, and the populariser of the term “object-oriented”.
07Further reading
- Design Patterns
- Smalltalk-80: The Language and its Implementation