Java è un linguaggio a tipizzazione statica: il tipo di una variabile è noto in fase di compilazione. Assegnare un valore a un nome si chiama definire una variabile. Una variabile si definisce specificando esplicitamente il suo tipo.
int explicitVar = 10;
L'aggiornamento del valore di una variabile avviene tramite l'operatore =.
Qui, = non rappresenta l'uguaglianza matematica.
Assegna semplicemente un valore a una variabile.
Una volta definita, il tipo di una variabile non può mai cambiare.
int count = 1; // Assign initial value
count = 2; // Update to new value
// Compiler error when assigning a different type
// count = false;
Java è un linguaggio orientato agli oggetti e richiede che tutte le funzioni siano definite all'interno di una classe.
La parola chiave class serve a definire una classe.
class Calculator {
// ...
}
Una funzione all'interno di una classe viene chiamata metodo.
Ogni metodo può avere zero o più parametri.
Tutti i parametri devono avere un tipo esplicito: non c'è inferenza di tipo per i parametri.
Allo stesso modo, anche il tipo restituito deve essere esplicito.
I valori vengono restituiti dai metodi tramite la parola chiave return.
Per permettere che un metodo venga chiamato da altre classi, bisogna aggiungere il modificatore di accesso public.
class Calculator {
public int add(int x, int y) {
return x + y;
}
}
Per chiamare un metodo, si specificano il nome della classe e quello del metodo e si passano gli argomenti per ciascuno dei parametri del metodo.
int sum = new Calculator().add(1, 2); // here the "add" method has been called to perform the task of addition
Lo scope in Java è definito tra i caratteri { e }.
Java supporta due tipi di commenti.
I commenti su una sola riga sono preceduti da //, mentre i commenti su più righe sono inseriti tra /* e */.
In questo esercizio scriverai del codice per aiutarti a cucinare una lasagna fantastica dal tuo libro di cucina preferito.
Hai quattro attività, tutte legate al tempo impiegato per cucinare la lasagna.
Definisci il metodo expectedMinutesInOven() che non prende alcun parametro e restituisce per quanti minuti la lasagna deve stare in forno. Secondo il libro di cucina, il tempo di cottura previsto è di 40 minuti:
Lasagna lasagna = new Lasagna();
lasagna.expectedMinutesInOven();
// => 40
Definisci il metodo remainingMinutesInOven() che prende come parametro i minuti effettivi che la lasagna ha già passato in forno e restituisce quanti minuti la lasagna deve ancora rimanere in forno, in base al tempo di cottura previsto dell'attività precedente.
Lasagna lasagna = new Lasagna();
lasagna.remainingMinutesInOven(30);
// => 10
Definisci il metodo preparationTimeInMinutes() che prende come parametro il numero di strati che hai aggiunto alla lasagna e restituisce quanti minuti hai impiegato a preparare la lasagna, supponendo che ogni strato ti richieda 2 minuti.
Lasagna lasagna = new Lasagna();
lasagna.preparationTimeInMinutes(2);
// => 4
Definisci il metodo totalTimeInMinutes() che prende due parametri: il primo parametro è il numero di strati che hai aggiunto alla lasagna, mentre il secondo è il numero di minuti che la lasagna ha passato in forno. Il metodo deve restituire quanti minuti in totale hai lavorato a cucinare la lasagna, cioè la somma del tempo di preparazione in minuti e del tempo in minuti che la lasagna ha passato in forno fino a quel momento.
Lasagna lasagna = new Lasagna();
lasagna.totalTimeInMinutes(3, 20);
// => 26
Iscriviti a Exercism per imparare e padroneggiare Java con 26 concetti158 esercizi e il mentoring di persone reali, tutto gratis.