Skip to content

irem-eroglu/Java-OOP-Projects

Repository files navigation

Object-Oriented Programming in Java

This repository contains a collection of comprehensive Java projects demonstrating the core principles of Object-Oriented Programming (OOP), event-driven application design, and dynamic memory handling.

Academic Disclaimer: These projects were developed as part of the BBM104 Introduction to Programming Laboratory II course. While the problem scenarios, structural guidelines, and expected class hierarchies were outlined by the course curriculum, no starter code was provided. The actual code implementations, internal logic, event handling, and algorithms were developed entirely from scratch by me.

Repository Structure

All projects are built using Java 8+, emphasizing clean architecture, polymorphism, inheritance, and encapsulation.

A comprehensive backend simulation for a university library handling varying borrowing rules, penalty calculations, and inventory tracking across multiple user roles.

  • Key Topics: Inheritance Hierarchies, Polymorphism, HashMap/List Data Structures, Time API (LocalDate), File I/O.
  • Highlight: Engineered a dynamic rule-engine that calculates automated return penalties and restricts borrowing privileges based on distinct user roles (Student, Academic, Guest).

A simulation of a zoo ecosystem focusing on resource management, role-based access control, and dynamic biological scaling.

  • Key Topics: Abstraction, Polymorphism, Custom Exception Handling, HashMap-based Inventory.
  • Highlight: Developed an abstract Animal contract where subclasses (Lion, Elephant, etc.) polymorphically calculate dynamic meal requirements based on age deviations and species-specific metabolic constants.

A complex relational data simulation of a university's academic management infrastructure, acting as a lightweight relational database memory model.

  • Key Topics: Interface-Driven Design (Assignable), Multi-file Data Synchronization, Hierarchical Reporting.
  • Highlight: Engineered a robust data ingestion layer that simultaneously parses and synchronizes 6 distinct batch files, linking entities (Students, Academics, Courses) in O(1) time complexity using multiple HashMap collections.

A fully functional 2D top-down arcade tank simulation featuring real-time rendering, custom physics collision logic, and autonomous entity management.

  • Key Topics: JavaFX (Canvas API), Real-time Game Loop (AnimationTimer), AABB Collision Detection, Event-Driven Programming.
  • Highlight: Developed a proprietary Axis-Aligned Bounding Box (AABB) collision engine and a memory-efficient immediate-mode rendering pipeline for concurrent entity management.

Technical Focus

  • Independent Implementation: Successfully translated theoretical assignment guidelines and structural requirements into robust, working Java code.
  • System Stability: Extensive use of custom exception architectures to handle business logic violations without halting batch processing pipelines.
  • Performance: Optimized O(1) lookups using the Java Collections Framework to manage complex relational datasets in memory.

Developed by İrem Eroğlu as part of the Artificial Intelligence Engineering curriculum.

About

Java projects demonstrating clean OOP architecture, relational data management, and interactive applications using JavaFX.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages