Che cosa si intende per “oggetto”? Spiega questo concetto con un esempio.
Un oggetto in Java è un’istanza di una classe. Rappresenta un’entità che contiene stato (variabili d’istanza) e comportamento (metodi). Un oggetto viene creato usando la parola chiave new e può accedere a metodi e attributi definiti nella classe da cui è stato creato.
L’ereditarietà permette a una classe di ereditare metodi e attributi da un’altra classe tramite la parola chiave ________
L’ereditarietà permette a una classe di ereditare metodi e attributi da un’altra classe tramite la parola chiave extends
Come funziona il metodo length() in una stringa in Java? Nel caso dell’esempio che output da questa funzione?
String str = "Java";
int len = str.length();
Il metodo length() restituisce la lunghezza della stringa, ossia il numero di caratteri presenti in essa, la lunghezza nel caso dell’esempio sarà di 4.
Il tag HTML <b> serve per applicare il ________ al testo, mentre <i> applica il ________.
Il tag HTML <b> serve per applicare il grassetto al testo, mentre <i> applica il corsivo.
L’overload di un metodo implica scrivere un altro metodo con lo stesso nome e diverso tipo di ritorno
Vero
Falso
Falso
Qual è il significato della parola “this”, dove e quando si usa?
Si usa davanti a un oggetto o una variabile per evitare problemi di ambiguità tra attributi e metodi o costruttori che hanno lo stesso identificativo.
Che cosa rappresenta la parola chiave super? In quali casi viene utilizzata e perché è utile nell’ambito dell’ereditarietà?
La parola chiave super in Java viene utilizzata per accedere ai membri (variabili o metodi) della superclasse da una sottoclasse. È utile in due principali casi:
Per richiamare il costruttore della superclasse
Per accedere a un metodo o attributo della superclasse che è stato sovrascritto nella sottoclasse
Qual è la differenza tra i metodi equals() e == quando si confrontano due oggetti String?
Il metodo equals() confronta il contenuto di due stringhe, mentre == confronta se le due variabili fanno riferimento allo stesso oggetto in memoria.
Vero o Falso: Il blocco finally viene eseguito solo se viene sollevata un’eccezione.
Falso (il blocco finally viene eseguito sempre, sia che si verifichi un’eccezione o meno)
Dato il seguente codice:
public class Test {
int x;
public Test(String t) {
System.out.println("Test");
}
public static void main(String[] args) {
Test test = null;
System.out.println(test.x);
}
}
Si ha un errore di sintassi perché test non è stata inizializzata
Si ha un errore di sintassi perché x non è stata inizializzata
Si ha un errore di sintassi perché la classe Test non ha un costruttore di default
Si ha un errore in esecuzione (NullPointerException) perché test è null quando si usa test.x
Si ha un errore in esecuzione (NullPointerException) perché test è null quando si usa test.x
Il ___________ _________ in Java viene spesso utilizzato quando si vuole creare un oggetto senza fornire immediatamente valori specifici, lasciando che le variabili d’istanza vengano inizializzate ai valori di ________ oppure impostate successivamente tramite metodi ________.
Il costruttore vuoto in Java viene spesso utilizzato quando si vuole creare un oggetto senza fornire immediatamente valori specifici, lasciando che le variabili d’istanza vengano inizializzate ai valori di default oppure impostate successivamente tramite metodi setter.
Il __________ in Java consente di trattare oggetti di classi diverse tramite un riferimento di tipo ________, permettendo la chiamata a metodi che possono essere ridefiniti nelle sottoclassi. Il metodo che viene eseguito dipende dal tipo effettivo dell'oggetto e non dal tipo della ________.
Il poliformismo in Java consente di trattare oggetti di classi diverse tramite un riferimento di tipo superclasse , permettendo la chiamata a metodi che possono essere ridefiniti nelle sottoclassi. Il metodo che viene eseguito dipende dal tipo effettivo dell'oggetto e non dal tipo della variabile.
Completa la frase: Il metodo _________ di una stringa in Java viene utilizzato per estrarre una parte di stringa a partire da un indice di ________ e un indice di ________.
Il metodo substring() di una stringa in Java viene utilizzato per estrarre una parte di stringa a partire da un indice di partenza e un indice di fine.
Cos'è un'eccezione e quali costrutti si usano per gestirla?
Un'eccezione è un evento che si verifica durante l'esecuzione del programma e interrompe il normale flusso delle istruzioni. Abbiamo try, catch, throw, throws e finally
Data la seguente porzione di codice:
if ("ciao" == "ciao" && "mondo".replace('M','T') == "mondo")
System.out.println("Uguale");
else
System.out.println("Diversa");
Si ha un errore in compilazione
Visualizza "Uguale"
Visualizza "Diversa"
Si ha un errore in esecuzione
Visualizza "Uguale"
Che cos'è il concetto di incapsulamento in Java? Come si può implementare l'incapsulamento usando metodi getter e setter? Fornisci un esempio pratico sulla classe Persona (attributi: nome, cognome, età)
L'incapsulamento è la pratica di nascondere i dettagli interni di un oggetto, questo è di solito realizzato con l'uso di modificatori di accesso per nascondere gli attributi (rendendoli privati) e fornendo metodi pubblici (getter e setter) per accedere a quegli attributi.
Quale di queste affermazioni è vera riguardo all’ereditarietà in Java?
A) Una classe può estendere più classi
B) Un’interfaccia può estendere una classe
C) Una classe può implementare più interfacce
D) Una classe astratta può essere istanziata direttamente
C) Una classe può implementare più interfacce.
Che cosa fa il metodo replace() in Java e come viene utilizzato? Fornisci un esempio.
Il metodo replace() in Java sostituisce tutte le occorrenze di un carattere o di una sottostringa con un'altra stringa.
String str = "Ciao mondo!";
String nuovaStr = str.replace("mondo", "Terra");
Spiega la differenza tra i tag <div> e <span> in HTML. Quando è preferibile usare l’uno rispetto all’altro?
<div> è un contenitore a blocco, usato per raggruppare sezioni di una pagina.
<span> è un contenitore inline, usato per stilizzare porzioni di testo all’interno di un blocco.
public class Test{
private int a1 = 5;
private int a2 = 10;
public static void main(String args[]){
Test P = new Test();
System.out.println(new Test().a2/P.a1);
}
}
Errore in compilazione: a1 and a2 should be declared static in Test
Errore in compilazione: a1 and a2 have private access in Test
Nessun errore: l’output è 2
Si ha un errore in esecuzione
Nessun errore: l’output è 2