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