This repository contains the materials and instructions for the Java and Object-Oriented Programming lab conducted during the academic year 2023/2024 at the National Engineering School of Sousse.
- Java Version: Java 17
- IDE: NetBeans 16
Ensure that you have Java 17 installed on your system and have NetBeans 16 configured for Java development before starting the lab exercises.
The lab exercises are designed to help students grasp the concepts of object-oriented programming using Java. Each exercise focuses on different aspects of OOP, ranging from basic concepts to more advanced topics.
- Objective: Introduce students to the foundational concepts of Java programming, NetBeans IDE, and version control with Git.
- Topics Covered: Basic Java syntax, data types, variables, operators, control flow statements. NetBeans IDE features and usage. Introduction to version control with Git.
- Instructions: Complete Java program exercises in NetBeans, commit changes to a Git repository, and understand basic version control operations.
- Objective: Build on foundational Java knowledge by delving into object-oriented programming (OOP) principles, focusing on classes and objects.
- Topics Covered: Object-oriented concepts such as classes, objects, inheritance, polymorphism, encapsulation, and abstraction.
- Instructions: Implement class hierarchies, define objects, explore inheritance and polymorphism, and understand the principles of encapsulation and abstraction.
- Objective: Expand students' understanding of Java programming by exploring string manipulation and file handling.
- Topics Covered: String manipulation techniques, file input/output operations in Java.
- Instructions: Practice working with strings, reading from and writing to files, and handling various file-related operations in Java programs.
- Objective: Enhance students' comprehension and application of polymorphism, introduce enumeration, and demonstrate the use of Java annotations with Lombok.
- Topics Covered: Advanced concepts in polymorphism, enumeration, Java annotations with Lombok.
- Instructions: Implement advanced polymorphic behavior, explore enumeration for defining constants, and illustrate the usage of Java annotations with Lombok library for code generation tasks.
- Objective: Teach students how to handle exceptional situations in Java programs, explore advanced object-oriented concepts such as abstract classes, interfaces, and database communication in Java.
- Topics Covered: Differences between abstract classes and interfaces, exception handling mechanisms, try-catch blocks, custom exceptions.
- Instructions: Write Java programs that incorporate robust exception handling strategies and implement abstract classes and interfaces.
- Objective: Apply learned concepts by working on a project involving design patterns, Java Collections Framework, and database communication.
- Topics Covered: Design pattern implementation, utilization of Java collections (lists, sets, maps), database interaction.
- Instructions: Design and implement a project that utilizes design patterns for scalability and maintainability, utilizes various data structures from the Java Collections Framework, and communicates with a database for data storage and perform CRUD (Create, Read, Update, Delete) operations using PostgreSQL.