From 3ed9fb517cdafd79b8d4b62ac96a0c6e004a5a43 Mon Sep 17 00:00:00 2001 From: kikesda-dev Date: Fri, 10 Apr 2026 00:01:48 +0200 Subject: [PATCH 1/2] Complete lab: BigDecimal operations, Car Inventory and Video Streaming systems --- README.md | 16 ++++++ src/IntListInterface/Application.java | 26 +++++++++ src/IntListInterface/IntArrayList.java | 38 +++++++++++++ src/IntListInterface/IntList.java | 6 +++ src/IntListInterface/IntVector.java | 39 ++++++++++++++ src/OperationsBigDecimal/Application.java | 18 +++++++ .../BigDecimalOperations.java | 17 ++++++ src/ServiceVideoStreaming/Application.java | 16 ++++++ src/ServiceVideoStreaming/Movie.java | 23 ++++++++ src/ServiceVideoStreaming/TvSeries.java | 23 ++++++++ src/ServiceVideoStreaming/Video.java | 29 ++++++++++ src/SystemInventoryCar/Application.java | 17 ++++++ src/SystemInventoryCar/Car.java | 53 +++++++++++++++++++ src/SystemInventoryCar/Sedan.java | 7 +++ src/SystemInventoryCar/Truck.java | 24 +++++++++ src/SystemInventoryCar/UtilityVehicle.java | 24 +++++++++ 16 files changed, 376 insertions(+) create mode 100644 src/IntListInterface/Application.java create mode 100644 src/IntListInterface/IntArrayList.java create mode 100644 src/IntListInterface/IntList.java create mode 100644 src/IntListInterface/IntVector.java create mode 100644 src/OperationsBigDecimal/Application.java create mode 100644 src/OperationsBigDecimal/BigDecimalOperations.java create mode 100644 src/ServiceVideoStreaming/Application.java create mode 100644 src/ServiceVideoStreaming/Movie.java create mode 100644 src/ServiceVideoStreaming/TvSeries.java create mode 100644 src/ServiceVideoStreaming/Video.java create mode 100644 src/SystemInventoryCar/Application.java create mode 100644 src/SystemInventoryCar/Car.java create mode 100644 src/SystemInventoryCar/Sedan.java create mode 100644 src/SystemInventoryCar/Truck.java create mode 100644 src/SystemInventoryCar/UtilityVehicle.java diff --git a/README.md b/README.md index ce069b6..8344fdb 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,22 @@ Once you finish the assignment, submit a URL link to your repository or your pul 4. `IntVector` should store numbers in an array with a length of 20 by default. When the `add` method is called, you must first determine if the array is full. If it is, create a new array that is double the size of the current array, move all elements over to the new array and add the new element. (For example, an array of length 10 would be increased to 20.) 5. In your `README.md`, include an example of when `IntArrayList` would be more efficient and when `IntVector` would be more efficient. +# Choosing Between IntArrayList and IntVector + +This project has two different ways to handle an array that runs out of space. Here is a simple guide on when to use each one: + +### IntArrayList (Grows by 50%) +* **Best for:** Saving memory (RAM). +* **Why:** When the array gets full, it only adds half of its current capacity. This is great because it prevents having a lot of empty, unused spaces in memory. You should use this when your list grows slowly or if your computer doesn't have a lot of memory available. + +### IntVector (Doubles its size) +* **Best for:** Speed and performance. +* **Why:** Every time an array gets full, Java has to create a brand new one and copy all the old numbers into it. This process takes time! Because `IntVector` doubles its size, it doesn't have to do this heavy task as often. You should use this when you need to add thousands of numbers very fast, even if it means wasting some empty memory spaces at the end. + + + + +
## FAQs diff --git a/src/IntListInterface/Application.java b/src/IntListInterface/Application.java new file mode 100644 index 0000000..ea2195c --- /dev/null +++ b/src/IntListInterface/Application.java @@ -0,0 +1,26 @@ +package IntListInterface; + +public class Application { + public static void main(String[] args) { + + System.out.println("--- Probando IntArrayList (Crece un 50%) ---"); + IntList miArrayList = new IntArrayList(); + + + for (int i = 0; i < 12; i++) { + miArrayList.add(i * 10); // Añadimos 0, 10, 20, 30... + } + System.out.println("Elemento en ID 11: " + miArrayList.get(11)); + + + System.out.println("\n--- Probando IntVector (Crece un 100%) ---"); + IntList miVector = new IntVector(); + + + for (int i = 0; i < 25; i++) { + miVector.add(i * 100); // Añadimos 0, 100, 200, 300... + } + System.out.println("Elemento en ID 21: " + miVector.get(21)); + + } +} diff --git a/src/IntListInterface/IntArrayList.java b/src/IntListInterface/IntArrayList.java new file mode 100644 index 0000000..ac3fada --- /dev/null +++ b/src/IntListInterface/IntArrayList.java @@ -0,0 +1,38 @@ +package IntListInterface; + +import java.util.Arrays; + +public class IntArrayList implements IntList{ + private int[] array; + private int size; + + public IntArrayList() { + this.array = new int [10]; + this.size = 0; + } + + @Override + public void add(int number) { + + if (size == array.length) { + // Calcular el nuevo tamaño: el actual + 50% (la mitad) + int newSize = array.length + (array.length / 2); + + + array = Arrays.copyOf(array, newSize); + System.out.println("IntArrayList ha crecido a tamaño: " + newSize); // Para que lo veas en consola + } + + array[size] = number; + size++; + } + + @Override + public int get(int id) { + // Devuelve el elemento en la posición 'id' + if (id >= 0 && id < size) { + return array[id]; + } + throw new IndexOutOfBoundsException("ID fuera de rango"); + } +} diff --git a/src/IntListInterface/IntList.java b/src/IntListInterface/IntList.java new file mode 100644 index 0000000..4be9486 --- /dev/null +++ b/src/IntListInterface/IntList.java @@ -0,0 +1,6 @@ +package IntListInterface; + +public interface IntList { + void add(int number); + int get(int id); +} diff --git a/src/IntListInterface/IntVector.java b/src/IntListInterface/IntVector.java new file mode 100644 index 0000000..c9e3272 --- /dev/null +++ b/src/IntListInterface/IntVector.java @@ -0,0 +1,39 @@ +package IntListInterface; + +import java.util.Arrays; + +public class IntVector implements IntList { + private int[] array; + private int size; + + + public IntVector() { + this.array = new int[20]; + this.size = 0; + } + + @Override + public void add(int number) { + + if (size == array.length) { + // Calcular el nuevo tamaño: el doble del actual + int newSize = array.length * 2; + + + array = Arrays.copyOf(array, newSize); + System.out.println("IntVector ha crecido a tamaño: " + newSize); + } + + + array[size] = number; + size++; + } + + @Override + public int get(int id) { + if (id >= 0 && id < size) { + return array[id]; + } + throw new IndexOutOfBoundsException("ID fuera de rango"); + } +} \ No newline at end of file diff --git a/src/OperationsBigDecimal/Application.java b/src/OperationsBigDecimal/Application.java new file mode 100644 index 0000000..4e0745f --- /dev/null +++ b/src/OperationsBigDecimal/Application.java @@ -0,0 +1,18 @@ +import OperationsBigDecimal.BigDecimalOperations; + +import java.math.BigDecimal; + + + public static void main(String[] args) { + + System.out.println("--- TESTS BIGDECIMAL ---"); + + BigDecimal num1 = new BigDecimal("5.2565"); + System.out.println("Test1: " + BigDecimalOperations.redondearCentesima(num1)); + + BigDecimal num2 = new BigDecimal("2.3545"); + System.out.println("Test2_negative: " + BigDecimalOperations.invertirYRedondear(num2)); + + BigDecimal num3 = new BigDecimal("-54.7678"); + System.out.println("Test2_positive: " + BigDecimalOperations.invertirYRedondear(num3)); + } diff --git a/src/OperationsBigDecimal/BigDecimalOperations.java b/src/OperationsBigDecimal/BigDecimalOperations.java new file mode 100644 index 0000000..8b08f5f --- /dev/null +++ b/src/OperationsBigDecimal/BigDecimalOperations.java @@ -0,0 +1,17 @@ +package OperationsBigDecimal; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class BigDecimalOperations { + + + public static double redondearCentesima(BigDecimal numero) { + return numero.setScale(2, RoundingMode.HALF_UP).doubleValue(); + } + + + public static BigDecimal invertirYRedondear(BigDecimal numero) { + return numero.negate().setScale(1, RoundingMode.HALF_UP); + } +} \ No newline at end of file diff --git a/src/ServiceVideoStreaming/Application.java b/src/ServiceVideoStreaming/Application.java new file mode 100644 index 0000000..1a8c6be --- /dev/null +++ b/src/ServiceVideoStreaming/Application.java @@ -0,0 +1,16 @@ +package ServiceVideoStreaming; + +public class Application { + public static void main(String[] args) { + + Movie miPeli = new Movie("La vida es bella", 116, 8.6); + + TvSeries miSerie = new TvSeries("Pluribus", 50, 9); + + System.out.println("*--- INFO MOVIE ---*"); + System.out.println(miPeli.getInfo()); + + System.out.println("\n*--- INFO SERIE ---*"); + System.out.println(miSerie.getInfo()); + } +} \ No newline at end of file diff --git a/src/ServiceVideoStreaming/Movie.java b/src/ServiceVideoStreaming/Movie.java new file mode 100644 index 0000000..206cfc3 --- /dev/null +++ b/src/ServiceVideoStreaming/Movie.java @@ -0,0 +1,23 @@ +package ServiceVideoStreaming; + +public class Movie extends Video { + private double rating; + + public Movie(String title, int duration, double rating) { + super(title, duration); + this.rating = rating; + } + + public double getRating() { + return rating; + } + + public void setRating(double rating) { + this.rating = rating; + } + + @Override + public String getInfo() { + return "Title: " + getTitle() + "\nDuration: " + getDuration() + " minutes\nRating: " + getRating(); + } +} \ No newline at end of file diff --git a/src/ServiceVideoStreaming/TvSeries.java b/src/ServiceVideoStreaming/TvSeries.java new file mode 100644 index 0000000..901f0c1 --- /dev/null +++ b/src/ServiceVideoStreaming/TvSeries.java @@ -0,0 +1,23 @@ +package ServiceVideoStreaming; + +public class TvSeries extends Video { + private int episodes; + + public TvSeries(String title, int duration, int episodes) { + super(title, duration); + this.episodes = episodes; + } + + public int getEpisodes() { + return episodes; + } + + public void setEpisodes(int episodes) { + this.episodes = episodes; + } + + @Override + public String getInfo() { + return "Title: " + getTitle() + "\nDuration: " + getDuration() + " minutes\nEpisodes: " + getEpisodes(); + } +} \ No newline at end of file diff --git a/src/ServiceVideoStreaming/Video.java b/src/ServiceVideoStreaming/Video.java new file mode 100644 index 0000000..111eea2 --- /dev/null +++ b/src/ServiceVideoStreaming/Video.java @@ -0,0 +1,29 @@ +package ServiceVideoStreaming; + +public abstract class Video { + private String title; + private int duration; + + public Video(String title, int duration) { + this.title = title; + this.duration = duration; + } + + 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; + } + + public abstract String getInfo(); +} diff --git a/src/SystemInventoryCar/Application.java b/src/SystemInventoryCar/Application.java new file mode 100644 index 0000000..0d1e312 --- /dev/null +++ b/src/SystemInventoryCar/Application.java @@ -0,0 +1,17 @@ +package SystemInventoryCar; + +public class Application { + static void main(String[] args) { + Car truck = new Truck("0007DWL", "Fiat", "Ducato", 180000, 3500.0); + Car sedan = new Sedan("1415NMB", "Opel", "Insignia", 21000); + Car utilityVehicle = new UtilityVehicle("6536MHN", "Toyota", "Hilux", 15000,true); + + + System.out.println(truck.getInfo()); + System.out.println("******"); + System.out.println(sedan.getInfo()); + System.out.println("******"); + System.out.println(utilityVehicle.getInfo()); + } +} + diff --git a/src/SystemInventoryCar/Car.java b/src/SystemInventoryCar/Car.java new file mode 100644 index 0000000..17ec630 --- /dev/null +++ b/src/SystemInventoryCar/Car.java @@ -0,0 +1,53 @@ +package SystemInventoryCar; + +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 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; + } + + public String getInfo(){ + return "Nº vin: " + vinNumber + "\nMake: " + make + "\nModel: " + model + "\nMileage: " + mileage + "KM."; + + } +} diff --git a/src/SystemInventoryCar/Sedan.java b/src/SystemInventoryCar/Sedan.java new file mode 100644 index 0000000..5c51072 --- /dev/null +++ b/src/SystemInventoryCar/Sedan.java @@ -0,0 +1,7 @@ +package SystemInventoryCar; + +public class Sedan extends Car { + public Sedan(String vinNumber, String make, String model, int mileage) { + super(vinNumber, make, model, mileage); + } +} diff --git a/src/SystemInventoryCar/Truck.java b/src/SystemInventoryCar/Truck.java new file mode 100644 index 0000000..b346878 --- /dev/null +++ b/src/SystemInventoryCar/Truck.java @@ -0,0 +1,24 @@ +package SystemInventoryCar; + +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; + } + + public double isTowingCapacity() { + return towingCapacity; + } + + public void setTowingCapacity(double towingCapacity){ + this.towingCapacity = towingCapacity; + } + + @Override + + public String getInfo (){ + return ("Nº vin: " + getVinNumber() + "\nMake: " + getMake() + "\nModel: " + getModel() + "\nMileage: " + getMileage() + "KM. " + "\nTowing capacity: " + towingCapacity + "Kg."); + } +} diff --git a/src/SystemInventoryCar/UtilityVehicle.java b/src/SystemInventoryCar/UtilityVehicle.java new file mode 100644 index 0000000..1e4d5af --- /dev/null +++ b/src/SystemInventoryCar/UtilityVehicle.java @@ -0,0 +1,24 @@ +package SystemInventoryCar; + +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 boolean isFourWheelDrive() { + return fourWheelDrive; + } + + public void setFourWheelDrive(boolean fourWheelDrive) { + this.fourWheelDrive = fourWheelDrive; + } + + @Override + + public String getInfo (){ + return ("Nº vin: " + getVinNumber() + "\nMake: " + getMake() + "\nModel: " + getModel() + "\nMileage: " + getMileage() + "KM." + "\nTraction: " + fourWheelDrive); + } +} From 6236c57430cad29dfc686217527149a024814451 Mon Sep 17 00:00:00 2001 From: kikesda-dev Date: Fri, 10 Apr 2026 00:09:24 +0200 Subject: [PATCH 2/2] lab week 3 completado --- .idea/.gitignore | 3 +++ .../lab-java-interfaces-and-abstract-classes.iml | 11 +++++++++++ .idea/markdown.xml | 6 ++++++ .idea/misc.xml | 6 ++++++ .idea/modules.xml | 8 ++++++++ .idea/vcs.xml | 6 ++++++ .../Application.class | Bin 0 -> 1624 bytes .../IntListInterface/Application.class | Bin 0 -> 1591 bytes .../IntListInterface/IntArrayList.class | Bin 0 -> 1491 bytes .../IntListInterface/IntList.class | Bin 0 -> 154 bytes .../IntListInterface/IntVector.class | Bin 0 -> 1473 bytes .../BigDecimalOperations.class | Bin 0 -> 866 bytes .../ServiceVideoStreaming/Application.class | Bin 0 -> 1033 bytes .../ServiceVideoStreaming/Movie.class | Bin 0 -> 1288 bytes .../ServiceVideoStreaming/TvSeries.class | Bin 0 -> 1295 bytes .../ServiceVideoStreaming/Video.class | Bin 0 -> 833 bytes .../SystemInventoryCar/Application.class | Bin 0 -> 1286 bytes .../SystemInventoryCar/Car.class | Bin 0 -> 1866 bytes .../SystemInventoryCar/Sedan.class | Bin 0 -> 450 bytes .../SystemInventoryCar/Truck.class | Bin 0 -> 1518 bytes .../SystemInventoryCar/UtilityVehicle.class | Bin 0 -> 1534 bytes 21 files changed, 40 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/lab-java-interfaces-and-abstract-classes.iml create mode 100644 .idea/markdown.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/Application.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/IntListInterface/Application.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/IntListInterface/IntArrayList.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/IntListInterface/IntList.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/IntListInterface/IntVector.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/OperationsBigDecimal/BigDecimalOperations.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/ServiceVideoStreaming/Application.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/ServiceVideoStreaming/Movie.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/ServiceVideoStreaming/TvSeries.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/ServiceVideoStreaming/Video.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Application.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Car.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Sedan.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Truck.class create mode 100644 out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/UtilityVehicle.class diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml 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..c90834f --- /dev/null +++ b/.idea/lab-java-interfaces-and-abstract-classes.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/markdown.xml b/.idea/markdown.xml new file mode 100644 index 0000000..f6d2542 --- /dev/null +++ b/.idea/markdown.xml @@ -0,0 +1,6 @@ + + + + + \ 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/out/production/lab-java-interfaces-and-abstract-classes/Application.class b/out/production/lab-java-interfaces-and-abstract-classes/Application.class new file mode 100644 index 0000000000000000000000000000000000000000..7adcf9eca9211cabdd7e0e23d9c3986fab81aa55 GIT binary patch literal 1624 zcmaJ?;Z_qz6#hmi8`ec&0hQL;Xwecdi9`a{SS=(VXaH-{SoBBFkW9nKW;SPc!a2N2 zU!(m|IrJPKpbyp4JG-F-NSkvqv-5rT-udpGJG+1Veewyw8s6Kuf&mMI4nD&W!`KIY z$g>_-&Fs$J2T|7yLrurCLd@ZoVk36*sq5%1HukjA7h@>tF(t3=@4KFj#F9&r`I; zY`jM#mNt;8SxD6^TxXb!Tw7f4XIEvjB4Z$#4mP%}QT6-d>@;#3bx9r!sSL1;+ z>n=E`_a&8dq}&suKtWnuQmpHa$9iOBOotM*>ias>0dH>!z3(@|1YS}Zsv^`2Pm(NwGQ+r8<$hM8Nkupm5xo5` z-1bA+g-3_*+QtufW1(V-UuBqyE<$ues8jp{k&RCvZoPG0*M4xs@N4g}b`4`e8(cL! z5zdr-|De+@TrOA-a?Y`O)E0frdu!UKf4U)x-190@3py-kQz;P?JsyT4wD6YU-ld%S zNwu)caQpvF=}N_U;USi(U2hXt5Ixsxvd(5h7AMXJP3Qtiu}Ojx3jM$k8cb4LY=~rJR8@Vrv2UFv>s@Pi z9hCR}h(7nF&+S7IRO%1tf9W5nM9W!w1*W#Jd?yX5tOU; z9XWpSAaJ~>9tBEvN*SCL*x20Mv=0LRPKNO&*#4zC0u9-2#5a)?PSoVzu7Tn0#hC5ZMTr|Xv`!D#>;e^0eOMxdL*02 zHQ7y4HtK#aXsUfDCS?tAzZSO_MfZF^3Zp=FYbrYOTVV#f0&{z=>L@SrZROdO`}X$s zEn8$z9@SirH8T^~Gq8`Zbv%gsfYessJub&P@sCw;(4vFZ*q8C=Jr($AxQP?PK_Ub1r&9b&v1d7#xL)I}$X#$hbM*zpuYGlqYpez|Y;iRQ z2H3`R-X`%WZcsw7;QL0Jvgf}+&rbi2nLm*G_5~KI+MQ*~{28l_x@ENAL zPH>Rw9Bu{{IZ7{a&r@Eaq>OWTh&j|blD_BO!~#w@WMX^ag$zBs3j+jn&F}IrhFdh*U0Kv68|9g8mq~PIo+W)g&o}GewL^E#D3LZ@8KKD LjJ~fL9%JbZNWF<> literal 0 HcmV?d00001 diff --git a/out/production/lab-java-interfaces-and-abstract-classes/IntListInterface/IntArrayList.class b/out/production/lab-java-interfaces-and-abstract-classes/IntListInterface/IntArrayList.class new file mode 100644 index 0000000000000000000000000000000000000000..656d1b611b4943c2732c2997969e09b1b1917006 GIT binary patch literal 1491 zcmaJ>-%}e^6#i}!SlBKFf3YmSi`xdsB;l zi8H=9KKSHI9c!KH)Cb@Eqa44xNogDyANJh4XV3Y*@0@e*{{7GM7XUV~Z6kxMg`9&S z3=2#=l#gV&CBuVqeea?2wZQOt5C-~|Kz6mbGl~(6TCg3QgCnrug}N3bnv06}rLW4| z-Hu~Kxbi z1+3Lw&np_73%F=u&Orh5FH=&%jpIbCHg!f_Qcu^?Qi7=bWgLXMp<^Z6l{~9nbZ`l- zz-(I{scIDZQhycbL+%nSLrv1@Rj=4f?*VHf98_#v#uW?84z6NFVCoEf%Ip}nR%k#@ zLlk!`tO{It)nzYis>k)NuJ3O|-LRQ#KK4~d2T?eJlE9>Q$KCI$Sh`K+#+*uI;~L&D z!&3?YZSSf0p4@BEldna-Z0*Q6Fz|qq*j?Fda)Rv84yz5-*Nt?R!(mDxFxJr0KiZa^K5+IxaT+Gx<2eYJYd4~9?5nN7 zh?ykc3H+Mr3un3!MLN;3>})H27&Vg-d?K(s80j8L*N>GSG$U8KTDIk1Pof*H7$3%l zjVkU~*fe9_V&1D}2jQdWNR@dOIM3eXx1_J5m`C*6!EyBid-Qi@*lej}xfVr7-A?87 zR0ll&NxXO5QD=nj4#f8^S!M9F^&zUV)oKJB5%!zAt7^f<&YU$5gGt^)7ky*}!XWXaO^Y3Ub?@v&Zfk7Bx}W~lYx zX36a4f5RmCe#Y$lb1VSAV#&Dqj1}so`&@Dl`ckqmQWjy+8Ua(7!wgn1OZqvi^AECx z`Baum>N);d-e^`7R;6r-ZhU?sZgd2U$dvuxbg~E5p7mS1-U>h}swV!^+ zwfp(vGraz1nrW1rPYYb4lFQVxoHEb!08aQ8P#NT#V#+#GGq{OcTt~=!o6pA-2KH8P K8lRzti~j;NPh5Ba literal 0 HcmV?d00001 diff --git a/out/production/lab-java-interfaces-and-abstract-classes/IntListInterface/IntList.class b/out/production/lab-java-interfaces-and-abstract-classes/IntListInterface/IntList.class new file mode 100644 index 0000000000000000000000000000000000000000..85a0482704bf29585f286a29bf06ae1235456716 GIT binary patch literal 154 zcmX^0Z`VEs1_oCKZgvJHMg|Gbyb_U31e$6g_J@QBdW4I0*slqzVZTn-D{xw8cP4OhVK;b!W`D!{ntKX%macT934* zq`#yyePR0C7doYMXoo)Ztv{;MyOIHSl3_I3U0vOK&bjyQ?mz#&dJSL`J0>#78pv4~ z!6?JzWB!C!10Eh!n|qIis~ARa`=PJyGGtfE?Nb=TDFdd34`4Bzb3)bdV?~pQ_PHyn zv}#kBj2K3E6!9a5%&w!u#w|=>k|7uS-wOujm?&V{z>I}ioPI;ySAI}k*MTunyRvuG z+-ERWb{(gzan9hZfpZp$D7^_u)V7XdCAuV1_DS<>Bgw;;)vqHzR4o+=-mMiV0ODP&=XIaebwCGkp0k$H=nwqr+gWXp~5ib+_(4pBI33u?1)+-Ovl(u9Y-$G)(Xr@-4;P!yVompk@z*Rzm&`Z33TS&6ey(uGsRm zl5rwSvDb7(sGA#7s#rz5wA|WEZ?XYIod-e7SAvRdIbkTGdcfmY#0IE>7mnq0l2ij$UjeF zuF_aQjz*J4jbvd8d0ZolMHu?;N4QQi!wq~qKz&9mS+cEHenp;M!r(~r9tkUu`+#0CeBa?QYFaC%^QA_vRC z#O1$|NUdZ%N$otPzl3SJHZ=3;6yPo2JZi&y(-d->+%mX>yEKmx^E$ns;{kn{wA#iO HXyELBO!ifn literal 0 HcmV?d00001 diff --git a/out/production/lab-java-interfaces-and-abstract-classes/OperationsBigDecimal/BigDecimalOperations.class b/out/production/lab-java-interfaces-and-abstract-classes/OperationsBigDecimal/BigDecimalOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..15ba8a41810814eaa4d7e8c5f177815cfdad1b2b GIT binary patch literal 866 zcmZ{iU2oGc6o%ikw#%9YI>t6yzP~n-A}!*En;|4vnLr8*ZBS`fliOIGr_@1dvcEOp zqDWlu1Nc#h;|$~qQePZ@oY&9sYy0P~?>_*%Lf6FtY7Xii8dxN(oQg9MCPI(G{lTdm z=7hy(N~`=iq2>quCYI22;CfhwN7yLkW09YP2Wg>WrAKemSQ4DqFQUEUkM9ZXs9Lk* z;xbweRydO|lMAvEv z*X7~Y>8-&spkY>V#TXVc_K1yO2%}hjr#NmfERE+l=u=#Zu8stQUUPfCZ1lPYOw1|N z`72P%Sto*EdYy?L=X@9fBXzbk{pA-{o8uAS3@wc~oa^lJ+52Qy*Cf|B3!4R`$N9_074dEZ~hD(vS z?KQdUa9=9_PjE8$B)beN_O-}Gf^Kt34D*=}m-S~I%5(pSz!GE9G;eKL6Ru=PUBNY& zGh)%&axe@G))ke1r-h1*y4UlYVo$0L&HpZ9L;WzMu}%*`tqCyo6lmWduRxZOoywho zeI29=w5v1_!b94l!vZ|QCV3HT;W0(j;V)DdBKzhX+F?9m21!hxVa7g(c^HqIn`Yz; z$;vk@#8anOCi~zNtHZB&c4*g6LBZt_^Ab&p;*UW`3I*>2N76g|@4=+1Kogj&Nv~r!WZiB` zx28O49ox=+A#??_P1~{6mcUfDdT4d5Ld#;1Fk*_8Ts?&(QaTJ1!!Z9zw&QkeNixq; z+$SK)2KSAa7{!=Ca$l-lTeXOo$maTw39xAsS1}d4cI;>qwSdr(vnLwmP8YE6Y*7Kz2}Rz#yeGX~YcD7%U3D8)t8RIA;75ybbzt-4h3a7OL%oUu3DuP)-7gAdYo6;MDy-eV zs6C!7=a`dDIV#QvSHP&bZLcA>?I0r~q+buNQ()}5>ndM)*2#`k2X50(VqIV*ypN5H zF#d{7JHy6kE9o0uiMcYW;jV#uxUb_uAoD|krHd}HosN4Xqh{$Uzil;?>zxXG>=iNs zb`yAMIn9>zm#VIN)IKTpSKhO7Y2)tci5vib*Mon(cPJaG*n71RMagQlYPOOT-K;o{ z^hzzu_oc7niNJDSO@mU^@l0Ux|4_bxZe6&+wjE-73eJ2wwBocASm3-!?>%Dl05iWf z{{teQ`v(0B{UKcEJi;iTLnF&DQpnKDlYw|L-{d#2ZefXRfwhd4@U-xmaxXg>Gto%} zMgmkK{}uWt8r>tbXlo`U2mukbz$&uQ<}H#1sc8AtO9=))8DNYhjEBihg}!#4oE8?% zKLK(?bxYn1B>>X-@3_J-&M|q0S>Q9ddb64gIn6M`bi^5>00C+ZxA{#nR^YgUNAwI@ KkMR^6nEeAGDI(4Q literal 0 HcmV?d00001 diff --git a/out/production/lab-java-interfaces-and-abstract-classes/ServiceVideoStreaming/TvSeries.class b/out/production/lab-java-interfaces-and-abstract-classes/ServiceVideoStreaming/TvSeries.class new file mode 100644 index 0000000000000000000000000000000000000000..ef341758cacd84446aedd6b8f36248b5fa6a48d3 GIT binary patch literal 1295 zcmaJ>*=`dt6g_U1X(!VybfI)1K!GHMhJ8!b2SO_%1$aml9^l1IOzUyGTcRo3 zLe;e|__6f%OW~3sy(K-Vw;2}lwL{+HC707C!3a~X7Mc?n$AksjK?V-P+Gw&ykNi>u z4CA6B1JyPrtJ-vU%E2^dXk%aKhSaWLn9CQ2V;OAL!3E4QWC;7B>vJuY$B@VuLZ$@= zi~Zf5I7*gEUUF~=%M6Rh{76)k*W&uE)CXh*ntPfu$&ae7IwA=o84YbRBr8-F!*or0 z;&u0UPxuYKXUfUeRExV!?n|?dok@KlDRQoMzF=jBl#W!%4r@ZHwg1YH354#KP1)q> zau_U9s_K1E40c_0{g&93CZ);#g>0HTWte%cln%7dJFkR3Q0-tGw@8-oKAz>6-4~ne z9Cb%mi@@&3BHwfxn>I?gW8tn5`yRvkzh;qMPaTQ4XCnP~c}pw*gyG|$oG~y;;U)Ll zt_ap^N*#4O<>BH7JZBCzPC8-){M`Wl&EBDC>GI$O#}pOrx^<}q>F!iLPxuv=2Z0DI zJY={&RMV(bEj*@oa6XjYRa6(QP+N~tlQNp=1(B5`JB1aRS84Sg3Gx6=abx8NSaJ0m ztS_`4!y3&~v BD1iU~ literal 0 HcmV?d00001 diff --git a/out/production/lab-java-interfaces-and-abstract-classes/ServiceVideoStreaming/Video.class b/out/production/lab-java-interfaces-and-abstract-classes/ServiceVideoStreaming/Video.class new file mode 100644 index 0000000000000000000000000000000000000000..85e09105aa67b4188ec27819d6078b711b9bdf58 GIT binary patch literal 833 zcmaJ{V0m5M6$ zzz^U@q0X+Y1Qd!a?e2S?H*enTK0N-t2XKm`01lRXxFJgL1Z!8(ZPb}W@nz?Hc%?>} z!276Uot+4lnytYKma*a^2vJ5T*zK$IR*%#`k5$soQWafmmfBEI%5*kSf?99RN)Qpp zhG#WI6>Ea!@idJxox}p^3L4Etc(*kWxSx_S*{VGqt1r{*p-L~JVa}h7qRAjiwTX+Q zn|;?eg8kkr5|7#ZQe_vp%*|$Nu`>}jGerFbX+~L@B%fzP&?k;jX4yRFHth&Lf!+99 zA_)4)G##lkZ3YOeVIPc3?jfCVcsC9|dTdX$iMt0{igm6vMqkavaj&-jK-%x`;J5eg zQ2AvGHn`T{a^=;UE919{0GrGlHq)$ literal 0 HcmV?d00001 diff --git a/out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Application.class b/out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Application.class new file mode 100644 index 0000000000000000000000000000000000000000..5cff2b6d14856580cacbca9d52b4e5625129d830 GIT binary patch literal 1286 zcmbtU+fEZv6kVsc8HRG30^$veBDUqyB2bi~a;ZqQErenfd^(h|9GuQH(-~s_#DDNf zA7~jU|_LX$^bR zDrtw@kTF8EX6I)YiiI^9SBTbDUDIV;V~}%3LsSjH6%1k2rE-H|>0hb1OvV_-JPP#O z7P_#TW$j2*bWO%BqLf~kOBXhaGHz3ScFm?~a~XFSf}28j-YSS9?lMaJM{)M!GliO5$n^;SJ=m<)>$;#; z6DHvV*3CnWp)W5Ct?1MaG;5b1=wwmzW`*lzZV7k)(-^RiM1vuk|1)fcaBEx;{BZ2m z#Z=>E@^h<7ND&V=$!oipg&Ni?4i%H|gAKQF8G4;_ZNs3HOvkEd8^TSZ|F>Lc+=^lh zkLW_XpAUqB5RI#}OVZ3}4klV)AKLCU8eKQw$2yJS&JW1avjE80z!S2#hriJ-K(lrR zX;1A^yVV}GZxH=0s^S@j_S8%2W%cU7j@-ia!Wp7_>P>ZAofuep7ib|?{D{fPQ_P-X zkyh%1&OCL>pKKA~%693K~R&XpYlEk*4Qj1>M*rsypbxK6-J8zBc(phamZKbS6Un br+7y6$0>n4t$cJki2|+sWG&J^K5YE}Thu$j literal 0 HcmV?d00001 diff --git a/out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Car.class b/out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Car.class new file mode 100644 index 0000000000000000000000000000000000000000..7a02d716f11c0edf95712d01c1aa5f597c7f78f6 GIT binary patch literal 1866 zcmbW1OH&g;5Xb)$l57YYhzW$3@)98lkSO8{5G_+urU-a|iU&_i7{kJ5m&z_war0yN zAv|c6lvNx&c=SVAcJD4EgvGKv%uG*jPxo)8yZ6`c^B(|S<3$`HbSVg{h#)GEJkUYXV)_T(ui9bSsFf=z%Jb**>)$*(jSQ(sZomX-R7qX$W+m z=;qdOV^@-#sL|~AQmMpWTIq!65pCsGSOve`3$X*ZnFPd`hx|P84e|xLa{YrElfxe1v zO7BT_v|WQVsftz8jH=eudG9O3&c06kLzUo{T@g_0(y6vyw?7+*tlC$s1_Ex7BRGYe zZPFu>LFis3b_|OGxvih)6I3+I6C%zS?#hu}!3#p-#%7@}ilsOn;jw}z zTnA4DrdtK3nGxrQ>PggAK@c3xudJVK`t{mJs zJ(2$xj69IbIsA7Yf|+qC;gb`e@f^4}ryb7xTU^Jhrp7tWB( z4}{N<{_38+!#0T09H$sP=q8`NNFYt~Fhv@pFH4>$jAMd!Y|kXZm6(P3M)*g7E>~in zFnyoIluuKnmF*+>Z&1FF5CR8|y2_Lr#B&(&g9zNkw10SwtT{x~y+#Y0|AU}V5e&K> zGM?2XX4J=|!~}vQIzdJPL1uzM5}hDp1TuaD2)`1)z-%B$vJ+$~5F{H6lI#STA&}V{ zKsZSZl0%+mE|m7vq(76QJvI42kU7lzhg+!`y;4zLY6=8Wya9x3gh3WAU*x4*Gn7!S v5gG{^NgC;M$}c*fXt9kflbKx8 literal 0 HcmV?d00001 diff --git a/out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Sedan.class b/out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Sedan.class new file mode 100644 index 0000000000000000000000000000000000000000..31efbcdd33c61259ef1259fb37120d307c02ccd6 GIT binary patch literal 450 zcma)2O-sW-6r7jl!^UcBwMD#n^E($$t#~O4f#4<5v)guwtH}noX`nyLlijr$OcL6O((-OmOr*INlbn@qQcgua z7DieAExOgCniCF^zYK?jX07zv$(sC_n_>jI4i%9Y&26>S7lz*Y}t?=zRenv1LI3 literal 0 HcmV?d00001 diff --git a/out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Truck.class b/out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/Truck.class new file mode 100644 index 0000000000000000000000000000000000000000..b7bed04cd0a577773fa2a08f6ae3ea872bf02e68 GIT binary patch literal 1518 zcmbVMNpliG6#hCaLvRcP6SAlgH8DUEa9=`$^r@aT`Sd_6Oo4O3PQ-SfRSZ~6MY*ZuR?{&xV+@idAd1T+M7gb-#(R{M?=?XuMq zmbAP5BJbvDF@#qP%aE%K%jwE4@A16Jt!BO|yN1;){Ew!bsShK9VGU6o=b$r84#-vO z?loErBhr3Hfs4Gu8;0yNuu_zqM|8vxXV9BM)(vZOue~LR+gLhtl7X^M=(wQlHL~B} zEunPdI+98kQ965Dm`XXRV+zv@QKd9Y!JC31kj|77RHaKgE@OsaqD>)+w$9C1hoWxZ%`}b(1PvVij8pUq#CW z9xs9~H*%?{mps+*r%b7vxmXzYqj-Ra8Xl>}FEh*@47_3W?3VE7-kXJW-cUD%;r-#Z z`Gy{~7u?!5g)>{R?bcrB^y_lOvDWX10p@QGHR09Pu4u@@;X(346uD_u4JoLDdfBo> zw`g+55srq(409*WG>EE(Ck!*Eo6_6hoeNj#CJoVrVYJf?Cln+c!WG(6BuT;=edF1M z#ijA!H?Ztv=nJ$@q#Gh{U<3i$HK>;&M*B6ARuQH>j_a7EuR?RUK@k<2C!{jQktU>k zQtd(ad`x)8?0$$p%tJK|ex@X|0V^~7YcV49gDn&Rue}uGp zLRGpDM%@TWR}TLr9CnG&8-_etd8H`Pp%jtn>{pzpHA-uY)`TLqkBh*^W9*WL*iHMf c1Gwp0-NJ49MkwMvT6a(&DN1OCinoTT-+oeO@&Et; literal 0 HcmV?d00001 diff --git a/out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/UtilityVehicle.class b/out/production/lab-java-interfaces-and-abstract-classes/SystemInventoryCar/UtilityVehicle.class new file mode 100644 index 0000000000000000000000000000000000000000..ea1eea4703f5a5c9fcd237ef3be72a0fe775c285 GIT binary patch literal 1534 zcmbVMOH&g;5dMZdHpCS|fFPh41T+bc_`(N4d;}>|20R2qRXiu zR+C%Oc3OGE$ zwlXN|f^INX{AX2i486_cq{q*uoMNjKF@zc_v6T15pIov6Lrl19r^-qxt}qO^T%JA& zrYdQ=jH+D0+O?@PC9=kh7R;Gsx1aEJK;k&_0mhhYfp5-3zDtfOa^Bc`T47N!S%a zt6<^G_zBYLOI6`Q81OtKeAHjUVULIkoF$a+Yt@Ov9|93ZhNRZxJzq