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

  1. 1967

    Simula 67

    Where classes and inheritance begin.

  2. 1972

    Smalltalk

    Message passing and a pure object environment.

  3. 1983

    C++

    Objects enter systems programming.

  4. 1995

    Java

    Portability and garbage collection.

  5. 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

O

Ole-Johan Dahl

1931 – 2002

A founder of Simula and of object orientation.

A

Alan Kay

1940 –

Smalltalk, and the populariser of the term “object-oriented”.

07Further reading

  • Design PatternsGamma et al. · 1994
  • Smalltalk-80: The Language and its ImplementationGoldberg & Robson · 1983