Skip to content
recaplica

    One moment: security check

    Cloudflare wants to make sure you're not a robot. Tick the box below and your search will continue on its own.

    IT
    recaplica OOP: What Is Object-Oriented Programming
    © 2026 Recaplica · recaplica.com — All rights reserved
    Home › Technology

    OOP: What Is Object-Oriented Programming

    By Recaplica Newsroom · Updated on September 29, 2026

    What to print

    Page numbers appear when printing with default margins.

    Slides

    Choose a cut

    Flash10 slidesThe essential thread, to present in classFull15 slidesEvery chapter and the deeper detail

    Both come with speaker notes.

    Telegram channel
    recaplica Clear in 30 seconds, yours in 10 minutes.
    In 30 seconds Key points Deep dive Slides Myths Mind map Quiz Flashcards FAQ

    In 30 seconds quick read

    Object-oriented programming, or OOP, builds software around objects that bundle data and the functions that act on it, instead of keeping the two apart. Every object comes from a class, the blueprint that fixes its state and behavior, the same way one bicycle model fixes what every bike built from it can do. Documentation across languages keeps circling back to four recurring ideas — encapsulation, inheritance, polymorphism, and abstraction — though not every source tells the story the same way. Java, Python, and C++ each implement OOP with their own mechanics, and none of the sources treats it as the only way to write software.

    Key Points

    • An object bundles state (its data) and behavior (its methods) into one unit.
    • A class is the blueprint objects are built from; each object is an instance of it.
    • Encapsulation hides an object's internal state and forces interaction through its methods.
    • Inheritance lets one class pick up state and behavior from another, so common code isn't rewritten.
    • Polymorphism is what happens when different classes implement the same method differently.
    • The first language to combine encapsulation and inheritance was Simula 67, completed in Norway in 1967.

    Deep Dive

    Picture writing software that keeps track of a school: students, courses, grades. You could keep everything in separate lists of numbers and text, or you could group each student’s data together with the actions that involve them: enrolling in a course, receiving a grade. The second approach is object-oriented programming, OOP: a programming style that organizes code around objects, units that hold data and functions together instead of keeping them apart. It’s a way of thinking found across many languages, including JavaScript, TypeScript, Java, Python, and C++, though it isn’t the only one.

    An object is data plus behavior

    In the official Java documentation, a software object holds its own state in fields (the variables that belong to it) and exposes its behavior through methods, functions that act on that state. Methods are also how one object talks to another: when two objects work together, they usually do it by calling each other’s methods, not by reading each other’s data directly.

    That idea isn’t far from how objects in the physical world get described: a bicycle has state (the gear it’s currently in, its speed) and behavior (braking, shifting gears). Carrying that same structure over into code is where OOP starts.

    The class is the blueprint, the object is the item built

    An object doesn’t come from nowhere: it comes from a class, which the Java documentation describes as the blueprint individual objects are created from. The class sets which fields and methods every object built from it will have; the object itself, once created, is called an instance of that class.

    Practical example: picture a Bicycle class. It defines that every bicycle has state (its current gear) and behavior (shifting gears). Every individual bicycle built from that blueprint, with its own gear set at a given moment, is an instance of the Bicycle class — same blueprint, different objects.

    Encapsulation: hiding state, not code

    The first of the concepts the Java documentation ties to OOP is encapsulation: hiding an object’s internal state and requiring that every interaction with it pass through its methods. It isn’t, as people often assume, a form of secrecy over source code; it’s a way of keeping what an object does separate from how it does it internally, so the rest of the program can use it without worrying about its inner details. The MDN documentation gives a similar definition: keeping an object’s internal state private, with a clear line between its public interface and its private data, is what’s called encapsulation.

    Inheritance: reusing without rewriting

    OOP lets one class inherit shared state and behavior from another. In the Java documentation’s example, a MountainBike class can inherit every field and method from a more general Bicycle class, so its own code focuses only on what makes it different, such as suspension. The result, according to the same source, is code that’s easier to read: nothing that’s already written in Bicycle needs repeating in MountainBike.

    The official Python documentation confirms inheritance as a standard OOP feature too, with its own mechanics: a derived class can override any method of its base class, and a method in the base class can end up calling — without knowing it — the redefined version in the subclass.

    Polymorphism: same name, different behavior

    When a method has the same name but a different implementation across classes, the MDN documentation calls that feature polymorphism. It typically shows up when a subclass overrides an implementation inherited from a higher-level class — for instance, when a MountainBike handles gear shifting differently from a general Bicycle despite sharing the same method name.

    Worth stating plainly: the MDN documentation organizes the whole topic around three main concepts — classes and instances, inheritance, encapsulation — and presents polymorphism as an effect of inheritance rather than a separate pillar. That’s one reason this Recap notes, further on, that not every technical source lists OOP’s concepts the same way.

    Abstraction: defining the what, leaving the how to subtypes

    The Java documentation also describes abstract classes: a class declared abstract can’t be turned directly into an object, but it can be subclassed. It can hold abstract methods, declared without an implementation — a requirement, not a suggestion, since every concrete subclass has to supply its own.

    The same source’s example is an abstract GraphicObject class: every graphic object must be able to draw and resize itself, but each type does it its own way, a circle one way, a rectangle another. The abstract class captures what they share, the what, and leaves each subclass to work out the how. This separation between a common interface and the details of implementation is what the sources call abstraction.

    An idea built to simulate the world, not to write it

    OOP’s roots, according to the historical marker from the IEEE Engineering and Technology History Wiki, go back to 1961, when Ole-Johan Dahl and Kristen Nygaard began working together at the Norwegian Computer Center on a language for describing computer simulations. Their result, Simula 67, was completed in 1967 and introduced encapsulation, inheritance, late binding of methods, and dynamic object creation together — the elements now considered essential to an object-oriented language. The idea of an “object” didn’t start out as a way to write software in general; it started as a way to model complex systems, such as waiting lines or traffic.

    More than thirty years after that work, Dahl and Nygaard received the Turing Award, computing’s top honor, often compared to a Nobel Prize for the field, specifically for the ideas behind Simula I and Simula 67.

    Four pillars? Sources don’t fully agree

    Classrooms and textbooks often describe OOP as resting on four pillars: encapsulation, inheritance, polymorphism, and abstraction. It’s a useful teaching arrangement, but not a canon every technical source agrees on the same way: the MDN documentation, as noted above, lists three and treats polymorphism as a consequence of inheritance; other sources, like the Java page on abstract classes, cover abstraction on its own page without slotting it into a numbered list of pillars. Knowing this distinction helps avoid presenting as a fixed fact what is, in practice, one of several ways to organize the same set of ideas.

    ConceptWhat it doesConceptual example
    EncapsulationHides internal state, forces methods to be usedA bicycle: you shift gears with the lever, not by touching the gears themselves
    InheritanceLets one class inherit state and behavior from anotherMountainBike inherits from Bicycle and adds suspension
    PolymorphismSame method, different implementation per classMountainBike shifts gears differently from Bicycle
    AbstractionDefines a shared interface, leaves details to subtypesGraphicObject requires “draw itself,” each shape does it its own way

    These concepts don’t belong to a single language. The history of computers shows how programming languages evolved through different styles over time; today OOP sits alongside other approaches, and how a program applies it also depends on what the program needs to do — process data bound for a relational database, say, or run an algorithm for a calculation. The official Python documentation confirms that the same concepts, multiple inheritance included, show up in a language with syntax very different from Java’s.

    Slide deck

    Slides ready to download and make your own in PowerPoint or Google Slides, with speaker notes. Pick the Flash cut or the Full one.

    Slide 1 of the presentation on OOP: OOPSlide 2 of the presentation on OOP: What actually is an object in code?Slide 3 of the presentation on OOP: The route aheadSlide 4 of the presentation on OOP: Chapter 01: Objects and classesSlide 5 of the presentation on OOP: The three basic roles: Object, Class, InstanceSlide 6 of the presentation on OOP: Chapter 02: EncapsulationSlide 7 of the presentation on OOP: Encapsulation, a common mix-upSlide 8 of the presentation on OOP: Chapter 03: Inheritance and polymorphismSlide 9 of the presentation on OOP: Bicycle · MountainBike · PolymorphismSlide 10 of the presentation on OOP: Chapter 04: Abstraction and historySlide 11 of the presentation on OOP: Abstraction, in shortSlide 12 of the presentation on OOP: A Norwegian storySlide 13 of the presentation on OOP: Not every technical source tells the same four-pillar storySlide 14 of the presentation on OOP: A subclass redefines a base class method with different behavior. What is this mechanism called?Slide 15 of the presentation on OOP: To review at your own pace
    Flash10 slidesThe essential thread, to present in classFull15 slidesEvery chapter and the deeper detail

    Common myths

    • ✗ Myth OOP is the one correct way to write software.

      ✓ Reality Sources describe it as a widely used style found in many languages, including Java, Python, and C++ — not the only path. It remains one option among several for organizing code.

    • ✗ Myth A class and an object are just two names for the same thing.

      ✓ Reality The class is the blueprint, the way a bicycle model fixes what every bike built to it will have; the object is the actual bike rolled off that blueprint. A single class can produce many distinct objects.

    • ✗ Myth Encapsulation exists to hide source code for secrecy.

      ✓ Reality In the Java documentation's own definition, encapsulation hides an object's internal state and requires that interaction go through its methods: it is a design principle, not a trade-secret measure.

    Mind map

    Drag the background to move around and the nodes to reposition them; use − and + to collapse and expand branches.

    Customize
    Mind map: OOP: What Is Object-Oriented Programming
    • OOP
      • Objects and classes State and behavior in one unit
        • Object Has state (data) and behavior (methods)
        • Class The blueprint objects are built from
        • Instance The object built from the class
      • Encapsulation Hides internal state
        • Private state
        • Public interface Only methods stay reachable from outside
      • Inheritance Reuses shared state and behavior
        • Base class
        • Subclass Inherits, then adds only what sets it apart
        • Override Replaces a base class method
      • Polymorphism Same method, different implementations
        • Shared method
        • Class-specific implementation
      • Abstraction
        • Abstract class Cannot be instantiated directly
        • Abstract method Declared without an implementation
        • Common interface The what, leaving the how to subtypes
      • History
        • Simula 67 Completed in Norway in 1967
        • Turing Award Given to Dahl and Nygaard decades later

    Quiz: test yourself

    Answer the questions to check what you have learned: you get instant feedback and a short explanation.

    Grade 0/10 0/5
    1 What is an "object" in object-oriented programming?

    The Java documentation defines an object as something that holds state in its fields and exposes behavior through its methods: the two travel together.

    2 How does a class relate to an object?

    The class is the blueprint (the sources reach for the bicycle-model comparison); the object is the item built following that blueprint — an instance of the class.

    3 By the Java documentation's own definition, what is encapsulation?

    That is the definition the Java documentation gives: hiding internal state and routing every interaction through the object's methods is called encapsulation.

    4 What does inheritance let a class do?

    The sources show a subclass inheriting fields and methods from a base class while its own code stays focused on what sets it apart — the result, they note, is code that is easier to read.

    5 True or false: every technical source consulted agrees on a fixed canon of exactly four pillars of OOP.

    False: the MDN documentation frames OOP around three main concepts (classes, inheritance, encapsulation) and treats polymorphism as an effect of inheritance rather than a pillar on its own; other sources cover abstraction on a separate page. MDN alone is enough to break the idea of one fixed four-item canon.

    Answers: 1-C · 2-A · 3-A · 4-B · 5-B

    Flashcards

    Tap the card to flip it and check whether you remember the answer, then move to the next one.

    1 / 8

    Explain it in your own words

    The ultimate test: if you can explain it in simple words, you've truly understood it. Write your explanation, then compare it with the Recap.

    Your explanation is saved only on this device.

    Object-oriented programming, or OOP, builds software around objects that bundle data and the functions that act on it, instead of keeping the two apart. Every object comes from a class, the blueprint that fixes its state and behavior, the same way one bicycle model fixes what every bike built from it can do. Documentation across languages keeps circling back to four recurring ideas — encapsulation, inheritance, polymorphism, and abstraction — though not every source tells the story the same way. Java, Python, and C++ each implement OOP with their own mechanics, and none of the sources treats it as the only way to write software.

    Frequently asked questions

    What is OOP, in a nutshell?

    It's a programming style that organizes code around objects — units that keep data (state) together with the functions that act on it (behavior) — instead of keeping data and functions apart, as other styles do.

    What are the pillars of OOP?

    In the most common teaching version, there are four: encapsulation, inheritance, polymorphism, and abstraction. Technical sources don't all agree on that count, though — MDN, for instance, frames OOP around three main concepts and treats polymorphism as an effect of inheritance.

    What's the difference between a class and an object?

    The class is the blueprint, the way a bicycle model fixes what every bike built to it will have; the object is the item built following that blueprint. A single class can produce many objects that differ only in the values of their state.

    Where did object-oriented programming come from?

    Its roots trace to Simula 67, a language built in Norway by Ole-Johan Dahl and Kristen Nygaard, who started working on it in 1961 and completed it in 1967: it was the first language to combine encapsulation and inheritance.

    How do you build a concept map of OOP for review?

    Start from the two basic elements, object and class, then branch out into the concepts that govern them: encapsulation, inheritance, polymorphism, and abstraction. This Recap's map follows exactly that structure and makes a solid starting point for a study outline.

    Sources

    • The Java Tutorials — Object-Oriented Programming Concepts
    • MDN Web Docs — Object-oriented programming
    • Python 3 official documentation — Classes
    • The Java Tutorials — Abstract Methods and Classes
    • IEEE ETHW — Milestones: Object-Oriented Programming, 1961-1967

    Every Recap goes through an independent review before publication.

    Every evening, the day's new Recaps on our Telegram channel. Join the channel →

    Keep learning

    • Technology DBMS: What It Is, the Main Types, and Real Examples A DBMS, short for database management system, is the software that lets people create, query and update the data in a database without having to know how that data is physically stored. Compared with spreadsheets or scattered files, it keeps data in one place and more consistent, cutting down on duplication and security gaps. The most common type is the relational model, which organizes data into linked tables and is queried with SQL. Nonrelational, or NoSQL, systems handle more flexible data, and two older models, hierarchical and network, sit alongside an object-oriented model. Read the Recap →
    • Technology ER Diagram (Entity-Relationship Diagram): What It Is and How to Build One An entity-relationship diagram, or ER diagram, is the map database designers draw before building a database: it shows which objects need tracking (entities), what information describes them (attributes) and how they connect to each other (relationships). It's a conceptual design step, not the finished database schema — the translation into real tables comes later. The two most common notations are Chen, which uses rectangles and ovals, and Crow's Foot, which uses lines ending in circles, bars and crow's feet to show how many instances connect. A relationship can be one-to-one, one-to-many or many-to-many, and each type has its own way of being drawn. Read the Recap →
    • Technology Relational Database: How Tables, Rows, and Keys Organize Data A relational database stores data in tables, each one dedicated to a single subject, such as customers or orders. Every row in a table is a record, and every column is a field holding the same kind of value across all rows. A primary key identifies each row uniquely, while a foreign key connects it to a row in another table, so information stays consistent without being copied everywhere. Tables combine through three kinds of relationships — one-to-one, one-to-many, many-to-many — and are queried with SQL, the standard language of these systems. Read the Recap →

    recaplica

    Clear in 30 seconds, yours in 10 minutes.

    Recaps Mind maps Request a Recap Telegram channel Mind map maker Our method About Privacy & cookies Legal notes & terms of use

    © 2026 Recaplica · A project by Curi S.r.l. — VAT IT05472000750

    Statistics, only if you say so

    To learn which Recaps help most we would use Google Analytics, with aggregate, anonymous data. It starts only with your OK, and you can change your mind anytime. Privacy policy