diff --git a/lab1/FunctionCalculator/.idea/.gitignore b/.idea/.gitignore
similarity index 100%
rename from lab1/FunctionCalculator/.idea/.gitignore
rename to .idea/.gitignore
diff --git a/lab2/Matrix/.idea/misc.xml b/.idea/misc.xml
similarity index 73%
rename from lab2/Matrix/.idea/misc.xml
rename to .idea/misc.xml
index 7464918..d15472f 100644
--- a/lab2/Matrix/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/lab2/Matrix/.idea/modules.xml b/.idea/modules.xml
similarity index 54%
rename from lab2/Matrix/.idea/modules.xml
rename to .idea/modules.xml
index 8a85d50..f1a8c3c 100644
--- a/lab2/Matrix/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lab1/FunctionCalculator/FunctionCalculator.iml b/OOP_IO-2x_2023.iml
similarity index 100%
rename from lab1/FunctionCalculator/FunctionCalculator.iml
rename to OOP_IO-2x_2023.iml
diff --git a/lab1/FunctionCalculator/.idea/.name b/lab1/FunctionCalculator/.idea/.name
deleted file mode 100644
index 002da1d..0000000
--- a/lab1/FunctionCalculator/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-Main.java
\ No newline at end of file
diff --git a/lab1/FunctionCalculator/.idea/misc.xml b/lab1/FunctionCalculator/.idea/misc.xml
deleted file mode 100644
index 7464918..0000000
--- a/lab1/FunctionCalculator/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/lab1/FunctionCalculator/.idea/modules.xml b/lab1/FunctionCalculator/.idea/modules.xml
deleted file mode 100644
index 5092df8..0000000
--- a/lab1/FunctionCalculator/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/lab1/FunctionCalculator/out/production/FunctionCalculator/Main.class b/lab1/FunctionCalculator/out/production/FunctionCalculator/Main.class
deleted file mode 100644
index 920cbb0..0000000
Binary files a/lab1/FunctionCalculator/out/production/FunctionCalculator/Main.class and /dev/null differ
diff --git a/lab1/FunctionCalculator/src/Main.java b/lab1/FunctionCalculator/src/Main.java
deleted file mode 100644
index bcda6ea..0000000
--- a/lab1/FunctionCalculator/src/Main.java
+++ /dev/null
@@ -1,51 +0,0 @@
-import java.util.Scanner;
-public class Main {
- public static void main(String[] args) {
- //C2 = 2501 % 2 = 1, і операція O1 буде відніманням (-).
- //C3 = 2501 % 3 = 2
- //C5 = 2501 % 5 = 1, і операція O2 буде діленням (/).
- //C7 = 2501 % 7 = 4, тип індексів i та j буде char.
- double result = 0; // результат
- char i, j;
- char operation1 = '-';
- double constant = 2.0;
- Scanner scanner = new Scanner(System.in);
- System.out.print("Введіть значення n: ");
- int n = scanner.nextInt();
- System.out.print("Введіть значення m: ");
- int m = scanner.nextInt();
-
- // Обчислення значення функції S
- for (i = 'a'; i <= 'a' + n - 1; i++) {
- for (j = 'b'; j <= 'b' + m - 1; j++) {
- try {
- double value = (double) i / applyOperation(j, operation1, constant);
- result += value;
- } catch (ArithmeticException e) {
- System.out.println("Ділення на нуль: " + e.getMessage());
- } catch (Exception e) {
- System.out.println("Виникла помилка: " + e.getMessage());
- }
- }
- }
-
- // Виведення результату
- System.out.println("Результат: " + result);
- }
-
- // Метод, який застосовує операцію О1 до двох чисел
- public static double applyOperation(char j, char operation, double constant) throws Exception {
- switch (operation) {
- case '-':
- return (double) j - constant;
- case '/':
- if (constant == 0.0) {
- throw new ArithmeticException("C не може бути рівним нулю");
- } else {
- return (double) j / constant;
- }
- default:
- throw new Exception("Непідтримувана операція: " + operation);
- }
- }
-}
\ No newline at end of file
diff --git a/lab1/lab1.pdf b/lab1/lab1.pdf
deleted file mode 100644
index 3c875e7..0000000
Binary files a/lab1/lab1.pdf and /dev/null differ
diff --git a/lab2/Matrix/.idea/.gitignore b/lab2/Matrix/.idea/.gitignore
deleted file mode 100644
index 13566b8..0000000
--- a/lab2/Matrix/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/lab2/Matrix/.idea/.name b/lab2/Matrix/.idea/.name
deleted file mode 100644
index 002da1d..0000000
--- a/lab2/Matrix/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-Main.java
\ No newline at end of file
diff --git a/lab2/Matrix/Matrix.iml b/lab2/Matrix/Matrix.iml
deleted file mode 100644
index c90834f..0000000
--- a/lab2/Matrix/Matrix.iml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/lab2/Matrix/out/production/Matrix/Main.class b/lab2/Matrix/out/production/Matrix/Main.class
deleted file mode 100644
index c898a5c..0000000
Binary files a/lab2/Matrix/out/production/Matrix/Main.class and /dev/null differ
diff --git a/lab2/Matrix/src/Main.java b/lab2/Matrix/src/Main.java
deleted file mode 100644
index a0c3fbb..0000000
--- a/lab2/Matrix/src/Main.java
+++ /dev/null
@@ -1,58 +0,0 @@
-import java.util.Arrays;
-
-public class Main {
- public static void main(String[] args) {
- byte[][] matrix = {{4, 7, 3}, {4, 7, 6}, {7, 10, 9}};
-
- //C5 = 2501 mod 5 = 1, тому C = B^T (транспонування матриці)
- //C7 = 2501 mod 7 = 1, тому тип елементів матриці має бути byte
- //C11 = 2501 mod 11 = 10, тому треба знайти середнє значення елементів матриці
-
- // Виконуємо дію з матрицею: транспонування матриці B
- byte[][] transposedMatrix = transposeMatrix(matrix);
- System.out.println("Transposed matrix: ");
- printMatrix(transposedMatrix);
-
- // Виконуємо дію з матрицею C: знаходимо середнє значення елементів матриці
- double average = calculateAverage(transposedMatrix);
- System.out.println("Cереднє значення елементів матриці: " + average);
- }
-
- // Метод для транспонування матриці
- private static byte[][] transposeMatrix(byte[][] matrix) {
- int rows = matrix.length;
- int columns = matrix[0].length;
-
- byte[][] transposedMatrix = new byte[columns][rows];
-
- for (int i = 0; i < rows; i++) {
- for (int j = 0; j < columns; j++) {
- transposedMatrix[j][i] = matrix[i][j];
- }
- }
-
- return transposedMatrix;
- }
-
- // Метод для знаходження середнього значення елементів матриці
- private static double calculateAverage(byte[][] matrix) {
- int rows = matrix.length;
- int columns = matrix[0].length;
-
- int sum = 0;
- for (int i = 0; i < rows; i++) {
- for (int j = 0; j < columns; j++) {
- sum += matrix[i][j];
- }
- }
-
- return (double) sum / (rows * columns);
- }
-
- // Метод для виведення матриці на екран
- private static void printMatrix(byte[][] matrix) {
- for (byte[] row : matrix) {
- System.out.println(Arrays.toString(row));
- }
- }
-}
diff --git a/lab2/lab2.pdf b/lab2/lab2.pdf
deleted file mode 100644
index 92e651c..0000000
Binary files a/lab2/lab2.pdf and /dev/null differ
diff --git a/lab3/OperationsStrings/.idea/.gitignore b/lab3/OperationsStrings/.idea/.gitignore
deleted file mode 100644
index 13566b8..0000000
--- a/lab3/OperationsStrings/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/lab3/OperationsStrings/.idea/.name b/lab3/OperationsStrings/.idea/.name
deleted file mode 100644
index 002da1d..0000000
--- a/lab3/OperationsStrings/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-Main.java
\ No newline at end of file
diff --git a/lab3/OperationsStrings/.idea/misc.xml b/lab3/OperationsStrings/.idea/misc.xml
deleted file mode 100644
index 7464918..0000000
--- a/lab3/OperationsStrings/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/lab3/OperationsStrings/.idea/modules.xml b/lab3/OperationsStrings/.idea/modules.xml
deleted file mode 100644
index 32e9116..0000000
--- a/lab3/OperationsStrings/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/lab3/OperationsStrings/OperationsStrings.iml b/lab3/OperationsStrings/OperationsStrings.iml
deleted file mode 100644
index c90834f..0000000
--- a/lab3/OperationsStrings/OperationsStrings.iml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/lab3/OperationsStrings/out/production/OperationsStrings/Main.class b/lab3/OperationsStrings/out/production/OperationsStrings/Main.class
deleted file mode 100644
index 97fa6cc..0000000
Binary files a/lab3/OperationsStrings/out/production/OperationsStrings/Main.class and /dev/null differ
diff --git a/lab3/OperationsStrings/src/Main.java b/lab3/OperationsStrings/src/Main.java
deleted file mode 100644
index e4e71f0..0000000
--- a/lab3/OperationsStrings/src/Main.java
+++ /dev/null
@@ -1,25 +0,0 @@
-import java.util.HashSet;
-
-public class Main {
-
- public static void main(String[] args) {
- String inputText = "Who are you? What is your name? Where are you from?";
- int targetLength = 3;
-
- try {
- HashSet uniqueWords = new HashSet();
- String[] sentences = inputText.split("[?]");
- for (String sentence : sentences) {
- String[] words = sentence.trim().split("\\s+");
- for (String word : words) {
- if (word.length() == targetLength) {
- uniqueWords.add(word.toLowerCase());
- }
- }
- }
- System.out.println("Unique words of length " + targetLength + " in the input text are: " + uniqueWords);
- } catch (Exception e) {
- System.out.println("An error occurred: " + e.getMessage());
- }
- }
-}
diff --git a/lab3/lab3.pdf b/lab3/lab3.pdf
deleted file mode 100644
index 12fb76b..0000000
Binary files a/lab3/lab3.pdf and /dev/null differ
diff --git a/src/Lab1.java b/src/Lab1.java
new file mode 100644
index 0000000..6e7403c
--- /dev/null
+++ b/src/Lab1.java
@@ -0,0 +1,58 @@
+public class Lab1 {
+ public static void main(String[] args) {
+// char c = 'a' + '1';
+ char c = 97;
+// char c = '1';
+ System.out.println(c);
+ System.out.println((int) c);
+ c++;
+ System.out.println(c);
+ System.out.println((int) c);
+ System.out.println((double)'1'/'3');
+
+// System.out.println( (double) 0 / 0 );
+// System.out.println( Math.sqrt(-1) );
+ double s = 0;
+ /*for (int i = 1; i <= 3; i++) { // 1) ��������� � i = 1, 2) ���� � <= 3, 3) �������� 䳿 � �� �����,
+ System.out.println(i); // 4) �������������� � �� 1, 5) ����������� �� ����� 2
+// s = s + i;
+ s += i;
+ }*/
+ /*int[] array = new int[2];
+ for (int i = 0; i < array.length; i++) {
+
+ }*/
+ final int A = -3;
+ final int B = 0;
+ final int N = 2;
+ final int M = 2;
+
+ final int C = 1;
+// boolean wasDivisionByZero = false;
+// todo char
+// todo[clear code] think about avoiding brackets
+ if ((A <= -C && -C <= N) || (B <= 0 && 0 <= M)) {
+ System.out.println("Division by zero!");
+ return;
+ }
+/*myLabel:*/for (int i = A; i <= N /*&& !wasDivisionByZero*/; i++) {
+ /*if (i + C == 0) { // todo optimize
+ System.out.println("Division by zero!");
+ wasDivisionByZero = true;
+ break; //todo flag vs return;
+ }*/
+ for (int j = B; j <= M; j++) {
+ /*if (j == 0) {
+ System.out.println("Division by zero!");
+ return;
+// wasDivisionByZero = true;
+// break myLabel;
+ }*/
+ s += (double) (i / j) / (i + C);
+ }
+ }
+// if (!wasDivisionByZero) {
+ System.out.println("s = " + s);
+// }
+ }
+}
diff --git a/src/Lab2.java b/src/Lab2.java
new file mode 100644
index 0000000..56489af
--- /dev/null
+++ b/src/Lab2.java
@@ -0,0 +1,102 @@
+public class Lab2 {
+ public static void main(String[] args) {
+ final int A = 2;
+ final int[][] MATRIX_B = {
+ {1, 202, 1, 1, 202, 3, 1, 202, 3,},
+ {1, 202, 1, 1, 202, 3, 1, 202, 3,},
+ {1, 1, 3, 1, 202, 3, 1, 202, 3,},
+// {4, 5, 6,},
+ };
+
+ int[][] MATRIX_C = multiplication(A, MATRIX_B);
+
+ print(MATRIX_C);
+
+ System.out.println("Sum of smallest elements in every column: " + sumOfSmallestElementsInEveryColumn(MATRIX_C));
+
+ /*int[] array = {1, 2, 3};
+ int[] array2 = new int[3];
+ Object[] array3 = new String[3];
+ System.out.println(array3[0]); //nothing, trash from the memory, null || null
+ System.out.println(array2[0]); //nothing, trash from the memory, null || 0
+ System.out.println(array[0]); // || 1
+
+ int[][] matrix2 = new int[2][3];
+ matrix2[0] = new int[2];
+ matrix2[1] = new int[1];
+ for (int i = 0; i < array.length; i++) {
+ if (i % 2 == 0) {
+ System.out.println("!" + array[i]);
+ } else {
+ System.out.println("?" + array[i]);
+ }
+ }
+
+ for (int i = 0; i < array.length; i+=2) {
+ System.out.println("!" + array[i]);
+ }
+
+ for (int i = 1; i < array.length; i+=2) {
+ System.out.println("?" + array[i]);
+ }
+
+// зубчасті матриці
+ int[][] matrix = {
+ {1, 2},
+ {3}
+ };
+
+// C=a×B, a - const
+
+
+// final int[][] MATRIX_C = int;
+
+
+ MATRIX_B[0][0] = 2;
+ MATRIX_B[0] = new int[]{1, 2};
+ System.out.println(MATRIX_B[0][0]);
+ MATRIX_B = new int[][]{
+ {1, 2},
+ {3}
+ };*/
+ }
+
+ private static int sumOfSmallestElementsInEveryColumn(final int[][] MATRIX_C) {
+// todo check different length of rows
+// todo try to change i and j
+// todo check repetition of minimal elements
+ int sum = 0;
+ for (int i = 0; i < MATRIX_C[0].length; i++) {
+ int tmpSmallest = MATRIX_C[0][i];
+ for (int j = 1; j < MATRIX_C.length; j++) {
+ if (MATRIX_C[j][i] < tmpSmallest) {
+ tmpSmallest = MATRIX_C[j][i];
+ }
+ }
+ sum += tmpSmallest;
+ }
+ return sum;
+ }
+
+ private static void print(final int[][] MATRIX_C) {
+ for (int i = 0; i < MATRIX_C.length; i++) {
+ for (int j = 0; j < MATRIX_C[i].length; j++) {
+// System.out.print(MATRIX_C[i][j] + "\t");//printf("%4d",
+ System.out.printf("%4d ", MATRIX_C[i][j]);//printf("%4d",
+ }
+ System.out.println();
+ }
+ }
+
+ private static int[][] multiplication(int A, final int[][] MATRIX_B) {
+ final int[][] MATRIX_C = new int[MATRIX_B.length][/*MATRIX_B[0].length*/]; // todo !!!DANGER different lengths of rows
+// final int[][] MATRIX_C = MATRIX_B;
+ for (int i = 0; i < MATRIX_B.length; i++) {
+ MATRIX_C[i] = new int[MATRIX_B[i].length];
+ for (int j = 0; j < MATRIX_B[i].length; j++) {
+ MATRIX_C[i][j] = MATRIX_B[i][j] * A;
+ }
+ }
+ return MATRIX_C;
+ }
+}
diff --git a/src/Main.java b/src/Main.java
new file mode 100644
index 0000000..01cc396
--- /dev/null
+++ b/src/Main.java
@@ -0,0 +1,42 @@
+public class Main {
+ public static void main(String[] args) {
+ System.out.println(args[2]);
+ System.out.println("Hello world!");
+// System.out.println(1);
+
+ int a = 1;
+ int b = 2;
+ int c = 1;
+ int d = 1;
+
+ System.out.println(2&1);
+ System.out.println(2|1);
+ int aa = 2;
+
+ /*if (aa) {
+
+ }*/
+
+// System.out.println("a"&"b");
+ System.out.println('a'&'b');
+
+ if ((a > b) & MyBooleanMethod()) {
+ System.out.println("?????????????????????????");
+ }
+
+
+ }
+
+ static boolean MyBooleanMethod() {
+ System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+ return true;
+ }
+
+ void myFunction() {
+
+ }
+
+ int myFunction2() {
+ return 1;
+ }
+}
diff --git a/src/encapsulationInheritancePolymorphism/Encapsulation.java b/src/encapsulationInheritancePolymorphism/Encapsulation.java
new file mode 100644
index 0000000..aa53da3
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/Encapsulation.java
@@ -0,0 +1,20 @@
+package encapsulationInheritancePolymorphism;
+
+public class Encapsulation {
+ /*private*/ int field;
+ private int field2;
+// int a = 1;
+
+ public void myMethodForTheField () {
+ System.out.println(field);
+ }
+
+ public void myMethodForTheField2 () {
+ System.out.println(field);
+ }
+
+ public void myMethodForTheFieldAndTheField2 () {
+ System.out.println(field);
+ }
+}
+
diff --git a/src/encapsulationInheritancePolymorphism/EncapsulationInheritancePolymorphism.java b/src/encapsulationInheritancePolymorphism/EncapsulationInheritancePolymorphism.java
new file mode 100644
index 0000000..b7343df
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/EncapsulationInheritancePolymorphism.java
@@ -0,0 +1,10 @@
+package encapsulationInheritancePolymorphism;
+
+public class EncapsulationInheritancePolymorphism {
+
+ public static void main(String[] args) {
+ int a = 1;
+// var b = 2;
+// System.out.println(b);
+ }
+}
diff --git a/src/encapsulationInheritancePolymorphism/Main.java b/src/encapsulationInheritancePolymorphism/Main.java
new file mode 100644
index 0000000..47dc9d3
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/Main.java
@@ -0,0 +1,14 @@
+package encapsulationInheritancePolymorphism;
+
+public class Main {
+ public static void main(String[] args) {
+ Student student = new Student();
+
+
+
+
+ //...
+
+ student.setFaculty("FPM", "MO-22");
+ }
+}
diff --git a/src/encapsulationInheritancePolymorphism/Student.java b/src/encapsulationInheritancePolymorphism/Student.java
new file mode 100644
index 0000000..2ad836d
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/Student.java
@@ -0,0 +1,18 @@
+package encapsulationInheritancePolymorphism;
+
+public class Student {
+ private String name;
+ private String surname;
+ private String group;
+ private String faculty;
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setFaculty(String faculty, String group) {
+ this.faculty = faculty;
+ this.group = group;
+ }
+}
diff --git a/src/encapsulationInheritancePolymorphism/inheritance/ElectricEngine.java b/src/encapsulationInheritancePolymorphism/inheritance/ElectricEngine.java
new file mode 100644
index 0000000..e0852cd
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/inheritance/ElectricEngine.java
@@ -0,0 +1,9 @@
+package encapsulationInheritancePolymorphism.inheritance;
+
+public class ElectricEngine extends Engine {
+ private String batteryType;
+
+ /*private class Engine {
+ private int power;
+ }*/
+}
diff --git a/src/encapsulationInheritancePolymorphism/inheritance/Engine.java b/src/encapsulationInheritancePolymorphism/inheritance/Engine.java
new file mode 100644
index 0000000..2e315da
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/inheritance/Engine.java
@@ -0,0 +1,5 @@
+package encapsulationInheritancePolymorphism.inheritance;
+
+public class Engine {
+ private int power;
+}
diff --git a/src/encapsulationInheritancePolymorphism/inheritance/FuelEngine.java b/src/encapsulationInheritancePolymorphism/inheritance/FuelEngine.java
new file mode 100644
index 0000000..482b600
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/inheritance/FuelEngine.java
@@ -0,0 +1,5 @@
+package encapsulationInheritancePolymorphism.inheritance;
+
+public class FuelEngine extends Engine {
+ private String fuelType;
+}
diff --git a/src/encapsulationInheritancePolymorphism/inheritance/Main.java b/src/encapsulationInheritancePolymorphism/inheritance/Main.java
new file mode 100644
index 0000000..6e7e717
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/inheritance/Main.java
@@ -0,0 +1,8 @@
+package encapsulationInheritancePolymorphism.inheritance;
+
+public class Main {
+ public static void main(String[] args) {
+ ElectricEngine electricEngine = new ElectricEngine(); // створення нового об'єкту (екземпляру) класу ElectricEngine
+ FuelEngine fuelEngine = new FuelEngine();
+ }
+}
diff --git a/src/encapsulationInheritancePolymorphism/polymorphism/ElectricEngine.java b/src/encapsulationInheritancePolymorphism/polymorphism/ElectricEngine.java
new file mode 100644
index 0000000..85520e0
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/polymorphism/ElectricEngine.java
@@ -0,0 +1,14 @@
+package encapsulationInheritancePolymorphism.polymorphism;
+
+public class ElectricEngine extends Engine {
+ private String batteryType;
+
+ @Override
+ public int getPower() {
+ return 20;
+ }
+
+ /*private class Engine {
+ private int power;
+ }*/
+}
diff --git a/src/encapsulationInheritancePolymorphism/polymorphism/Engine.java b/src/encapsulationInheritancePolymorphism/polymorphism/Engine.java
new file mode 100644
index 0000000..074855b
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/polymorphism/Engine.java
@@ -0,0 +1,9 @@
+package encapsulationInheritancePolymorphism.polymorphism;
+
+public class Engine {
+ private int power;
+
+ public int getPower() {
+ return power;
+ }
+}
diff --git a/src/encapsulationInheritancePolymorphism/polymorphism/FuelEngine.java b/src/encapsulationInheritancePolymorphism/polymorphism/FuelEngine.java
new file mode 100644
index 0000000..151870d
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/polymorphism/FuelEngine.java
@@ -0,0 +1,10 @@
+package encapsulationInheritancePolymorphism.polymorphism;
+
+public class FuelEngine extends Engine {
+ private String fuelType;
+
+ @Override
+ public int getPower() {
+ return 50;
+ }
+}
diff --git a/src/encapsulationInheritancePolymorphism/polymorphism/Main.java b/src/encapsulationInheritancePolymorphism/polymorphism/Main.java
new file mode 100644
index 0000000..6be81c0
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/polymorphism/Main.java
@@ -0,0 +1,38 @@
+package encapsulationInheritancePolymorphism.polymorphism;
+
+/*import encapsulationInheritancePolymorphism.inheritance.ElectricEngine;
+import encapsulationInheritancePolymorphism.inheritance.FuelEngine;*/
+
+public class Main {
+ public static void main(String[] args) {
+ /*encapsulationInheritancePolymorphism.inheritance.*/ElectricEngine electricEngine = new ElectricEngine(); // створення нового об'єкту (екземпляру) класу ElectricEngine
+ /*encapsulationInheritancePolymorphism.inheritance.*/FuelEngine fuelEngine = new FuelEngine();
+
+ Engine engine1 = fuelEngine;
+
+ Engine[] engines = {
+ electricEngine,
+ fuelEngine
+ };
+
+ for (Engine engine : engines) {
+ System.out.println(engine.getPower());
+ }
+
+ /*for (int i = 0; i < engines.length; i++) {
+ System.out.println(engines[i].getPower());
+ }*/
+
+// +
+ int a = 1;
+ int b = 1;
+ int c = a + b;
+ System.out.println(c);
+
+
+ String sA = "1";
+ String sB = "1";
+ String sC = sA + sB;
+ System.out.println(sC);
+ }
+}
diff --git a/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/ElectricEngine.java b/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/ElectricEngine.java
new file mode 100644
index 0000000..1d6db51
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/ElectricEngine.java
@@ -0,0 +1,19 @@
+package encapsulationInheritancePolymorphism.polymorphism.enhanced;
+
+public class ElectricEngine extends Engine {
+ private String batteryType;
+ private int chargeLevel = 9;
+ private int criticalChargeLevel = 10;
+ private float coefficientCriticalPowerCut = 0.1f;
+
+ @Override
+ public int getPower() {
+ return chargeLevel > criticalChargeLevel
+ ? super.getPower()
+ : (int) (super.getPower() * coefficientCriticalPowerCut);
+ }
+
+ /*private class Engine {
+ private int power;
+ }*/
+}
diff --git a/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/Engine.java b/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/Engine.java
new file mode 100644
index 0000000..310f9ce
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/Engine.java
@@ -0,0 +1,9 @@
+package encapsulationInheritancePolymorphism.polymorphism.enhanced;
+
+public class Engine {
+ private int power = 100;
+
+ public int getPower() {
+ return power;
+ }
+}
diff --git a/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/FuelEngine.java b/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/FuelEngine.java
new file mode 100644
index 0000000..ad07d84
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/FuelEngine.java
@@ -0,0 +1,10 @@
+package encapsulationInheritancePolymorphism.polymorphism.enhanced;
+
+public class FuelEngine extends Engine {
+ private String fuelType;
+
+ /*public int getPower() {
+ return 50;
+ }*/
+
+}
diff --git a/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/Main.java b/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/Main.java
new file mode 100644
index 0000000..dcec9b1
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/polymorphism/enhanced/Main.java
@@ -0,0 +1,28 @@
+package encapsulationInheritancePolymorphism.polymorphism.enhanced;
+
+/*import encapsulationInheritancePolymorphism.inheritance.ElectricEngine;
+import encapsulationInheritancePolymorphism.inheritance.FuelEngine;*/
+
+public class Main {
+ public static void main(String[] args) {
+ /*encapsulationInheritancePolymorphism.inheritance.*/
+ ElectricEngine electricEngine = new ElectricEngine(); // створення нового об'єкту (екземпляру) класу ElectricEngine
+ /*encapsulationInheritancePolymorphism.inheritance.*/
+ FuelEngine fuelEngine = new FuelEngine();
+
+ Engine engine1 = fuelEngine;
+
+ Engine[] engines = {
+ electricEngine,
+ fuelEngine
+ };
+
+ for (Engine engine : engines) {
+ System.out.println(engine.getPower());
+ }
+
+ /*for (int i = 0; i < engines.length; i++) {
+ System.out.println(engines[i].getPower());
+ }*/
+ }
+}
diff --git a/src/encapsulationInheritancePolymorphism/polymorphism/overload/MyClassForOverloadExample.java b/src/encapsulationInheritancePolymorphism/polymorphism/overload/MyClassForOverloadExample.java
new file mode 100644
index 0000000..7eeb4b7
--- /dev/null
+++ b/src/encapsulationInheritancePolymorphism/polymorphism/overload/MyClassForOverloadExample.java
@@ -0,0 +1,17 @@
+package encapsulationInheritancePolymorphism.polymorphism.overload;
+
+public class MyClassForOverloadExample {
+ void myMethod(int a) {
+ System.out.println("Integer: " + a);
+ }
+
+ void myMethod(double a) {
+ System.out.println("Double: " + a);
+ }
+
+ public static void main(String[] args) {
+ MyClassForOverloadExample overload = new MyClassForOverloadExample();
+ overload.myMethod(1);
+ overload.myMethod(0.1);
+ }
+}
diff --git a/src/test/A.java b/src/test/A.java
new file mode 100644
index 0000000..8553a5e
--- /dev/null
+++ b/src/test/A.java
@@ -0,0 +1,13 @@
+package test;
+
+public class A {
+ /*private*/ int f/* = 3*/;
+
+ public int getF() {
+ return f;
+ }
+
+ public void setF(int f) {
+ this.f = f;
+ }
+}
diff --git a/src/test/Main.java b/src/test/Main.java
new file mode 100644
index 0000000..bf9f4b3
--- /dev/null
+++ b/src/test/Main.java
@@ -0,0 +1,15 @@
+package test;
+
+public class Main {
+ public static void main(String[] args) {
+ A a = new A();
+ System.out.println(a.getF());
+ a.setF(1);
+ System.out.println(a.getF());
+
+ System.out.println(a.f);
+
+ int[] array = {1, 2, 1};
+ System.out.println(array.length);
+ }
+}