Object-oriented programming (OOP)
Object-oriented programming (OOP) is a programming paradigm based on the concept of objects fundamental to many programming languages, including Java and C++. OOP can be devided in two sub types: class-based (or “classical”) and prototype-based OOP (found in JavaScript, for example).
Object-oriented programming has several advantages over procedural programming:
- OOP provides a clear structure for the programs
- OOP helps to keep the code DRY “Don’t Repeat Yourself”, and makes the code easier to maintain, modify and debug
- Logic can be abstracted, encapsulated, composed, inherited and decoupled
- GitHub: https://github.com/topics/oop
- Wikipedia: https://en.wikipedia.org/wiki/Object-oriented_programming
- Created by: MIT, Alan Kay
- Released: 1960
- Related Topics: procedural-programming, open-closed-principle, inheritance, polymorphism, orm, functional-programming, event-driven-programming,
- Aliases: object-oriented-programming, object-oriented-design,
- Last updated: 2026-06-25 00:18:25 UTC
- JSON Representation
https://github.com/mhmdrazn/es234211-snake-and-ladder
Project for Final Assignment ES234211 - Basic Programming
Last synced: 02 Aug 2025
https://github.com/prosenjitjoy/cpp-projects
Collection of multi-file C++ projects build using OOP approach.
Last synced: 29 Aug 2025
https://github.com/iamsudhir-kumar/js-practice-from_basic_to_advance
This repository is for practicing and mastering JavScript from basic to advance
api html javascript leetcode node-js oop
Last synced: 18 May 2026
https://github.com/Sikessem/Typed
Convert PHP values to objects of strict types.
cast converter data object-oriented-programming oop php poo programmation-orientee-objets strict-types value-object variable-object
Last synced: 11 May 2025
https://github.com/high-voltaged/2d_tetris
Basic 2D tetris game, written in C++ using OpenGL and GLUT technologies.
Last synced: 22 Apr 2026
https://github.com/parzivaleugene/misis2024s-23-04-michkov-e-v
Object Oriented Programming
Last synced: 13 Mar 2025
https://github.com/mumtaz4118/stack-implementation-in-c-
Using Stack (OOP Implementation for my TAship Class Tutorial)
Last synced: 02 Feb 2026
https://github.com/jen2004/class-roster
A C++ program designed to manipulate student data.
Last synced: 04 Mar 2025
https://github.com/bencz/go-plus
A transpiler that adds classes and exceptions to Go, converting Go-Extended syntax to standard Go code. Supports multi-file projects with dependency resolution
compiler exceptions go golang oop transpiler
Last synced: 18 May 2026
https://github.com/sebastian-nunez/data-structures-java
Some notes regarding Data Structures & Algorithms in Java.
algorithms data-structures java oop
Last synced: 18 May 2026
https://github.com/deirror/simplesql145
[Console] A nice console application for SQL in C++
Last synced: 18 May 2026
https://github.com/swanie21/idea-box-two
IdeaBox stores ideas in localStorage
css3 html5 localstorage oop prototypes
Last synced: 18 May 2026
https://github.com/mirror45/big-trip
🗺️ «Big Trip» — современный сервис для путешественников. Сервис помогает детально спланировать маршрут поездки, рассчитать стоимость проезда и получить информацию о достопримечательностях.
chartjs flatpickr js momentjs mvp oop rest-api webpack
Last synced: 18 May 2026
https://github.com/ruben165/player-info-registration
Football Players Info Registration using Java
Last synced: 21 Jul 2025
https://github.com/asobrados03/practica_final_centrodeconvenciones
Este es el proyecto final completo de la asignatura Programación Orientada a Objetos. Lo realizamos en el año 2022.
composite-pattern decorator-pattern design-patterns java oop oop-principles singleton-pattern strategy-pattern
Last synced: 18 May 2026
https://github.com/khasanrashidov/typescript-oop
TypeScript OOP practice (from LinkedIn course)
Last synced: 15 Jun 2025
https://github.com/eduardo06sp/mastermind
A terminal game of Mastermind in which the user can choose to play as the codemaster or codebreaker. The computer is guaranteed to guess correctly within 5 tries.
mastermind oop ruby swaszek-algorithm
Last synced: 29 Mar 2025
https://github.com/hasin023/swe_4301_object_oriented_concepts
Object Oriented Concepts II
Last synced: 18 May 2026
https://github.com/higgsboson909/small-library-project
project by THE ODIN PROJECT
Last synced: 19 Apr 2026
https://github.com/er-contreras/oop_animal
It's a veterinary base on a UML using relational classes
Last synced: 10 Jul 2025
https://github.com/udaygiri/password-generator
A password generator is a useful tool that generates strong and random passwords for users. This project aims to create a password generator application using Python, allowing users to specify the length and complexity of the password.
oop password password-generator python
Last synced: 21 Mar 2025
https://github.com/aliakbar-omidi/bank
This is a project to manage the banking system
decorator logging mvc mysql oop python sqlalchemy
Last synced: 26 Apr 2026
https://github.com/rid17pawar/friendscircle
Friends Circle is a console based application developed in cpp using Graph Data Structure.
cpp data graph graph-algorithms oop
Last synced: 08 Jun 2026
https://github.com/edu-fedorae/covid-19-report-mvc-crud-application
Simple PHP application that does basic CRUD operations for covid-19 cases.
covid-19 crud javascript mvc mysql oop pdo php uikit
Last synced: 09 May 2026
https://github.com/mikayelgr/librarymanagementsystem
Java-based Library Management System developed as the final project for the Object-Oriented Programming (CS120) course at the American University of Armenia.
deserialization final-project gson java json library-management-system object-oriented-programming oop serialization
Last synced: 21 Mar 2025
https://github.com/nearvr22/object-oriented-programming
Projects from the Object-Oriented Programming (OOP) course (5th semester, Computer Science - Centro Universitário Barão de Mauá) using Java. Focus on classes, inheritance, polymorphism, encapsulation, abstraction, and design patterns.
attribute-lookup attributes class cpp decorators inheritance local lookup magic object-oriented ood oop oops static
Last synced: 05 Jun 2026
https://github.com/developermithu/online-food-ordering-ecommerce-project
Online food ordering ecommerce project with delivery system
Last synced: 03 May 2026
https://github.com/dipto1971/railway-management
Railway Management System implemented with Java (OOP project)
java-project object-oriented-programming oop projects railway-management-system
Last synced: 01 Nov 2025
https://github.com/emicy963/bank-manager
It's a simple Bank Manager System Python Project for practique OOP, MVC, CRUD, SOLID Principles and maybe DataBase.
bank-management-system-project database mvc-architecture oop oops-in-python open-source python solid venv-python
Last synced: 19 May 2026
https://github.com/remycastella/ruby-tictactoe
Simple command line tic tac toe game using Ruby and OOP
Last synced: 22 Jul 2025
https://github.com/ikanurfitriani/pemrograman-berorientasi-objek
This repository contains code archives from the Object Oriented Programming course in semester 4.
java oop oriented-object-programming programming
Last synced: 21 Mar 2025
https://github.com/madi-s/python-oop-explained
This repo covers almost everything about python object-oriented-programming. From methods to encapsulation, from magic methods to properties. Have fun exploring it!
basics object-oriented-programming oop python
Last synced: 04 Apr 2025
https://github.com/operationdarkside/cppwebtoolkit
Object and Widget based Framework for Webdevelopment
c-plus-plus oop projectdnc webdevelopment
Last synced: 17 Jun 2025
https://github.com/almoghindi/boxes-project
Project based on data structures to offer the most appropriate box for a customer using avl tree, inside an avl tree for maximum complexity and memory utilization.
avl-tree binary-search-tree complexity csharp data-structures dotnet oop
Last synced: 06 Apr 2025
https://github.com/hasanyahya101/oop_assignments
Solutions to Object Oriented Programming assignment questions from Spring 2023 Semester in Fast Nuces Lhr. The actual questions can be found in pdf files. Note that, this is for the theory (subject), not the Lab subject.
fast lhr nuces oop oop-in-cpp oop-principles
Last synced: 29 Mar 2025
https://github.com/imbezerra/chess-system
A chess game system, developed in Java using Object-Oriented Programming (OOP), designed to be played directly in the console. It employs best practices in development and OOP.
Last synced: 22 Jul 2025
https://github.com/sarahabuirmeileh/reantalapplication
This project is a renting application where users can rent different types of buildings such as apartments, houses, and shops. Applying OOP princilps with Java.
abstraction encapsulation inheritance oop oop-concepts oop-paradigm oop-principe oop-principles oops-in-java polymorphism rentalsystem
Last synced: 22 Jul 2025
https://github.com/nerooc/oop-2-pl
Laboratories from 'Object Oriented Programming 2' at AGH UST (in Polish)
Last synced: 22 Mar 2025
https://github.com/ambadran/humanoid-hand-controller
MicroPython interfacing muscle sensor through 16-bit ADC IC & OpAmp to give intricate control over individual Humanoid Robot Fingers.
3d-printing ad7705 algorithms emg micropython muscle-sensor oop
Last synced: 17 Feb 2026
https://github.com/knetic0/oop-konuanlatimi
Bilgisayar Muhendisligi 2.Sinif Guz Donemi Boyunca OOP Dersinde Ogrendiklerimi Yukluyorum.
object-oriented object-oriented-programming oop python python-oop python3
Last synced: 19 May 2026
https://github.com/mikeheul/poo_livre
Pure OOP PHP Project to manage Author/ Book (trainer project for my students)
Last synced: 19 May 2026
https://github.com/jhwa426/java
Object Oriented Software Development, Object Oriented Design principles and Patterns
Last synced: 06 Apr 2025
https://github.com/chaseofthejungle/oop-overview-guide
A glance into core principles that unite object-oriented programming (OOP) languages.
object-oriented-programming oop oop-principles
Last synced: 01 Jan 2026
https://github.com/mohamedtorkey20/php_labs
This repository is dedicated to hosting the practical exercises and labs for our PHP course. Whether you're new to PHP or looking to enhance your skills, these hands-on labs will guide you through various concepts and functionalities of PHP programming.
Last synced: 06 May 2026
https://github.com/mohammed-3tef/document_similarity
A C++ program to measure the similarity between two text documents using efficient algorithms like cosine similarity, with support for preprocessing and customization.
assignment clean-code cpp cs213 document-similarity oop
Last synced: 22 Jul 2025
https://github.com/emanuelefavero/design-patterns
This is a cheat sheet repo for software design patterns
algorithms design-patterns javascript object-oriented-programming oop
Last synced: 29 Mar 2025
https://github.com/amir-hshahi/advanced-programming-solutions-14032
This repository contains advanced programming solutions for the course 14032. The solutions are implemented in Java, and cover a range of programming problems and algorithms.
advanced-programming educational oop
Last synced: 18 Jun 2025
https://github.com/bf4r/slap
Simulation framework
c-sharp cli cli-app csharp dotnet oop simulation simulation-framework
Last synced: 29 Mar 2025
https://github.com/lucapolese/qtdrive
Progetto di Programmazione ad Oggetti UniPD : software che simula l'accesso multiplo a servizi di Cloud Storage
cloudstorage cplusplus-11 oop qt unipd-mathematic-department
Last synced: 02 Jan 2026
https://github.com/omar-26/coursecode
CourseCode is a Online Courses Management User Friendly GUI Desktop app written in java
desktop-application gui java javafx javafx-application javafx-desktop-apps mvc-architecture mvc-pattern oop
Last synced: 02 Jan 2026
https://github.com/bagdalf/java-gestao-escolar
Este projeto Java em console é um Sistema de Gestão Acadêmica baseado em Java projetado para gerenciar professores, alunos, disciplinas e turmas.
Last synced: 28 Mar 2025
https://github.com/tawfik-s/old-course-datasturcturewith-cpp
study dataStructure with cpp ==>L classes for structures
academic-task cpp data-structures oop
Last synced: 14 Mar 2025
https://github.com/gasserkhaled330/dotnet-questions
A curated repository of essential .NET and C# questions and detailed answers designed for rapid learning and interview readiness.
asp asp-net csharp dotnet entity-framework linq oop
Last synced: 14 May 2026
https://github.com/hifza-khalid/pythonjourney
A comprehensive repository for learning Python, covering basics, OOP, file handling, and advanced topics. 🚀🐍
advanced-topics file-handling machine-learning oop programming-basics python
Last synced: 22 Mar 2025
https://github.com/mahammad-mostafa/task-manager-dashboard
A management portal with task reminders and notifications for employees
codeigniter3 css-flexbox css-grid css3 fetch-api html5 javascript mvc-architecture mysql oop php single-page-app
Last synced: 17 Apr 2026
https://github.com/memosainz/christmastree-java
Wanna create a Christmas tree in your IDE terminal? Grab this dude!
christmas god holy-spirit java jesus oop santa-claus terminal tree
Last synced: 20 May 2026
https://github.com/ahmednassar7/pizza-ordering-system
A pizza ordering system.
algorithms database datastructures gui java mssql mssqlserver oop sql ui-design
Last synced: 02 Jan 2026
https://github.com/danielbrodi/arkanoid
A full implementation of the classic Arkanoid block breaker game using Java. Includes a menu and an animaiton of a timer at the beginning of each level, records and stores highest store in a local file and it's possible to personalize the block design of each level. In order to add or edit levels in the game, you don't have to learn to code.
animation animations class game game-2d game-development gui inheritance input-output interface java leaderboard memory-management menu-navigation object-oriented-programming objects oop project
Last synced: 13 May 2025
https://github.com/antonioalmeida/feup-lpoo
My solutions for LPOO's midterm exams.
Last synced: 20 May 2026
https://github.com/konstantinkalinichenko/todo--fullstack
Full-stack version of to-do list application
json oop oop-principles python3
Last synced: 22 Apr 2026
https://github.com/foziljonovs/TwoMonthCSharpPratices
2 - month C# pratices, Interviews
c-sharp interview-practice ood oop
Last synced: 01 Nov 2025
https://github.com/bell-kevin/circle
Create a project that has a Circle class. The Circle class should contain: -One instance variable – radius -A method named setRadius that assigns the passed-in radius value to the radius instance variable -A method named initialize that prompts the user for a radius value and then assigns the entered value to the radius instance variable. (Note that the method will prompt the user, not the driver class.) -A method named printCircleData that uses the circle’s radius to calculate the circle’s diameter, circumference, and area and print the results. Use the Java API constant Math.PI for the value of pi. Use local variables to store the diameter, circumference, and area. Print the circle’s radius, diameter, circumference, and area. Create a Driver class (the main class) that tests all of the variables and methods of the Circle class. In that driver class, create a circle object and name it “spot”. Initialize it, print the circle data, then set the radius to a different specific value, and print the circle data again. In the first example, the driver class contained the interaction with the user, asking for the necessary values, then passed that data to the methods in the class. In this example, the method initialize in the class contains the interaction with the user, asking for the radius. How do you decide where the user interaction goes? It’s often best to put those interactions in the class, because it makes the driver class shorter and easier to understand, and it adds documentation to the class. But you can put those interactions in either location, as we demonstrated with these examples. As in the first example, create a project – name it “Example2Circle”, and the IDE will provide you with the starting structure for the main class, the driver class. If you know what code you need in the driver class, you can go ahead and type it now, and you’ll get a lot of errors because none of the class references exist yet. It’s usually better to create the class and enter its code first, then come back to the driver class to write the code that tests the class. In the File menu, click on New, then File, and create a new Java class named “Circle”. Write the necessary code to create the instance variable radius, and the methods to initialize, set the radius, and print the results, as described. Here is the Driver class code. Note that every method in the Circle class is tested. The initialize method will ask the user for the radius and set it, then the driver prints out the results for that circle. Next, the driver executes the method to change the radius to a different value, and prints out those results.
calculator circle java object-oriented-programming oop
Last synced: 17 Mar 2025
https://github.com/bell-kevin/ch6savingsaccount
This project is very similar in design to the Mouse2 class and Mouse2Driver example in the book (Introduction to Programming with Java: A Problem Solving Approach, Second Edition by John Dean and Raymond Dean). Remember the project in Ch 4 about calculating the value of an account as it grows, which was enhanced in Ch 5 to look better? We’ll do the same work here but using OOP methodology. In this project, the user will specify the starting balance for a savings account, the interest rate, and the number of cycles it will grow at that interest rate. The program will display how much the account is worth at the end of that growth. We need a class that provides the blueprint for this savings account. What kind of variables do we need? The current balance is essential. Since this is a savings account that grows by adding earned interest, we need the value for the interest rate to be able to calculate that earned interest. You might want to know the customer who owns this account – but notice that the customer is the owner, not part of the account. Therefore, the customer info is not part of this account. So the data needed to provide the information about the account and its current state is balance and interest rate. What actions can this account take, what can it do? The first thing needed will be setting the balance and the interest rate, so we need “mutator” or “set” methods for those actions. We need to be able to see the balance, which is an “accessor” or “get” method. Is there any other method required for this class? We could stop here, and “grow” the account in the driver class or main method. But that doesn’t make the best use of OOP design and programming, so we’re going add a method to the class to “grow” the account. Next, consider if the instance variables are public or private – protected or open to the world? If you want methods outside of this class, other programmer’s methods, to be able to change the variable directly, then make it public. Most of the time, you’ll want to protect the variable, make sure it’s changed only by the methods provided in the class. For this account, we certainly want to protect the balance and interest rate, so they need to be private. Add a minus sign or hyphen in front of those two variables in the UML diagram to represent that access. Next consider the data type for each variable – double or integer? The balance is money, and interest rates require decimals, so the variables need to be doubles. The next step is to consider the methods. Are they private or public, available to the world outside of this class? All of them need to be public, because we are going to execute them from the driver class, which is outside of this class. What type of data will each method return? The “get” method will return the current value in the instance variable for balance, so it must return a double, matching data type of that variable. The two “set” methods don’t need to return anything, so their return type is “void”. The growAccount method is going to do work to change the account balance – does it need to return anything? No, its results will be in the balance variable, and we can get that number with the get method. So the growAccount method is also void. Do any of those methods need information passed into them when they are called? Usually the “set” methods need data to change the values in the variables. Here, we need to know the starting balance, the interest rate, and the number of cycles to grow the account, information provided by the user. For this project, we are going to use the driver class to ask the user for all that information. Therefore the driver class needs to pass the data to the methods in this class – the data will be provided to the method inside of its parentheses. The setBalance and setInterestRate methods need doubles passed to them. The growAccount method needs an integer for the number of cycles to grow the account. Begin by creating a new project and name it “Ch6SavingsAccount”. The IDE provides you the main class heading, which is the driver for this project. We’ll code that later; first, we need the class that will be the basis for that driver. In the File menu, click on “New File” – not new project, new FILE. Specify that the File Type is “Java Class”, and name it “Account”. This is the name of the class – the file name must match the name of the class. The IDE has again given you the starting point for this type of file. Now that the class exists, turn your attention to the driver or main code. What needs to happen here? The user needs to provide the starting balance, interest rate, and number of cycles to grow the account. As you have done in previous projects, you’ll ask the user to enter the necessary information. Take a moment to consider the interest rate value. The interest rate must be a double because it is a fraction of one whole unit. If someone says an interest rate is 7%, we don’t use “7” for the calculations – we use 7 / 100. Always make it clear to the user if they are supposed to enter percentage rates (7 for 7%) or the mathematical percentage (0.07 for 7%). It is usually best to have the user type it as if there was a percent symbol following it – 7 for 7% makes a lot more sense to a user than 0.07 for 7%. If the user types in a number like 7, you must do the math in the program to convert that to its decimal equivalent of 0.07 – divide the interest rate by 100. That code is in the class above. Notice that there are variables for balance, interest rate, and cycles in this driver class, which seem like a repetition of the instance variables in the Account class. The variables in the driver class are used to communicate with the user, to get the data to pass to the Account class to create a specific account. As discussed in the book, we could use different names for the variables, like “newBalance” or “inputInterestRate”, and sometimes that is helpful to make it very clear what data is being stored in each variable. But they really are the same data here, so we’ll use the same variable names in the driver class and the Account class. The prefix “this.” in the Account class helps to clarify that the data passed into the method is assigned to the private instance variable in the Account class.
account datc davis davistech dtc object-oriented-programming oop oop-principles oops-in-java savings savings-account tech technology
Last synced: 17 Mar 2025
https://github.com/mohamedelziat50/plantsvszombies-miu
JavaFX-based game developed as part of our Object-Oriented Programming Course Project by a team of 5 members.
java javafx object-oriented-programming oop plants-vs-zombies
Last synced: 01 Nov 2025
https://github.com/delonnewman/hash_delegator
Thread-safe immutable objects that provide delegation and basic validation to hashes.
data-oriented data-oriented-programming data-structures fp functional-programming hash hashmap immutable immutable-datastructures object-oriented-programming oop ruby ruby-gems
Last synced: 29 Mar 2025
https://github.com/ahimta/c-superior-encapsulation
How the C programming language can have better encapsulation than other languages
Last synced: 20 May 2026
https://github.com/sakhileln/neo-inheritance
Mastering inheritance & packages.
classes inheritance interfaces java object-oriented-programming oop package packages uml uml-diagram
Last synced: 06 Apr 2025
https://github.com/gustavosachetto/curso-poo-js
Aulas do curso de JavaScript com Programação Orientada a Objetos (POO).
classes-and-objects javascript oop
Last synced: 22 Mar 2025
https://github.com/rawanfarakhnah/auto_fix
A Django-based web platform that helps car owners manage their vehicles, find nearby workshops, diagnose car issues using AI, set maintenance reminders, and leave service reviews.
ai ajax auth authintication-protocol aws csrf-protection deployment django js mysql oop orm python restfull-api
Last synced: 25 Jan 2026
https://github.com/valcler-manoel/java-studies
Programming Techniques Discipline Repository (UFC)
Last synced: 21 May 2026
https://github.com/amrtamertech/clsstack_library-cpp
A C++ template-based stack library (clsMyStack) built on top of a queue and doubly linked list, offering classic LIFO operations with extra flexibility.
cpp data-structures doubly-linked-list generic-programming inheritance oop stack templates
Last synced: 27 Jun 2025
https://github.com/subhranil002/cpp-programming
This repository is dedicated to my C++ practice for the WBJECA exam, focusing on core C++ and Object-Oriented Programming concepts ... ❤️
abstraction cplusplus cpp encapsulation inheritance oop oop-in-cpp polimorphism wbjeca
Last synced: 25 Feb 2025
https://github.com/m-awais-bs-ai-student/university-management-system
A C++ console application for managing academic records using Object-Oriented Programming. It demonstrates manual dynamic memory management (pointers) to handle Student, Teacher, Course, and Grade data. Features include creating, viewing, updating, and deleting records from the heap.
academic-records console-application cplusplus cpp crud-operations dynamic-memory-allocation education-system oop pointers student-management-system
Last synced: 27 May 2026
https://github.com/ryanlarge13/text-editor-js
Text editor with JavaScript (no libraries) using a gap buffer data structure for complete customization. (no mobile phone support 😕)
Last synced: 05 Apr 2025
https://github.com/ryanlarge13/kanban
Playing around with classes and vanilla js
Last synced: 05 Apr 2025
https://github.com/yannoff/collections
A simple object implementation for PHP arrays
array collection collections list map oop php
Last synced: 21 May 2026
https://github.com/the-man-w-laughs/mpp-faker
The Random Test Data Object Generator project
c-sharp expression-tree oop reflection unit-testing
Last synced: 24 Apr 2026
https://github.com/ikajdan/game_of_life
A Python object-oriented implementation of Conway's Game of Life
Last synced: 03 Mar 2025
https://github.com/br0wsa/oop-in-javascript
JavaScript Object Oriented Programming Tutorial Beginners - OOP in JavaScript
javascript js object-oriented-programming oop
Last synced: 22 Mar 2025
https://github.com/nafisahnubah/simple-board-game
A simple board game simulation implemented in Java
board-game java oop oops-in-java
Last synced: 17 Jun 2026
https://github.com/alice-sebego/favorites-list
Create your own favorites list
bootstrap class dom-manipulation javascript javascript-es6 oop poo responsive-design
Last synced: 28 Apr 2026
https://github.com/renebentes/2818
Curso 2818 - Aplicando Orientação a Objetos em Projetos Reais com C# 11 e .NET 7 - balta.io
Last synced: 30 Mar 2025
https://github.com/renebentes/2802
Curso 2802 - Fundamentos da Orientação a Objetos - balta.io
Last synced: 30 Mar 2025
https://github.com/simobin/java
My fuck'n playground of java
advance-programmming advanced-programming java java-programming learn-java object-oriented-programming oop vscode
Last synced: 15 Jun 2026
https://github.com/rifa8/object-oriented-programming
Learning OOP
object-oriented-programming oop python
Last synced: 22 Mar 2025