From 37c588fe7c37b45682df3fce7544b282749c68d2 Mon Sep 17 00:00:00 2001 From: shaig-mahmudov Date: Mon, 23 Feb 2026 05:41:33 -0800 Subject: [PATCH 1/2] add: complete lab --- .../.gitignore | 39 ++++++++++++++++ .../.idea/.gitignore | 10 +++++ .../.idea/encodings.xml | 7 +++ .../.idea/misc.xml | 14 ++++++ .../.idea/vcs.xml | 6 +++ .../pom.xml | 17 +++++++ .../org/example/BigDecimalOperations.java | 18 ++++++++ .../src/main/java/org/example/Car.java | 45 +++++++++++++++++++ .../main/java/org/example/IntArrayList.java | 27 +++++++++++ .../src/main/java/org/example/IntList.java | 6 +++ .../src/main/java/org/example/Main.java | 30 +++++++++++++ .../src/main/java/org/example/Movie.java | 15 +++++++ .../src/main/java/org/example/Sedan.java | 7 +++ .../src/main/java/org/example/Truck.java | 15 +++++++ .../src/main/java/org/example/TvSeries.java | 15 +++++++ .../main/java/org/example/UtilityVehicle.java | 15 +++++++ .../src/main/java/org/example/VectorList.java | 13 ++++++ .../src/main/java/org/example/Video.java | 15 +++++++ 18 files changed, 314 insertions(+) create mode 100644 lab-java-interfaces-and-abstract-classes/.gitignore create mode 100644 lab-java-interfaces-and-abstract-classes/.idea/.gitignore create mode 100644 lab-java-interfaces-and-abstract-classes/.idea/encodings.xml create mode 100644 lab-java-interfaces-and-abstract-classes/.idea/misc.xml create mode 100644 lab-java-interfaces-and-abstract-classes/.idea/vcs.xml create mode 100644 lab-java-interfaces-and-abstract-classes/pom.xml create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/BigDecimalOperations.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Car.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntArrayList.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntList.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Main.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Movie.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Sedan.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Truck.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/TvSeries.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/UtilityVehicle.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/VectorList.java create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Video.java diff --git a/lab-java-interfaces-and-abstract-classes/.gitignore b/lab-java-interfaces-and-abstract-classes/.gitignore new file mode 100644 index 0000000..480bdf5 --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/.gitignore @@ -0,0 +1,39 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ +.kotlin + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/lab-java-interfaces-and-abstract-classes/.idea/.gitignore b/lab-java-interfaces-and-abstract-classes/.idea/.gitignore new file mode 100644 index 0000000..ab1f416 --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/.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/lab-java-interfaces-and-abstract-classes/.idea/encodings.xml b/lab-java-interfaces-and-abstract-classes/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/lab-java-interfaces-and-abstract-classes/.idea/misc.xml b/lab-java-interfaces-and-abstract-classes/.idea/misc.xml new file mode 100644 index 0000000..fdc35ea --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/lab-java-interfaces-and-abstract-classes/.idea/vcs.xml b/lab-java-interfaces-and-abstract-classes/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lab-java-interfaces-and-abstract-classes/pom.xml b/lab-java-interfaces-and-abstract-classes/pom.xml new file mode 100644 index 0000000..8b4f86a --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/pom.xml @@ -0,0 +1,17 @@ + + + 4.0.0 + + org.example + lab-java-interfaces-and-abstract-classes + 1.0-SNAPSHOT + + + 21 + 21 + UTF-8 + + + \ No newline at end of file diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/BigDecimalOperations.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/BigDecimalOperations.java new file mode 100644 index 0000000..2f3c6d5 --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/BigDecimalOperations.java @@ -0,0 +1,18 @@ +package org.example; +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class BigDecimalOperations { + public double roundedToTheNearestHundredth(BigDecimal number){ + BigDecimal roundedNumber = number.setScale(2, RoundingMode.HALF_UP); + double doubleValue = roundedNumber.doubleValue(); + return doubleValue; + } + public double reverseTheSignAndRoundNearestTenth(BigDecimal number){ + BigDecimal roundedNumber = number.setScale(1, RoundingMode.HALF_UP); + double doubleValue = -roundedNumber.doubleValue(); + return doubleValue; + } + + +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Car.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Car.java new file mode 100644 index 0000000..0b06212 --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Car.java @@ -0,0 +1,45 @@ +package org.example; + +public abstract class Car { + protected String vinNumber; + protected String make; + protected String model; + protected int milage; + + public Car(String vinNumber, String make, String model, int milage) { + this.vinNumber = vinNumber; + this.make = make; + this.model = model; + this.milage = milage; + } + + public String getInfo(){ + return "vinNumber: " + vinNumber + "\nmake: " + make + "\nmodel: " + model + "\nmilage: " + milage; + } + + public String getVinNumber(){ + return vinNumber; + } + public String getMake(){ + return make; + } + public String getModel(){ + return model; + } + public int getMilage(){ + return milage; + } + + public void setVinNumber(String vinNumber){ + this.vinNumber = vinNumber; + } + public void setMake(String make){ + this.make = make; + } + public void setModel(String model){ + this.model = model; + } + public void setMilage(int milage){ + this.milage = milage; + } +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntArrayList.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntArrayList.java new file mode 100644 index 0000000..19f1d6e --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntArrayList.java @@ -0,0 +1,27 @@ +package org.example; + +import java.sql.Array; +import java.util.ArrayList; + +public class IntArrayList implements IntList{ + int[] numbers = new int[10]; + int size = 0; + + @Override + public void add(int number) { + if (size < numbers.length){ + numbers[size] = number; + size++; + } else { + int newSize = size + (size/2); + int[] newNumbers = new int[newSize]; + newNumbers[newSize] = number; + newSize++; + } + } + + @Override + public int get(int id) { + return 0; + } +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntList.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntList.java new file mode 100644 index 0000000..b79d2d0 --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntList.java @@ -0,0 +1,6 @@ +package org.example; + +public interface IntList { + void add(int number); + int get(int id); +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Main.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Main.java new file mode 100644 index 0000000..4aec2ce --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Main.java @@ -0,0 +1,30 @@ +package org.example; +import java.math.BigDecimal; + +public class Main { + public static void main(String[] args) { + BigDecimalOperations operations = new BigDecimalOperations(); + BigDecimal number = new BigDecimal(34.4564); + double result1 = operations.roundedToTheNearestHundredth(number); + double result2 = operations.reverseTheSignAndRoundNearestTenth(number); + + System.out.println("Rounded to the nearest hundredth: " + result1 + "\nReverse the sign and rounded to nearest tenth: " + result2); + + Truck truck = new Truck("VIN123321123213231", "Truck make", "Truck model", 323232,500); + Sedan sedan = new Sedan("VIN123346656476761", "Sedan make", "Sedan model", 23122); + UtilityVehicle utilityVehicle = new UtilityVehicle("VIN1324343346656476761", "Utility Vehicle make", "Utility Vehicle model", 2000, true); + + System.out.println("\n" + truck.getInfo()); + System.out.println("\n" + sedan.getInfo()); + System.out.println("\n" + utilityVehicle.getInfo()); + + TvSeries tvSeries = new TvSeries("Game of Thrones", 54, 64 ); + Movie movie = new Movie("Lord of the Rings",378,4.94); + + System.out.println("\n" + tvSeries.getInfo()); + System.out.println("\n" + movie.getInfo()); + + + + } +} \ No newline at end of file diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Movie.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Movie.java new file mode 100644 index 0000000..fe7a48d --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Movie.java @@ -0,0 +1,15 @@ +package org.example; + +public class Movie extends Video { + private double rating; + + public Movie(String title, int duration, double rating){ + super(title, duration); + this.rating = rating; + } + + @Override + public String getInfo(){ + return "\nTitle: " + title + "\nDuration: " + duration + "\nRating: " + rating; + } +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Sedan.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Sedan.java new file mode 100644 index 0000000..9a2d522 --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Sedan.java @@ -0,0 +1,7 @@ +package org.example; + +public class Sedan extends Car { + public Sedan(String vinNumber, String make, String model, int milage){ + super(vinNumber, make, model, milage); + } +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Truck.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Truck.java new file mode 100644 index 0000000..677b3fb --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Truck.java @@ -0,0 +1,15 @@ +package org.example; + +public class Truck extends Car { + private double towingCapacity; + + public Truck(String vinNumber, String make, String model, int milage, double towingCapacity){ + super(vinNumber, make, model, milage); + this.towingCapacity = towingCapacity; + } + + @Override + public String getInfo(){ + return "vinNumber: " + vinNumber + "\nmake: " + make + "\nmodel: " + model + "\nmilage: " + milage + "\ntowing capacity: " + towingCapacity; + } +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/TvSeries.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/TvSeries.java new file mode 100644 index 0000000..a6b359c --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/TvSeries.java @@ -0,0 +1,15 @@ +package org.example; + +public class TvSeries extends Video { + private int episodes; + + public TvSeries(String title, int duration, int episodes){ + super(title, duration); + this.episodes = episodes; + } + + @Override + public String getInfo(){ + return "\nTitle: " + title + "\nDuration: " + duration + "\nEpisodes: " + episodes; + } +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/UtilityVehicle.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/UtilityVehicle.java new file mode 100644 index 0000000..8a0e8f1 --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/UtilityVehicle.java @@ -0,0 +1,15 @@ +package org.example; + +public class UtilityVehicle extends Car { + private boolean fourWheelDrive; + + public UtilityVehicle(String vinNumber, String make, String model, int milage, boolean fourWheelDrive){ + super(vinNumber, make, model, milage); + this.fourWheelDrive = fourWheelDrive; + } + + @Override + public String getInfo(){ + return "vinNumber: " + vinNumber + "\nmake: " + make + "\nmodel: " + model + "\nmilage: " + milage + "\nfour wheel drive: " + fourWheelDrive; + } +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/VectorList.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/VectorList.java new file mode 100644 index 0000000..4b6bb43 --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/VectorList.java @@ -0,0 +1,13 @@ +package org.example; + +public class VectorList implements IntList{ + @Override + public void add(int number) { + + } + + @Override + public int get(int id) { + return 0; + } +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Video.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Video.java new file mode 100644 index 0000000..a89dafa --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/Video.java @@ -0,0 +1,15 @@ +package org.example; + +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 "\nTitle" + title + "\nDuration" + duration; + } +} From 03fc98bcd8a07d869d4d7fb66c75ac48ad02e345 Mon Sep 17 00:00:00 2001 From: dev-shaig Date: Tue, 24 Feb 2026 12:27:50 +0400 Subject: [PATCH 2/2] fixed the last task --- .idea/.gitignore | 10 ++++++ ...b-java-interfaces-and-abstract-classes.iml | 9 +++++ .idea/misc.xml | 6 ++++ .idea/modules.xml | 8 +++++ .idea/vcs.xml | 6 ++++ .../main/java/org/example/IntArrayList.java | 34 ++++++++++++------ .../src/main/java/org/example/IntVector.java | 36 +++++++++++++++++++ .../src/main/java/org/example/VectorList.java | 13 ------- 8 files changed, 98 insertions(+), 24 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/lab-java-interfaces-and-abstract-classes.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntVector.java delete mode 100644 lab-java-interfaces-and-abstract-classes/src/main/java/org/example/VectorList.java 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..20f033c --- /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/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntArrayList.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntArrayList.java index 19f1d6e..b130758 100644 --- a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntArrayList.java +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntArrayList.java @@ -4,24 +4,36 @@ import java.util.ArrayList; public class IntArrayList implements IntList{ - int[] numbers = new int[10]; - int size = 0; + private int[] data; + private int size; + + public IntArrayList() { + data = new int[10]; + size = 0; + } @Override public void add(int number) { - if (size < numbers.length){ - numbers[size] = number; - size++; - } else { - int newSize = size + (size/2); - int[] newNumbers = new int[newSize]; - newNumbers[newSize] = number; - newSize++; + if (size == data.length) { + int newCapacity = data.length + data.length / 2; + int[] newData = new int[newCapacity]; + + for (int i = 0; i < data.length; i++) { + newData[i] = data[i]; + } + + data = newData; } + + data[size] = number; + size++; } @Override public int get(int id) { - return 0; + if (id < 0 || id >= size) { + throw new IndexOutOfBoundsException("Invalid index"); + } + return data[id]; } } diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntVector.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntVector.java new file mode 100644 index 0000000..bfbf751 --- /dev/null +++ b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/IntVector.java @@ -0,0 +1,36 @@ +package org.example; + +public class VectorList implements IntList{ + private int[] data; + private int size; + + public IntVector() { + data = new int[20]; + size = 0; + } + + @Override + public void add(int number) { + if (size == data.length) { + int newCapacity = data.length * 2; + int[] newData = new int[newCapacity]; + + for (int i = 0; i < data.length; i++) { + newData[i] = data[i]; + } + + data = newData; + } + + data[size] = number; + size++; + } + + @Override + public int get(int id) { + if (id < 0 || id >= size) { + throw new IndexOutOfBoundsException("Invalid index"); + } + return data[id]; + } +} diff --git a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/VectorList.java b/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/VectorList.java deleted file mode 100644 index 4b6bb43..0000000 --- a/lab-java-interfaces-and-abstract-classes/src/main/java/org/example/VectorList.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.example; - -public class VectorList implements IntList{ - @Override - public void add(int number) { - - } - - @Override - public int get(int id) { - return 0; - } -}