<< Back to Object Oriented Programming Portfolio

Parking Garage Assignment


Car class

public class Car
{
    private String licensePlate;
    private String brand;
    private String color;

    public Car(String licensePlate, String brand, String color)
    {
        this.licensePlate = licensePlate;
        this.brand = brand;
        this.color = color;
    }

    public String getLicensePlate()
    {
        return this.licensePlate;
    }

    public String getBrand()
    {
        return this.brand;
    }

    public String getColor()
    {
        return this.color;
    }

    public void setLicensePlate(String licensePlate)
    {
        this.licensePlate = licensePlate;
    }

    public void setBrand(String brand)
    {
        this.brand = brand;
    }

    public void setColor(String Color)
    {
        this.color = color;
    }
}

ParkingGarage class

import java.util.ArrayList;

public class ParkingGarage
{
    private String name;
    private String address;
    private int capacity;
    private ArrayList<Car> cars;


    public ParkingGarage(String name, String address, int capacity)
    {
        this.name = name;
        this.address = address;
        this.capacity = capacity;
        this.cars = new ArrayList<>();
    }

    public boolean isValidLicensePlate(String licensePlate)
    {
        return licensePlate.matches("[A-Z0-9]{2}-[A-Z0-9]{2}-[A-Z0-9]{2}");
    }
        
    public void addCar(Car car)
    {
        if (this.cars.size() < this.capacity && isValidLicensePlate(car.getLicensePlate()))
        {
            this.cars.add(car);
        }
        else
        {
            System.out.println("The parking garage is full or Invalid license plate.");
        }
    }

    public int getAmountOfWhiteCars()
    {
        int count = 0;
        for (Car car : this.cars)
        {
            if (car.getColor().equals("white"))
            {
                count++;
            }
        }
        return count;
    }

    public int getAmountOfCarByBrand(String brand)
    {
        int count = 0;
        for (Car car : this.cars)
        {
            if (car.getBrand().equals(brand))
            {
                count++;
            }
        }
        return count;
    }

    public boolean exit(Car car)
    {
        return this.cars.remove(car);
    }

    public String getName()
    {
        return this.name;
    }

    public String getAddress()
    {
        return this.address;
    }

    public int getCapacity()
    {
        return this.capacity;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public void setAddress(String address)
    {
        this.address = address;
    }

    public void setCapacity(int capacity)
    {
        this.capacity = capacity;
    }
}