Skip to content

About

Coursework and lab implementations for Object Oriented Concepts II using Java, covering advanced OOP design, UML modeling, composition, SOLID principles, collections framework, multithreading, Swing (GUI), persistence, and client–server networking.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

17 Commits

Folders and files

Repository files navigation


🧠 Object Oriented Programming II (Java)

This repository contains my coursework, lab implementations, and practice programs for Object Oriented Concepts II (OOP-II) using Java, based on the official Software Engineering syllabus.

This course focuses on advanced object-oriented design, composition, design principles, concurrency, enterprise Java, and real-world software architecture.


📘 Course Information

  • Course Title: Object Oriented Concepts II
  • Credits: 2 Credit Theory + 1 Credit Lab
  • Language: Java

🧩 Review of Core OOP Concepts

A structured revision of fundamental OOP concepts with deeper design perspective:

  • Objects: Data & Behavior
  • Classes, Attributes, and Methods
  • 🔒 Encapsulation & Data Hiding
  • 🧬 Inheritance (Superclasses & Subclasses)
  • 🧠 Abstraction and Is-A Relationship
  • 🔁 Polymorphism
  • 🔗 Composition and Has-A Relationship

🧱 Mastering Composition & Object Modeling

  • Composition vs Inheritance
  • Aggregation and Association
  • Cardinality and Dependency Management
  • UML Representation of Composition
  • Building Objects in Phases
  • Avoiding Tight Coupling

📐 UML & Object Model Design

  • Class Diagrams
  • Attributes and Methods
  • Access Modifiers
  • Interfaces
  • Inheritance Hierarchies
  • Aggregation, Association & Cardinality

💾 Objects & Portable Data

  • Portable Data Concepts
  • XML Fundamentals
  • XML vs HTML
  • XML with Object-Oriented Languages
  • DTD (Document Type Definition)
  • XML Validation
  • CSS with XML

🗄️ Object Persistence

  • Basics of Persistence
  • Flat File Storage
  • XML-based Serialization
  • Writing Objects to Relational Databases

🌐 Objects & Distributed Systems

🔹 Internet & Enterprise Objects

  • Object-Based Scripting Languages
  • Objects in Web Pages
  • Distributed Objects
  • Enterprise Applications

🔹 Client / Server Architecture

  • Client-Server Approaches
  • Proprietary vs Non-Proprietary Systems

🧠 Object Oriented Design Principles (SOLID)

  • Single Responsibility Principle (SRP)
  • Open/Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)

🧩 Component-Based Design

  • Component-Based Architecture
  • Design Patterns (Introduction)
  • Code Smells and Refactoring Concepts

☕ Advanced Java Programming

🔹 Generics

  • Generic Classes and Methods
  • Wildcards
  • Type Safety

🔹 Collection Framework

  • Collection Interfaces
  • List & SortedList
  • Set, SortedSet & NavigableSet
  • Map, SortedMap & NavigableMap
  • Queue, Deque & Stack
  • hashCode() and equals()
  • Comparator vs Comparable

🔍 Reflection & Dynamic Behavior

  • Class Class
  • java.lang.reflect Package
  • Accessing Fields and Methods
  • Reflection with Exception Handling
  • Dynamic Programming Concepts

⚙️ Multi-Threaded Programming

  • Java Thread Model
  • Creating & Running Threads
  • Thread Pools
  • Thread Synchronization
  • wait(), notify()
  • join() and sleep()
  • Java Concurrency API

🖥️ User Interface Programming (Swing)

  • Swing Components
  • Containers
  • Event Handling
  • Layout Managers
  • SwingWorker

📦 Serialization

  • Serializable Interface
  • Writing & Reading Objects
  • Customized Serialization
  • Controlling Serialization
  • Exception Handling

🌐 Network Programming

🔹 Socket Programming

  • Client & Server Model
  • Ports & Protocols
  • I/O-based Communication
  • ServerSocket Class
  • URL and URLConnection

🔹 Java Servlet Programming

  • Servlet Life Cycle
  • HttpServlet
  • HttpRequest & HttpResponse
  • RequestDispatcher
  • HttpSession & ServletContext
  • Cookies & Filters
  • HTTP Headers & MIME Types

☕ JavaBeans API

  • Introspector
  • PropertyDescriptor
  • EventSetDescriptor
  • MethodDescriptor

📂 Repository Structure (Example)

oop-ii-java/
│── composition/
│── uml-modeling/
│── solid-principles/
│── generics/
│── collections/
│── multithreading/
│── reflection/
│── serialization/
│── socket-programming/
│── servlets/
│── swing-ui/
│── design-patterns/

🎯 Learning Objectives

By completing this course, I aim to:

  • Design scalable and maintainable object-oriented systems
  • Apply SOLID principles effectively
  • Build multi-threaded and distributed Java applications
  • Understand enterprise-level Java architecture
  • Think like a software designer, not just a programmer

📚 References

  1. The Object Oriented Thought Process — Matt Weisfeld
  2. Java How to Program — Deitel & Deitel
  3. Java: The Complete Reference — Herbert Schildt
  4. Head First Java — Kathy Sierra & Bert Bates

👤 Author

A.S.M. Morshed Software Engineering Institute of Information Technology (IIT) Noakhali Science and Technology University

OOP • Java • Software Design


About

Coursework and lab implementations for Object Oriented Concepts II using Java, covering advanced OOP design, UML modeling, composition, SOLID principles, collections framework, multithreading, Swing (GUI), persistence, and client–server networking.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages