From 743213beb087bd55cd24d2255e81e3a4cbb747c5 Mon Sep 17 00:00:00 2001 From: luisalejosm Date: Fri, 13 Sep 2024 21:16:54 +0200 Subject: [PATCH] Finished lab --- .idea/.gitignore | 3 ++ ...ava-interfaces-and-abstract-classes-es.iml | 9 ++++ .idea/misc.xml | 6 +++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 6 +++ src/main/java/org/example/App.java | 31 +++++++++++ .../example/BigDecimalPositiveNegative.java | 13 +++++ .../java/org/example/BigDecimalRounding.java | 12 +++++ .../org/example/classes/Abstract/Car.java | 53 +++++++++++++++++++ .../org/example/classes/Abstract/Video.java | 31 +++++++++++ .../org/example/classes/IntArrayList.java | 38 +++++++++++++ .../java/org/example/classes/IntVector.java | 40 ++++++++++++++ src/main/java/org/example/classes/Movie.java | 29 ++++++++++ src/main/java/org/example/classes/Sedan.java | 10 ++++ src/main/java/org/example/classes/Truck.java | 26 +++++++++ .../java/org/example/classes/TvSeries.java | 24 +++++++++ .../org/example/classes/UtilityVehicle.java | 24 +++++++++ .../java/org/example/interfaces/IntList.java | 9 ++++ src/test/java/org/example/AppTest.java | 38 +++++++++++++ 19 files changed, 410 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/lab-java-interfaces-and-abstract-classes-es.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 src/main/java/org/example/App.java create mode 100644 src/main/java/org/example/BigDecimalPositiveNegative.java create mode 100644 src/main/java/org/example/BigDecimalRounding.java create mode 100644 src/main/java/org/example/classes/Abstract/Car.java create mode 100644 src/main/java/org/example/classes/Abstract/Video.java create mode 100644 src/main/java/org/example/classes/IntArrayList.java create mode 100644 src/main/java/org/example/classes/IntVector.java create mode 100644 src/main/java/org/example/classes/Movie.java create mode 100644 src/main/java/org/example/classes/Sedan.java create mode 100644 src/main/java/org/example/classes/Truck.java create mode 100644 src/main/java/org/example/classes/TvSeries.java create mode 100644 src/main/java/org/example/classes/UtilityVehicle.java create mode 100644 src/main/java/org/example/interfaces/IntList.java create mode 100644 src/test/java/org/example/AppTest.java 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-es.iml b/.idea/lab-java-interfaces-and-abstract-classes-es.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/lab-java-interfaces-and-abstract-classes-es.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..47478b9 --- /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..5f84b10 --- /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/main/java/org/example/App.java b/src/main/java/org/example/App.java new file mode 100644 index 0000000..ff1523f --- /dev/null +++ b/src/main/java/org/example/App.java @@ -0,0 +1,31 @@ +package org.example; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import static org.example.BigDecimalPositiveNegative.NegativePositive; +import static org.example.BigDecimalRounding.roundTonearestCent; + +public class App { + public static void main( String[] args ) { + + BigDecimalRounding bigDecimalRounding = new BigDecimalRounding(); + + BigDecimal value = new BigDecimal("4.2545"); + double roundValue = roundTonearestCent(value); + System.out.println(roundValue); + + BigDecimal positiveNumber = new BigDecimal("1.2345"); + System.out.println(BigDecimalPositiveNegative.NegativePositive(positiveNumber)); + + BigDecimal negativeNumber = new BigDecimal("-45.67"); + System.out.println(BigDecimalPositiveNegative.NegativePositive(negativeNumber)); + + + + + + + + + } +} diff --git a/src/main/java/org/example/BigDecimalPositiveNegative.java b/src/main/java/org/example/BigDecimalPositiveNegative.java new file mode 100644 index 0000000..1d4366a --- /dev/null +++ b/src/main/java/org/example/BigDecimalPositiveNegative.java @@ -0,0 +1,13 @@ +package org.example; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class BigDecimalPositiveNegative { + public static BigDecimal NegativePositive(BigDecimal value){ + BigDecimal flippedValue = value.negate(); + BigDecimal roundValue = flippedValue.setScale(1, RoundingMode.HALF_UP); + + return roundValue; + } +} diff --git a/src/main/java/org/example/BigDecimalRounding.java b/src/main/java/org/example/BigDecimalRounding.java new file mode 100644 index 0000000..90f1ca4 --- /dev/null +++ b/src/main/java/org/example/BigDecimalRounding.java @@ -0,0 +1,12 @@ +package org.example; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class BigDecimalRounding { + + public static double roundTonearestCent(BigDecimal value){ + BigDecimal rounded = value.setScale(2, RoundingMode.HALF_UP); + return rounded.doubleValue(); + } +} diff --git a/src/main/java/org/example/classes/Abstract/Car.java b/src/main/java/org/example/classes/Abstract/Car.java new file mode 100644 index 0000000..13c002c --- /dev/null +++ b/src/main/java/org/example/classes/Abstract/Car.java @@ -0,0 +1,53 @@ +package org.example.classes.Abstract; + +public abstract class Car { + + protected String vinNumber; + protected String make; + protected String model; + protected 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 getInfo(){ + return "VIN Number: " + this.vinNumber + " Make: " + this.make + " Model: " + this.model + + " Mileage: " + this.mileage + " Miles"; + } + + 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/main/java/org/example/classes/Abstract/Video.java b/src/main/java/org/example/classes/Abstract/Video.java new file mode 100644 index 0000000..f0d0050 --- /dev/null +++ b/src/main/java/org/example/classes/Abstract/Video.java @@ -0,0 +1,31 @@ +package org.example.classes.Abstract; + +public abstract class Video { + protected String title; + protected int duration; + + public Video(String title, int duration) { + this.title = title; + this.duration = duration; + } + + public String getInfo() { + return "titulo: "+ this.title + ", Duracion: " + this.duration + " minutos"; + } + + 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; + } +} diff --git a/src/main/java/org/example/classes/IntArrayList.java b/src/main/java/org/example/classes/IntArrayList.java new file mode 100644 index 0000000..c63ce01 --- /dev/null +++ b/src/main/java/org/example/classes/IntArrayList.java @@ -0,0 +1,38 @@ +package org.example.classes; + +import org.example.interfaces.IntList; + +public class IntArrayList implements IntList { + private int[] numbers; + private int size; + + public IntArrayList(){ + this.numbers = new int[10]; + this.size = 0; + } + + + @Override + public void add(int number) { + if (size == numbers.length) { + int newLength = numbers.length + numbers.length / 2; + numbers = resizeArray(numbers, newLength); + } + numbers[size++] = number; + } + + @Override + public int get(int id) { + if(id >= 0 && id <= size){ + return numbers[id]; + }else { + throw new IndexOutOfBoundsException("Indice fuera de rango: " + id); + } + } + + private int[] resizeArray(int[] original, int newLength) { + int[] newArray = new int[newLength]; + System.arraycopy(original, 0, newArray, 0, original.length); + return newArray; + } +} diff --git a/src/main/java/org/example/classes/IntVector.java b/src/main/java/org/example/classes/IntVector.java new file mode 100644 index 0000000..48c84e9 --- /dev/null +++ b/src/main/java/org/example/classes/IntVector.java @@ -0,0 +1,40 @@ +package org.example.classes; + +import org.example.interfaces.IntList; + +public class IntVector implements IntList { + private int[] numbers; + private int size; + + public IntVector(int[] numbers, int size) { + this.numbers = new int[20]; + this.size = 0; + + + } + + @Override + public void add(int number) { + if(size == numbers.length){ + int newLength = numbers.length * 2; + numbers = resizeArray(numbers, newLength); + } + numbers[size++] = number; + } + + @Override + public int get(int id) { + if(id >= 0 && id <= size){ + return numbers[id]; + }else { + throw new IndexOutOfBoundsException("Indice fuera de rango: " + id); + } + + } + + private int[] resizeArray(int[] original, int newLength) { + int[] newArray = new int[newLength]; + System.arraycopy(original, 0, newArray, 0, original.length); + return newArray; + } +} diff --git a/src/main/java/org/example/classes/Movie.java b/src/main/java/org/example/classes/Movie.java new file mode 100644 index 0000000..1c4597a --- /dev/null +++ b/src/main/java/org/example/classes/Movie.java @@ -0,0 +1,29 @@ +package org.example.classes; + +import org.example.classes.Abstract.Video; + +public class Movie extends Video { + private double rating; + + + public Movie(String title, int duration) { + super(title, duration); + } + + @Override + public String getInfo() { + return super.getInfo(); + } + + public double getRating() { + return rating; + } + + public void setRating(double rating) { + this.rating = rating; + } +} + + + + diff --git a/src/main/java/org/example/classes/Sedan.java b/src/main/java/org/example/classes/Sedan.java new file mode 100644 index 0000000..07d5052 --- /dev/null +++ b/src/main/java/org/example/classes/Sedan.java @@ -0,0 +1,10 @@ +package org.example.classes; + +import org.example.classes.Abstract.Car; + +public class Sedan extends Car { + + public Sedan(String vinNumber, String make, String model, int mileage) { + super(vinNumber, make, model, mileage); + } +} diff --git a/src/main/java/org/example/classes/Truck.java b/src/main/java/org/example/classes/Truck.java new file mode 100644 index 0000000..360e038 --- /dev/null +++ b/src/main/java/org/example/classes/Truck.java @@ -0,0 +1,26 @@ +package org.example.classes; + +import org.example.classes.Abstract.Car; + +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 String getInfo() { + return super.getInfo() + "Towing Capacity: " + towingCapacity + " Lbs"; + } + + public double getTowingCapacity() { + return towingCapacity; + } + + public void setTowingCapacity(double towingCapacity) { + this.towingCapacity = towingCapacity; + } +} + diff --git a/src/main/java/org/example/classes/TvSeries.java b/src/main/java/org/example/classes/TvSeries.java new file mode 100644 index 0000000..7674303 --- /dev/null +++ b/src/main/java/org/example/classes/TvSeries.java @@ -0,0 +1,24 @@ +package org.example.classes; + +import org.example.classes.Abstract.Video; + +public class TvSeries extends Video { + private int episodes; + + public TvSeries(String title, int duration) { + super(title, duration); + } + + @Override + public String getInfo() { + return super.getInfo(); + } + + public int getEpisodes() { + return episodes; + } + + public void setEpisodes(int episodes) { + this.episodes = episodes; + } +} diff --git a/src/main/java/org/example/classes/UtilityVehicle.java b/src/main/java/org/example/classes/UtilityVehicle.java new file mode 100644 index 0000000..e1cbe3e --- /dev/null +++ b/src/main/java/org/example/classes/UtilityVehicle.java @@ -0,0 +1,24 @@ +package org.example.classes; + +import org.example.classes.Abstract.Car; + +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 String getInfo(){ + return super.getInfo() + "Four-Wheel Drive " + ((fourWheelDrive) ? "yes" : "No"); + } + + public boolean isFourWheelDrive() { + return fourWheelDrive; + } + + public void setFourWheelDrive(boolean fourWheelDrive) { + this.fourWheelDrive = fourWheelDrive; + } +} diff --git a/src/main/java/org/example/interfaces/IntList.java b/src/main/java/org/example/interfaces/IntList.java new file mode 100644 index 0000000..11727bf --- /dev/null +++ b/src/main/java/org/example/interfaces/IntList.java @@ -0,0 +1,9 @@ +package org.example.interfaces; + +public interface IntList { + + void add( int number); + int get(int id); + +} + diff --git a/src/test/java/org/example/AppTest.java b/src/test/java/org/example/AppTest.java new file mode 100644 index 0000000..d5f435d --- /dev/null +++ b/src/test/java/org/example/AppTest.java @@ -0,0 +1,38 @@ +package org.example; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +}