โ OOP in Java BCA 153 | Semester II
๐ Course Description
This course provides an in-depth introduction to object-oriented programming (OOP) principles and their implementation using the Java programming language. It covers concepts such as classes, objects, inheritance, polymorphism, abstraction, encapsulation, exception handling, multithreading, collections, generics, file handling, and advanced OOP concepts. The course emphasizes both theoretical understanding and hands-on programming skills.
๐ฏ Course Objectives
- Understand OOP principles and implement them in Java
- Install Java compiler and IDE, compile and run Java programs
- Design and develop Java applications using classes, objects, and interfaces
- Use exception handling, collections, generics, and file I/O in real-world programs
- Apply advanced OOP concepts (Design patterns, Lambda, Streams API) for efficient coding
- Build a small-scale Java project using OOP best practices
๐ Prerequisite: Conceptual understanding of programming logic and techniques.
๐ Detailed Syllabus
Unit 1: Introduction to Java and OOP Concept
6 Hrs
- History, Features / Buzzwords of Java
- Java Architecture: JVM, JDK and JRE
- Procedural-oriented vs Object-oriented Programming
- Setting up Java environment and IDE on local machine
- Sample Java programs, Compiling and running Java program
- Command-line arguments, Scanner class for input
- Handling common errors
Unit 2: Basics of Java Programming
8 Hrs
- Writing comments (single-line, multi-line, documentation)
- Java tokens: keywords, identifiers, literals, operators, separators
- Data types: primitive and user-defined
- Variable declaration and assignment, expressions
- Control statements: selection (if, switch), looping (for, while, do-while), jump (break, continue, return)
- Arrays: single dimension, multi-dimensional (rectangular and jagged)
- Type conversion and casting, Garbage Collection
- String: creation, concatenation, comparison, modification, case change, searching
- StringBuffer Class
Unit 3: Classes and Objects in Java
8 Hrs
- Defining class, adding methods, creating objects, calling methods
- Abstraction and Encapsulation
- Constructors and types: Default, Parameterized, Copy
- ‘this’ keyword, Static fields and methods
- Parameter passing: pass by value, pass by reference
- Recursion, Nested and inner classes
- Variable-length arguments (varargs)
- Packages: Defining and importing packages
Unit 4: Inheritance and Polymorphism
8 Hrs
- Inheritance basics
- Inheritance Types: Single-level, Multi-level, Multiple (via interfaces), Hierarchical
- ‘super’ keyword
- Polymorphism: Method overloading and method overriding
- Object class, ‘final’ keyword
- Abstract classes and methods
- Access control: private, protected, default, public
- Interfaces: Defining, implementing, and applying interfaces
Unit 5: Exception Handling and Multithreading
6 Hrs
- Basic exceptions, proper use of exceptions
- Exception hierarchy
- Exception handling keywords: try, catch, throw, throws, finally
- Java’s built-in exceptions
- User-defined exceptions
- Multithreading basics, Thread class and Runnable interface
- Thread priorities, Thread synchronization and inter-thread communication
Unit 6: File Handling in Java
6 Hrs
- Console and File I/O
- Reading and writing files using byte stream (FileInputStream, FileOutputStream)
- Reading and writing files using character stream (FileReader, FileWriter)
- Serialization and deserialization
- RandomAccessFile class
Unit 7: Collections and Generics
6 Hrs
- Wrapper classes and associated methods
- Java Collection Framework:
- List, Set, Map interfaces
- ArrayList, LinkedList, HashSet, HashMap, TreeSet classes
- Accessing collections: Iterator / Comparator
- Defining generic classes and methods
- Using wildcard arguments, Generic interface and hierarchy
- Generic restrictions
Unit 8: Advanced OOP Concepts in Java
4 Hrs
- Design patterns: Singleton, Factory, Observer pattern
- Lambda expressions
- Stream API: Introduction
- Optional class
- Method references
๐ฌ Laboratory Work (48 Hours)
Tools: Java SE, IDE (NetBeans, Eclipse, or IntelliJ), Notepad++
Install Java SE and IDE, compile/run first program
Command-line arguments and Scanner class implementation
Control statements, arrays, type casting exercises
String and StringBuffer class methods
Class, object, encapsulation, inheritance, polymorphism, abstraction
Built-in and user-defined exception handling
Multithreading concepts (Thread class, Runnable)
File I/O: byte stream, character stream, serialization, RandomAccessFile
Java Collection Framework and Generics implementation
Lambda expressions and Stream API basics
Final Project: Small-scale Java project applying OOP best practices
๐ Practical Report Contents: Theory, Source code, Output
๐ Required Readings & References
- Balagurusamy, E. (2024) โ Programming with Java (7th ed.), McGraw Hill
- Deitel, P. J., & Deitel, H. M. (2024) โ Java How to Program: An Objects-Natural Approach (12th ed.), Pearson