diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..30cf57e
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Ignored default folder with query files
+/queries/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/lab-java-basics.iml b/.idea/lab-java-basics.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/lab-java-basics.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..4eb4f51
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..505d07d
--- /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/Employ.java b/src/Employ.java
new file mode 100644
index 0000000..f762f42
--- /dev/null
+++ b/src/Employ.java
@@ -0,0 +1,38 @@
+public class Employ {
+ // 1. Le proprietà vanno qui (fuori dai metodi)
+ public String name;
+ public String idNumber;
+ public String department;
+ private double salary;
+ private Integer level;
+
+ // 2. Il costruttore
+ public Employ(String name, String idNumber, String department, double salary, Integer level) {
+ this.name = name;
+ this.idNumber = idNumber;
+ this.department = department;
+ this.salary = salary;
+ this.level = level;
+ }
+
+ // 3. I metodi della classe
+ public void login() {
+ System.out.println("Benvenuto " + this.name);
+ }
+
+ public void setSalary(double salary) {
+ this.salary = salary;
+ }
+
+ public double getSalary() {
+ return salary;
+ }
+
+ public int getLevel() {
+ return level;
+ }
+
+ public void setLevel(int level) {
+ this.level = level;
+ }
+}
\ No newline at end of file
diff --git a/src/Intern.java b/src/Intern.java
new file mode 100644
index 0000000..f0af382
--- /dev/null
+++ b/src/Intern.java
@@ -0,0 +1,22 @@
+public class Intern extends Employ{
+ // Costante per il limite massimo di stipendio
+ private static final double MAX_SALARY = 20000.0;
+
+ // Costruttore
+ public Intern(String name, String idNumber, String department, double salary, int level) {
+ super(name, idNumber, department, 0, level);
+ // Usiamo il setter validato per impostare lo stipendio iniziale
+ this.setSalary(salary);
+ }
+
+ // Override del setter per validare il limite salariale
+ @Override
+ public void setSalary(double salary) {
+ if (salary > MAX_SALARY) {
+ System.out.println("Attenzione: Stipendio non valido per un Intern. Impostato al massimo consentito: " + MAX_SALARY);
+ super.setSalary(MAX_SALARY);
+ } else {
+ super.setSalary(salary);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Main.java b/src/Main.java
new file mode 100644
index 0000000..f3c284d
--- /dev/null
+++ b/src/Main.java
@@ -0,0 +1,42 @@
+//TIP To Run code, press or
+// click the icon in the gutter.
+public class Main {
+ public static void main(String[] args) {{
+ // Creazione di un array per contenere 10 dipendenti
+ Employ[] staff = new Employ[10];
+ // Test di un dipendente normale
+ Employ emp = new Employ("Mario", "001", "IT", 25000.0, 1);
+ emp.login();
+ System.out.println("Salario Mario: " + emp.getSalary());
+
+ // Test dello stagista (Intern)
+ Intern intern = new Intern("Luca", "002", "Marketing", 25000.0, 0);
+ System.out.println("Salario Luca (dovrebbe essere 20000): " + intern.getSalary());
+
+
+ // Inizializzazione dei 10 dipendenti
+ staff[0] = new Employ("Mario Rossi", "E001", "IT", 35000.0, 3);
+ staff[1] = new Employ("Luigi Verdi", "E002", "HR", 28000.0, 2);
+ staff[2] = new Employ("Anna Bianchi", "E003", "Marketing", 32000.0, 3);
+ staff[3] = new Employ("Giulia Neri", "E004", "IT", 45000.0, 5);
+ staff[4] = new Employ("Paolo Gialli", "E005", "Finance", 38000.0, 4);
+ staff[5] = new Employ("Elena Viola", "E006", "Sales", 26000.0, 1);
+ staff[6] = new Employ("Marco Blu", "E007", "IT", 31000.0, 2);
+ staff[7] = new Employ("Sofia Rosa", "E008", "HR", 29500.0, 2);
+ staff[8] = new Employ("Luca Marrone", "E009", "Finance", 41000.0, 4);
+ staff[9] = new Intern("Sara Arancio", "I010", "IT", 15000.0, 0); // Esempio con Intern
+
+ // Ciclo per stampare le proprietà di tutti i 10 dipendenti
+ System.out.println("--- ELENCO DIPENDENTI ---");
+ for (int i = 0; i < staff.length; i++) {
+ System.out.println("Dipendente #" + (i + 1));
+ System.out.println("Nome: " + staff[i].name);
+ System.out.println("ID: " + staff[i].idNumber);
+ System.out.println("Reparto: " + staff[i].department);
+ System.out.println("Stipendio: " + staff[i].getSalary() + "€");
+ System.out.println("Livello: " + staff[i].getLevel());
+ System.out.println("-------------------------");
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Numbers.java b/src/Numbers.java
new file mode 100644
index 0000000..6d59e6d
--- /dev/null
+++ b/src/Numbers.java
@@ -0,0 +1,30 @@
+public class Numbers {
+ //Write a method in Java to get the difference between the largest and smallest values in an array of integers.
+ // The length of the array must be 1 and above. Use loops and conditionals to develop the algorithm.
+ void main() {
+ int[] numbers = {2, 8, 23, 14, 5};
+
+ // Inizializziamo con il primo elemento dell'array
+ int maxNumberList = numbers[0];
+ int minNumberList = numbers[0];
+
+ for (int number : numbers) {
+ // Controllo per il massimo
+ if (number > maxNumberList) {
+ maxNumberList = number;
+ }
+ // Controllo per il minimo
+ if (number < minNumberList) {
+ minNumberList = number;
+ }
+ }
+
+ int difference = maxNumberList - minNumberList;
+
+ System.out.println("Max num is: " + maxNumberList);
+ System.out.println("Min num is: " + minNumberList);
+ System.out.println("The difference is: " + difference);
+ }
+
+
+}
diff --git a/src/Numbers2.java b/src/Numbers2.java
new file mode 100644
index 0000000..42204a4
--- /dev/null
+++ b/src/Numbers2.java
@@ -0,0 +1,34 @@
+public class Numbers2 {
+ void main() {
+
+ //Write a method in Java to find the smallest and second smallest elements of a given array and print it in the console.
+ // Use loops and conditionals to develop the algorithm.
+ int[] numbers = {1, 81, 3, 4, 20};
+
+ // Inizializziamo con i valori massimi possibili per trovare i minimi
+ int smallest = Integer.MAX_VALUE;
+ int secondSmallest = Integer.MAX_VALUE;
+
+ int max = numbers[0];
+ int min = numbers[0];
+
+ for (int number : numbers) {
+ // Logica per Differenza (Max/Min)
+ if (number > max) max = number;
+ if (number < min) min = number;
+
+ // Logica per il più piccolo e il secondo più piccolo
+ if (number < smallest) {
+ secondSmallest = smallest;
+ smallest = number;
+ } else if (number < secondSmallest && number != smallest) {
+ secondSmallest = number;
+ }
+ }
+
+ System.out.println("Differenza (Max - Min): " + (max - min));
+ System.out.println("Il più piccolo: " + smallest);
+ System.out.println("Il secondo più piccolo: " + secondSmallest);
+ }
+
+}
\ No newline at end of file