Skip to content

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.

License

Notifications You must be signed in to change notification settings

HamzaGbada/java-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java and Object-Oriented Programming Lab

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.

Environment Setup

  • 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.

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.

Session 1: Java, Netbeans, and Git Fundamentals

  • 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.

Session 2: Object-Oriented Concepts (Objects and Classes)

  • 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.

Session 3: String and File Handling in Java

  • 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.

Session 4: Advanced OOP (Polymorphism), Enumeration, and Java Annotation (Lombok Example)

  • 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.

Session 5: Abstract Classes vs Interfaces and Exception Handling

  • 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.

Project: Design Patterns, Collections, and Database Communication

  • 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.

Additional Resources

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages