|
recaplica
OOP: What Is Object-Oriented Programming | |||||||||||||||
| © 2026 Recaplica · recaplica.com — All rights reserved | |||||||||||||||
OOP: What Is Object-Oriented ProgrammingWhat to print Page numbers appear when printing with default margins. SlidesChoose a cut Flash10 slidesThe essential thread, to present in classFull15 slidesEvery chapter and the deeper detailBoth come with speaker notes. In 30 seconds quick readObject-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
Deep DivePicture 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 behaviorIn 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 builtAn 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.
Encapsulation: hiding state, not codeThe 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 rewritingOOP 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 behaviorWhen 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 subtypesThe 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 itOOP’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 agreeClassrooms 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.
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 deckSlides ready to download and make your own in PowerPoint or Google Slides, with speaker notes. Pick the Flash cut or the Full one. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Common myths
Mind mapDrag the background to move around and the nodes to reposition them; use − and + to collapse and expand branches.
Quiz: test yourselfAnswer the questions to check what you have learned: you get instant feedback and a short explanation. Grade 0/10 0/5
FlashcardsTap 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 wordsThe 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.
Frequently asked questionsWhat 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. Every Recap goes through an independent review before publication. |













