diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..ab1f416
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Ignored default folder with query files
+/queries/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/lab-java-interfaces-and-abstract-classes.iml b/.idea/lab-java-interfaces-and-abstract-classes.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/lab-java-interfaces-and-abstract-classes.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..4eb4f51
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..ff55171
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/BigDecimalOperations.java b/src/BigDecimalOperations.java
new file mode 100644
index 0000000..3243b11
--- /dev/null
+++ b/src/BigDecimalOperations.java
@@ -0,0 +1,32 @@
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
+public class BigDecimalOperations {
+ static void main(String[] args){
+
+ BigDecimal a = new BigDecimal("4.2545");
+ double result = toRoundedDouble(a);
+
+ System.out.println(result);
+
+ BigDecimal b = new BigDecimal("1.2345");
+ BigDecimal bMinus = reverseSign(b);
+
+ System.out.println(bMinus);
+
+ BigDecimal c = new BigDecimal("-45.67");
+ BigDecimal cMinus = reverseSign(c);
+
+ System.out.println(cMinus);
+ }
+
+ private static double toRoundedDouble(BigDecimal a) {
+ return a.setScale(2, RoundingMode.HALF_UP).doubleValue();
+ }
+
+ private static BigDecimal reverseSign(BigDecimal b ){
+ return b.setScale(1, RoundingMode.HALF_UP).negate();
+ }
+
+
+}
diff --git a/src/CarInventorySystem/Car.java b/src/CarInventorySystem/Car.java
new file mode 100644
index 0000000..ecc3710
--- /dev/null
+++ b/src/CarInventorySystem/Car.java
@@ -0,0 +1,52 @@
+package CarInventorySystem;
+
+public abstract class Car {
+ private String vinNumber;
+ private String make;
+ private String model;
+ private int mileage;
+
+
+ public Car(String vinNumber, String make, String model, int mileage) {
+ this.vinNumber = vinNumber;
+ this.make = make;
+ this.model = model;
+ this.mileage = mileage;
+ }
+
+ public void getInfo(){
+ System.out.println("The vehicle is a " + make + " " + model + " with VIN number: " + vinNumber + " and at " + mileage + "km.");
+ }
+
+ public String getVinNumber() {
+ return vinNumber;
+ }
+
+ public void setVinNumber(String vinNumber) {
+ this.vinNumber = vinNumber;
+ }
+
+ public String getMake() {
+ return make;
+ }
+
+ public void setMake(String make) {
+ this.make = make;
+ }
+
+ public String getModel() {
+ return model;
+ }
+
+ public void setModel(String model) {
+ this.model = model;
+ }
+
+ public int getMileage() {
+ return mileage;
+ }
+
+ public void setMileage(int mileage) {
+ this.mileage = mileage;
+ }
+}
diff --git a/src/CarInventorySystem/CarApplication.java b/src/CarInventorySystem/CarApplication.java
new file mode 100644
index 0000000..6a8530f
--- /dev/null
+++ b/src/CarInventorySystem/CarApplication.java
@@ -0,0 +1,15 @@
+package CarInventorySystem;
+
+public class CarApplication {
+ public static void main(String[] args){
+
+ Car sedan = new Sedan ("WZZZADG30986DC45H", "Honda", "Civic", 150000);
+ Car truck = new Truck ("1FTFWET4EFA88453", "Ford", "F-150", 289648, 14000);
+ Car utility = new UtilityVehicle("J3T1AC12R8M1003HM76", "Toyota", "Rav4", 35699, true);
+
+
+ sedan.getInfo();
+ truck.getInfo();
+ utility.getInfo();
+ }
+}
diff --git a/src/CarInventorySystem/Sedan.java b/src/CarInventorySystem/Sedan.java
new file mode 100644
index 0000000..10d600b
--- /dev/null
+++ b/src/CarInventorySystem/Sedan.java
@@ -0,0 +1,12 @@
+package CarInventorySystem;
+
+public class Sedan extends Car {
+
+
+ public Sedan(String vinNumber, String make, String model, int mileage) {
+ super(vinNumber, make, model, mileage);
+ }
+
+
+
+}
diff --git a/src/CarInventorySystem/Truck.java b/src/CarInventorySystem/Truck.java
new file mode 100644
index 0000000..ba97530
--- /dev/null
+++ b/src/CarInventorySystem/Truck.java
@@ -0,0 +1,24 @@
+package CarInventorySystem;
+
+public class Truck extends Car{
+ private double towingCapacity;
+
+ public Truck(String vinNumber, String make, String model, int mileage, double towingCapacity) {
+ super(vinNumber, make, model, mileage);
+ this.towingCapacity = towingCapacity;
+ }
+
+ @Override
+ public void getInfo(){
+ System.out.println("The vehicle is a " + getMake() + " " + getModel() + " with VIN number: " + getVinNumber() + " at " + getMileage() + "km " + "and with a towning capacity of " + towingCapacity);
+ }
+
+
+ public double getTowingCapacity() {
+ return towingCapacity;
+ }
+
+ public void setTowingCapacity(double towingCapacity) {
+ this.towingCapacity = towingCapacity;
+ }
+}
diff --git a/src/CarInventorySystem/UtilityVehicle.java b/src/CarInventorySystem/UtilityVehicle.java
new file mode 100644
index 0000000..c88e361
--- /dev/null
+++ b/src/CarInventorySystem/UtilityVehicle.java
@@ -0,0 +1,23 @@
+package CarInventorySystem;
+
+public class UtilityVehicle extends Car {
+ private boolean fourWheelDrive;
+
+ public UtilityVehicle(String vinNumber, String make, String model, int mileage, boolean fourWheelDrive) {
+ super(vinNumber, make, model, mileage);
+ this.fourWheelDrive = fourWheelDrive;
+ }
+
+
+ public void getInfo() {
+ System.out.println("The vehicle is a " + getMake() + " " + getModel() + " with VIN number: " + getVinNumber() + " at " + getMileage() + "km " + "and has four wheel drive " + fourWheelDrive);
+ }
+
+ boolean isFourWheelDrive () {
+ return fourWheelDrive;
+ }
+
+ public void setFourWheelDrive ( boolean fourWheelDrive){
+ this.fourWheelDrive = fourWheelDrive;
+ }
+}
\ No newline at end of file
diff --git a/src/Interface/IntArrayList.java b/src/Interface/IntArrayList.java
new file mode 100644
index 0000000..4372d35
--- /dev/null
+++ b/src/Interface/IntArrayList.java
@@ -0,0 +1,30 @@
+package Interface;
+
+import java.sql.Array;
+
+public class IntArrayList implements IntList {
+
+
+
+
+ public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length){
+ int[] sourceArray = new int[] {1,2,3,4,5,6,7,8,9,10};
+ int[] destinationArray = new int[10];
+ System.arraycopy(sourceArray, 0, destinationArray, 4, sourceArray.length);
+
+ System.out.println(Array.toString(destinationArray));
+ }
+
+
+
+
+ @Override
+ public int add(int number) {
+ return 0;
+ }
+
+ @Override
+ public int get(int id) {
+ return 0;
+ }
+}
diff --git a/src/Interface/IntList.java b/src/Interface/IntList.java
new file mode 100644
index 0000000..a2bd28a
--- /dev/null
+++ b/src/Interface/IntList.java
@@ -0,0 +1,13 @@
+package Interface;
+
+public interface IntList {
+
+ default int add(int number){
+ }
+
+
+
+
+ default int get(int id){
+ }
+}
diff --git a/src/Interface/IntListApplication.java b/src/Interface/IntListApplication.java
new file mode 100644
index 0000000..a00c340
--- /dev/null
+++ b/src/Interface/IntListApplication.java
@@ -0,0 +1,9 @@
+package Interface;
+
+public class IntListApplication {
+ static void main (String[] args){
+
+
+
+ }
+}
diff --git a/src/Interface/IntVector.java b/src/Interface/IntVector.java
new file mode 100644
index 0000000..4829e69
--- /dev/null
+++ b/src/Interface/IntVector.java
@@ -0,0 +1,13 @@
+package Interface;
+
+public class IntVector implements IntList{
+ @Override
+ public int add(int number) {
+ return 0;
+ }
+
+ @Override
+ public int get(int id) {
+ return 0;
+ }
+}
diff --git a/src/VideoStreamingService/Movie.java b/src/VideoStreamingService/Movie.java
new file mode 100644
index 0000000..1f1afb3
--- /dev/null
+++ b/src/VideoStreamingService/Movie.java
@@ -0,0 +1,24 @@
+package VideoStreamingService;
+
+public class Movie extends Video {
+ private double rating;
+
+
+ public Movie(String title, int duration, double rating) {
+ super(title, duration);
+ this.rating = rating;
+ }
+
+ @Override
+ public void getInfo() {
+ System.out.println(getTitle() + " has a rating of " + rating + " over 10");
+ }
+
+ public double getRating() {
+ return rating;
+ }
+
+ public void setRating(double rating) {
+ this.rating = rating;
+ }
+}
diff --git a/src/VideoStreamingService/StreamingApplication.java b/src/VideoStreamingService/StreamingApplication.java
new file mode 100644
index 0000000..339c2ab
--- /dev/null
+++ b/src/VideoStreamingService/StreamingApplication.java
@@ -0,0 +1,12 @@
+package VideoStreamingService;
+
+public class StreamingApplication {
+ public static void main(String[] args) {
+ Video tvSerie = new TvSeries("Doctor Who", 1, 30);
+ Video movie = new Movie("Lord Of The Rings", 5, 8.5);
+
+ tvSerie.getInfo();
+ movie.getInfo();
+
+ }
+}
diff --git a/src/VideoStreamingService/TvSeries.java b/src/VideoStreamingService/TvSeries.java
new file mode 100644
index 0000000..f4a9b23
--- /dev/null
+++ b/src/VideoStreamingService/TvSeries.java
@@ -0,0 +1,25 @@
+package VideoStreamingService;
+
+public class TvSeries extends Video {
+ private int episode;
+
+
+ public TvSeries(String title, int duration, int episode) {
+ super(title, duration);
+ this.episode = episode;
+ }
+
+
+ @Override
+ public void getInfo() {
+ System.out.println(getTitle() + " has " + episode + " episodes");
+ }
+
+ public int getEpisode() {
+ return episode;
+ }
+
+ public void setEpisode(int episode) {
+ this.episode = episode;
+ }
+}
diff --git a/src/VideoStreamingService/Video.java b/src/VideoStreamingService/Video.java
new file mode 100644
index 0000000..3e22e68
--- /dev/null
+++ b/src/VideoStreamingService/Video.java
@@ -0,0 +1,31 @@
+package VideoStreamingService;
+
+public abstract class Video {
+ private String title;
+ private int duration;
+
+ public Video(String title, int duration) {
+ this.title = title;
+ this.duration = duration;
+ }
+
+ public void getInfo(){
+ System.out.println(title + " has a duration of " + duration + "h");
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public int getDuration() {
+ return duration;
+ }
+
+ public void setDuration(int duration) {
+ this.duration = duration;
+ }
+}