Skip to content

About

Java implementations of Object Oriented Programming I concepts, focusing on encapsulation, abstraction, inheritance, and polymorphism with practical examples.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation


🧩 Object Oriented Programming I (Java)

This repository contains my coursework, practice codes, and lab implementations for Object Oriented Concepts I (OOP-I) using Java, following the official syllabus of the Software Engineering program.

The goal of this repository is to master core object-oriented principles and apply them through clean, reusable, and maintainable Java code.


🎯 Core OOP Pillars

This course is centered around the four fundamental pillars of Object-Oriented Programming:

  • 🔒 Encapsulation – Data hiding through access modifiers, interfaces, and controlled access
  • 🧠 Abstraction – Abstract classes, interfaces, and minimal public interfaces
  • 🔁 Polymorphism – Method overloading, method overriding, dynamic binding
  • 🧬 Inheritance – Superclasses, subclasses, generalization, and specialization

Each concept is implemented with practical Java examples.


📘 Course Overview

Course Title: Object Oriented Concepts I Credits: 2 Credit Theory + 1 Credit Lab

🔹 Topics Covered

🟢 Object Oriented Fundamentals

  • Procedural vs Object Oriented Programming
  • Objects: Data & Behavior
  • Classes: Attributes, Methods, Messages
  • UML Class Diagrams
  • Interface vs Implementation
  • Is-a and Has-a Relationships

🟢 Class Design & Constructors

  • Default and Parameterized Constructors
  • Multiple Constructors
  • Constructor Design Principles
  • Scope and Error Handling
  • Anatomy of a Class
  • Public Interfaces vs Private Implementations

🟢 Advanced OOP Concepts

  • Composition and Object Collaboration
  • Reuse, Extensibility, and Maintainability
  • Modeling Real-World Systems
  • Class Responsibility and Collaboration
  • Frameworks, Abstract Classes, and Interfaces
  • How Inheritance Weakens Encapsulation

☕ Java Programming Essentials

🔹 Java Basics

  • JVM, JRE, JDK
  • Java Installation and IDE Setup
  • Hello World Program
  • Compilation and Execution
  • Java Classpath & JVM Architecture

🔹 Java Syntax & Features

  • Packages and Imports
  • Fields, Methods, and Constructors
  • Primitive Data Types
  • Strings and Wrapper Classes
  • null and Nonexistence Types

🧪 Practical Java Implementations

🔹 String Handling

  • String Creation & Operations
  • Immutability of String
  • Comparison and Searching
  • StringBuffer & StringBuilder

🔹 Exception Handling

  • try / catch
  • Checked vs Unchecked Exceptions
  • throw and throws
  • Common Exceptions
  • User-Defined Exceptions

🔹 Java I/O

  • Streams (Input & Output)
  • Files and Directories
  • Path and Directory Tree

🔹 Logging & Debugging

  • Java Logger
  • Log Levels
  • Formatters & Filters
  • Debugging Workflow

📂 Repository Structure (Example)

oop-i-java/
│── basics/
│── encapsulation/
│── inheritance/
│── polymorphism/
│── abstraction/
│── constructors/
│── exception-handling/
│── string-handling/
│── io-streams/
│── logging-debugging/

🎯 Learning Outcome

By completing this course and repository, I aim to:

  • Think in objects, not procedures
  • Design robust and reusable classes
  • Apply OOP principles in real-world software systems
  • Build a strong foundation for advanced software engineering courses

📚 References

  1. The Object Oriented Thought Process — Matt Weisfeld
  2. Java How to Program — Paul Deitel & Harvey Deitel
  3. Java: The Complete Reference — Herbert Schildt

👤 Author

A.S.M. Morshed Software Engineering Student Aspiring Software Engineer & Academic Enthusiast


About

Java implementations of Object Oriented Programming I concepts, focusing on encapsulation, abstraction, inheritance, and polymorphism with practical examples.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages