Skip to content

denisepetalino/further-oop-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Further Object-Oriented Programming (Java)

About

This repository contains my full set of lab exercises and coursework from the Further Object-Oriented Programming module.
The project was originally developed in IntelliJ during my degree. After graduation, I no longer had access to my university Git server so I restored the project from my local files and uploaded it here. All source code is intact, although the original commit history is not available.

The labs cover a range of Java fundamentals, OOP concepts and applied programming tasks.
Each package focuses on a specific theme, with both main code and corresponding unit-style tests.


πŸ“ Contents of This Repository

Below is a short description of what each package contains.

  • blocks/ : Basic Algorithms & Control Flow
    Contains small standalone classes implementing introductory algorithmic problems:

    • Counting and max values
    • Fibonacci generation
    • First non-repeating character
    • String reversal
    • Working with multiples
      Each file typically has a companion Main class demonstrating program execution.
  • geometry/ : Shape Modelling & Calculations
    Implements 2D and 3D geometric objects:

    • Circle, Rectangle, Square, Triangle
    • Cube, Cuboid, Cylinder, Sphere
      These classes include constructors, fields, getters and logic for computing areas, perimeters or volumes.
  • graphics/ : Simple Drawing / Visual Representation
    Contains small graphical demos (House, Tree) used to practise composition, object modelling and basic drawing logic.

  • hello/ : Introductory Java Programs
    Simple starter classes dealing with:

    • Basic print statements
    • Personalised messages
    • Console output fundamentals
  • javapy/ : Java & Python Style Exercise
    Includes a small integration or style-focused exercise (JavaPythonIntegration.java) used for mixed-language concepts during the module.

  • lists/ : Collections & Generics
    Exercises working with Java lists:

    • Reversing lists
    • Removing duplicates
    • Merging lists
    • Calculating statistics from list contents
      Introduces iteration, generics and collection operations.
  • metrics/ : Unit Conversions
    Small programs converting:

    • Temperatures
    • Distances
      Focuses on method design, constants and clean data transformations.
  • reflection/ : Exploring Java Reflection
    Implements utilities to:

    • Inspect classes
    • List methods
    • Demonstrate runtime type discovery
      These labs introduce more advanced Java features.
  • shapes/ : Abstract Classes & Interfaces
    A more OOP-focused modelling package containing:

    • Shape abstract class
    • Drawable interface
    • ShapeFactory
    • ShapeAreaCalculator
      Demonstrates polymorphism, abstraction and separation of interfaces vs implementations.
  • stats/ : Statistics & Data Processing
    Implements:

    • Average calculations
    • Frequency counting
    • Histogram generation
      Exercises combining loops, collections and basic data analysis.
  • src/test/java/ : Tests
    The test structure mirrors the layout of src/main/java.
    Used to verify correct behaviour and support iterative debugging throughout the labs.


πŸš€ How to Run This Project

Using IntelliJ IDEA

  1. Open IntelliJ
  2. Select File β†’ Open… and choose the project root
  3. Let IntelliJ index the project
  4. Open any class containing a main method
  5. Click the green Run icon

Using VS Code

  1. Install the Java Extension Pack
  2. Open the project folder in VS Code
  3. Let it auto-detect/build the Java project
  4. Open a class with a main method
  5. Click Run

πŸ“¦ Requirements

  • Java Development Kit (JDK 8 or higher)
  • IntelliJ IDEA or Visual Studio Code with Java support

πŸ“„ Notes

This project serves as a record of my core Java/OOP training.
It demonstrates:

  • Strong foundations in object-oriented programming
  • Clean class design and modular code
  • Understanding of inheritance, interfaces and abstraction
  • Experience with collections, algorithms and reflection
  • Ability to write and maintain structured Java applications

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors