
22AIE111-Object-Oriented-Programming-in-Java-S2-2025
Notes and Coding Examples for OOP in Java Class
Stars: 72

README:
Welcome to the Object Oriented Programming in Java repository! This repository contains notes and code examples organized into units, helping you understand and practice Java concepts step-by-step.
The repository is organized into four main folders, each representing a unit of the course:
-
Unit1/
-
NOTES.md
– Markdown notes covering fundamental OOP in Java concepts. -
code/
– Example Java programs (subfolders).
-
-
Unit2/
NOTES.md
code/
-
Unit3/
NOTES.md
code/
-
Unit4/
NOTES.md
code/
Additionally, you will find:
- .vsode/, .idea/ – Contains setup files for Visual Studio Code (VS Code) and IntelliJ IDEA to help you load and run the Java projects in each of the subfolders.
-
Browse the Notes
Within each unit folder, find theNOTES.md
Markdown (.md
) files. These notes will guide you through the theoretical concepts of each unit. -
Explore the Code Examples
In thecode
subfolder under each unit, you will find practical Java examples illustrating the concepts discussed in the notes. Each example might be in its own subfolder. -
Run and Experiment
Feel free to modify the example code or create your own Java files to practice. Instructions on setting up Java and running the code from the command line are provided below. -
Setup Files
- If you prefer using VS Code, refer to the files in the
setup/vscode
directory. - If you prefer using IntelliJ IDEA, refer to the files in the
setup/idea
directory.
- If you prefer using VS Code, refer to the files in the
-
Prerequisites Before you begin, ensure that the following tools are installed on your system:
- Java Development Kit (JDK): Version 11 or higher.
- Git: For version control.
- Gradle: Although we'll use the Gradle Wrapper, having Gradle installed can be helpful.
- Text Editor or IDE: Such as VS Code, IntelliJ IDEA, or Eclipse.
You have two main options for installing the Java Development Kit (JDK): Oracle JDK or OpenJDK. Both will allow you to compile and run Java programs.
OpenJDK is open-source and is typically the easiest to install on Ubuntu:
sudo apt update
sudo apt install openjdk-21-jdk
(You can replace 21
with the version you need, e.g., openjdk-11-jdk
.)
If you prefer Oracle’s official JDK:
- Download the
.deb
package from the Oracle Official Website. - Navigate to the directory where the package is saved:
cd /path/to/download
- Install the package:
sudo dpkg -i <oracle-jdk-package>.deb
- Verify installation:
You should see the Oracle JDK version displayed.
java -version
After installing Java (whether OpenJDK or Oracle JDK), you can compile and run the example code from the command line. Below is a general step-by-step guide:
-
Open a Terminal: Navigate (
cd
) to the directory containing the Java files you want to compile. For instance:cd /path/to/Unit1/code/Example1
-
Compile the Java File(s):
javac Main.java
-
javac
is the Java compiler. - This will generate one or more
.class
files in the same directory.
-
-
Run the Java Program:
java Main
- Make sure Main is the class that contains the
public static void main(String[] args)
method.
- Make sure Main is the class that contains the
-
Passing Arguments (Optional):
If your program requires command-line arguments, you can pass them like so:java Main arg1 arg2
- Install the Java Extension Pack from the VS Code Marketplace.
- Copy or clone this repository to your local machine.
- Open the root of this repository with VS Code.
- The extension pack will detect the Java projects, and you can start editing, compiling, and debugging Java code directly within VS Code.
- Install IntelliJ IDEA (Community Edition is sufficient).
- Clone this repository to your local machine.
- From the IntelliJ IDEA Welcome screen, select Open or Import.
- Navigate to this repository’s root folder (or a specific unit’s
code
subfolder) and import it as a Maven/Gradle project if applicable, or simply as a Java project. - IntelliJ will automatically configure the project’s libraries and dependencies.
If you find any issues or want to suggest improvements:
- Open an Issue: Describe the problem or the idea you have.
- Submit a Pull Request: Fork this repository, make changes, and submit a pull request for review.
This repository is intended for educational purposes. Feel free to fork and modify for your personal study or classroom use. If you plan to use it beyond that, please check the specific licensing details or contact the authors of the original work.
Happy Coding!
For any questions or clarifications regarding the course materials, feel free to reach out to me at [email protected]
or open an issue in this repository. Enjoy learning Object Oriented Programming in Java!
For Tasks:
Click tags to check more tools for each tasksFor Jobs:
Alternative AI tools for 22AIE111-Object-Oriented-Programming-in-Java-S2-2025
Similar Open Source Tools

easydiffusion
Easy Diffusion 3.0 is a user-friendly tool for installing and using Stable Diffusion on your computer. It offers hassle-free installation, clutter-free UI, task queue, intelligent model detection, live preview, image modifiers, multiple prompts file, saving generated images, UI themes, searchable models dropdown, and supports various image generation tasks like 'Text to Image', 'Image to Image', and 'InPainting'. The tool also provides advanced features such as custom models, merge models, custom VAE models, multi-GPU support, auto-updater, developer console, and more. It is designed for both new users and advanced users looking for powerful AI image generation capabilities.

t3rn-airdrop-bot
A bot designed to automate transactions and bridge assets on the t3rn network, making the process seamless and efficient. It supports multiple wallets through a JSON file containing private keys, with robust error handling and retry mechanisms. The tool is user-friendly, easy to set up, and supports bridging from Optimism Sepolia and Arbitrum Sepolia.

Groqqle
Groqqle 2.1 is a revolutionary, free AI web search and API that instantly returns ORIGINAL content derived from source articles, websites, videos, and even foreign language sources, for ANY target market of ANY reading comprehension level! It combines the power of large language models with advanced web and news search capabilities, offering a user-friendly web interface, a robust API, and now a powerful Groqqle_web_tool for seamless integration into your projects. Developers can instantly incorporate Groqqle into their applications, providing a powerful tool for content generation, research, and analysis across various domains and languages.

CodebaseToPrompt
CodebaseToPrompt is a tool that converts a local directory into a structured prompt for Large Language Models (LLMs). It allows users to select specific files for code review, analysis, or documentation by exploring and filtering through the file tree in an interactive interface. The tool generates a formatted output that can be directly used with LLMs, estimates token count, and supports flexible text selection. Users can deploy the tool using Docker for self-contained usage and can contribute to the project by opening issues or submitting pull requests.

trustgraph
TrustGraph is a tool that deploys private GraphRAG pipelines to build a RDF style knowledge graph from data, enabling accurate and secure `RAG` requests compatible with cloud LLMs and open-source SLMs. It showcases the reliability and efficiencies of GraphRAG algorithms, capturing contextual language flags missed in conventional RAG approaches. The tool offers features like PDF decoding, text chunking, inference of various LMs, RDF-aligned Knowledge Graph extraction, and more. TrustGraph is designed to be modular, supporting multiple Language Models and environments, with a plug'n'play architecture for easy customization.

Local-File-Organizer
The Local File Organizer is an AI-powered tool designed to help users organize their digital files efficiently and securely on their local device. By leveraging advanced AI models for text and visual content analysis, the tool automatically scans and categorizes files, generates relevant descriptions and filenames, and organizes them into a new directory structure. All AI processing occurs locally using the Nexa SDK, ensuring privacy and security. With support for multiple file types and customizable prompts, this tool aims to simplify file management and bring order to users' digital lives.

gitdiagram
GitDiagram is a tool that turns any GitHub repository into an interactive diagram for visualization in seconds. It offers instant visualization, interactivity, fast generation, customization, and API access. The tool utilizes a tech stack including Next.js, FastAPI, PostgreSQL, Claude 3.5 Sonnet, Vercel, EC2, GitHub Actions, PostHog, and Api-Analytics. Users can self-host the tool for local development and contribute to its development. GitDiagram is inspired by Gitingest and has future plans to use larger context models, allow user API key input, implement RAG with Mermaid.js docs, and include font-awesome icons in diagrams.

blum-airdrop-bot
Blum Airdrop Bot automates interactions with the Blum airdrop platform, allowing users to claim rewards, manage farming sessions, complete tasks, and play games automatically. It includes features like claiming farm rewards, starting farming sessions, auto-completing tasks, auto-playing games, and claiming daily rewards. Users can choose between Default Flow for manual task selection and One-time Flow for continuous automated tasks. The setup requires Node.js, npm, and setting up a `.env` file with `QUERY_ID`. The bot can be started with `npm start` and supports donations in Solana, EVM, and BTC.

Visionatrix
Visionatrix is a project aimed at providing easy use of ComfyUI workflows. It offers simplified setup and update processes, a minimalistic UI for daily workflow use, stable workflows with versioning and update support, scalability for multiple instances and task workers, multiple user support with integration of different user backends, LLM power for integration with Ollama/Gemini, and seamless integration as a service with backend endpoints and webhook support. The project is approaching version 1.0 release and welcomes new ideas for further implementation.

minefield
BitBom Minefield is a tool that uses roaring bit maps to graph Software Bill of Materials (SBOMs) with a focus on speed, air-gapped operation, scalability, and customizability. It is optimized for rapid data processing, operates securely in isolated environments, supports millions of nodes effortlessly, and allows users to extend the project without relying on upstream changes. The tool enables users to manage and explore software dependencies within isolated environments by offline processing and analyzing SBOMs.

logicstudio.ai
LogicStudio.ai is a powerful visual canvas-based tool for building, managing, and visualizing complex logic flows involving AI agents, data inputs, and outputs. It provides an intuitive interface to streamline development processes by offering features like drag-and-drop canvas design, dynamic components, real-time connections, import/export capabilities, zoom & pan controls, file management, AI integration, editable views, and various output formats. Users can easily add, connect, configure, and manage components to create interactive systems and workflows.

nanobrowser
Nanobrowser is an open-source AI web automation tool that runs in your browser. It is a free alternative to OpenAI Operator with flexible LLM options and a multi-agent system. Nanobrowser offers premium web automation capabilities while keeping users in complete control, with features like a multi-agent system, interactive side panel, task automation, follow-up questions, and multiple LLM support. Users can easily download and install Nanobrowser as a Chrome extension, configure agent models, and accomplish tasks such as news summary, GitHub research, and shopping research with just a sentence. The tool uses a specialized multi-agent system powered by large language models to understand and execute complex web tasks. Nanobrowser is actively developed with plans to expand LLM support, implement security measures, optimize memory usage, enable session replay, and develop specialized agents for domain-specific tasks. Contributions from the community are welcome to improve Nanobrowser and build the future of web automation.

crawlee
Crawlee is a web scraping and browser automation library that helps you build reliable scrapers quickly. Your crawlers will appear human-like and fly under the radar of modern bot protections even with the default configuration. Crawlee gives you the tools to crawl the web for links, scrape data, and store it to disk or cloud while staying configurable to suit your project's needs.

FinAnGPT-Pro
FinAnGPT-Pro is a financial data downloader and AI query system that downloads quarterly and annual financial data for stocks from EOD Historical Data, storing it in MongoDB and Google BigQuery. It includes an AI-powered natural language interface for querying financial data. Users can set up the tool by following the prerequisites and setup instructions provided in the README. The tool allows users to download financial data for all stocks in a watchlist or for a single stock, query financial data using a natural language interface, and receive responses in a structured format. Important considerations include error handling, rate limiting, data validation, BigQuery costs, MongoDB connection, and security measures for API keys and credentials.