Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
TEST
String toLowerCase()
Metodo che converte tutti i caratteri contenuti in una stringa, in caratteri minuscoli. Ricordiamo
che le istanze di String sono immutabili,
quindi la nuova stringa contenente i caratteri maiuscoli dovrà essere assegnata (salvata) in una
nuova istanza di String.
Esempio di String toLowerCase():
String s = new String("TeSt");
String sMinuscola =s.toLowerCase();
System.out.println(s);
System.out.println(sMinuscola);
la stampa a video sarà:
Test
Descrivere che cos'è una keyword di Java e fare degli esempi di keyword
Le parole chiave (dall'inglese keywords) sono parole che il programmatore non può usare come
nome di una variabile, di una classe o di qualsiasi altro elemento del programma. Alcuni esempi di
keywords sono:
"new" operatore che si usa per creare una istanza di una classe o array;
"package" si usa come prima dichiarazione in un sorgente java e specifica il pacchetto a cui
appartengono tutti i tipi definiti nel sorgente;
"class" definisce una classe;
"break" interrompe un ciclo e passa all'istruzione successiva.
Descrivere che cos'è un Abstract Data Type e quale relazione ha con il concetto di
classe Java.
Nel linguaggio Java, una classe è lo stampo da cui si ottengono gli oggetti (o istanze).
Convenzionalmente, il nome della classe inizia con una lettera maiuscola.
La sintassi per la creazione di una classe è la seguente: public class NomeClasse { dove public è una
parola chiave del linguaggio che indica che la classe è accessibile a tutti class è un'altra parola
chiave che significa che stiamo definendo una classe. NomeClasse è il nome della classe che
abbiamo appena definito le parentesi graffe fanno parte dell'istruzione e delimitano il contenuto, i
metodi e le variabili.
Descrivere la relazione tra classe ed oggetto Java e fare degli esempi
Un Abstract Data Type (tipo di dato astratto), in informatica e in particolare, nel campo della
programmazione, è un concetto fondamentale. Essi sono definiti dall'utente, e sono composti da:
Un dominio (ossia un insieme di valori su cui è stato definito) e un insieme di operazioni che
permettono di manipolare quel tipo di dato astratto.
Scrivere la definizione di metodo statico e le implicazioni di avere dei metodi
statici per una classe.
Classi con metodi statici. Possiamo definire metodi statici in una classe, aggiungendo la
keyword static alla definizione del metodo:
public class Test {
public static void stampa() {
System.out.println("Messagg
io");
}
public static void main(String[]
args) { stampa();
}
}
In questo modo possiamo chiamare il metodo stampa() della classe Test senza necessità di dover
creare una nuova istanza. Se fossimo in un’altra classe potremmo invocare il metodo statico
stampa() con la seguente istruzione:
Test.stampa();
Descrivere che cos'è l'istanza di una classe e come si crea una nuova istanza,
riportando degli esempi di codice
Java è un linguaggio OO (object Oriented in italiano orientato agli oggetti), per cui ogni cosa che
descriveremo sarà un oggetto. Per ogni classe che definiamo in Java, possono esistere infinite
istanze (o oggetti). E’ importante ricordare che, la semplice definizione di una classe, non
determina allocazione di memoria, la quale, si verifica quando si crea una nuova istanza della
classe grazie all’utilizzo della parola chiave new.
Immaginiamo una classe Auto che ha una casa costruttrice, colore, tipologia di carburante
public class veicolo{
public static void main(String []args) {
class Auto {
String casa;
String
colore;
Descrivere che cos'è l'incapsulamento e come si può implementare nel linguaggio
Java.
Quando in Java si definisce una variabile (anche detto attributo), viene associato un ambito di
visibilità. In generale una variabile è visibile nel blocco in cui è stata dichiarata, dopo la sua
dichiarazione
•nel caso di una variabile, bisogna considerare le istruzioni delimitate
dalle parentesi grasse (il blocco di codice) in cui è stata definita
•nel caso di variabili di istanza (ovvero attributi di una classe), la visibilità
coincide con i metodi della classe
•se esistono variabili definite in blocchi diversi aventi lo stesso nome, nel
blocco più interno sarà visibile solo la variabile locale al blocco (quella
globale sarà nascosta)
•nel caso di variabili di istanza si può utilizzare la parola
chiave this per accedere alla variabile di istanza avente lo
stesso nome di quella locale
Descrivere cosa si intende per scopo di una variabile
L'incapsulamento è uno dei pilastri importanti del linguaggio di programmazione orientato agli
oggetti. L'incapsulamento si occupa delle decisioni relative alla fornitura dell'accesso ai dati e il
principale vantaggio dell'incapsulamento è l'occultamento dei dati.
Utilizzando l'incapsulamento possiamo consentire al programmatore di decidere sull'accesso ai
dati e sui metodi che operano su quei dati. Per esempio, se vogliamo che un particolare dato sia
inaccessibile a chiunque al di fuori della classe, allora rendiamo quei dati privati.
Per implementare l'incapsulamento,bisogna dichiarare privati i membri di una classe e quindi
inaccessibili al difuori della classe stessa (a tale scopo esiste il modificatore private).
Allora, l’accesso ai dati,potrà essere fornito da un’interfaccia pubblica costituita da metodi
dichiarati publici
Descrivere cosa si intende per ereditarietà ed illustrarlo con un esempio in codice
Java
Java è un linguaggio OO (object oriented - orientato agli oggetti) pertanto quasi tutto è un oggetto.
L'ereditarietà, si implementa facendo uso di due oggetti il primo da dove si eredita il codice e il
secondo che eredita il codice. Solitamente si utilizza quando dobbiamo creare una nuova classe ed
è già disponibile un'altra classe che rappresenta un concetto più generale.
Prendiamo ad esempio una classe Panda che è una sottoclasse della classe Fiat ,si scrive così:
public class Panda extends Fiat dove la classe Panda è quella che eredita il codice (sottoclasse),
mentre Fiat è la classe da cui si eredita il codice (superclasse). E' importante ricordare che per ogni
superclasse esistono (o possono esistere) tante sottoclassi, mentre per ogni sottoclasse esiste una
e una sola superclasse.
Descrivere cosa si intende per polimorfismo ed illustrarlo con un esempio in codice
Java
La proprietà del polimorfismo, che significa letteralmente "molte forme", ed è uno strumento dei
linguaggi di programmazione ad oggetti che possiamo usare a nostro vantaggio.
Si usa quando abbiamo molte classi che sono correlate tra loro per ereditarietà e delle quali
vogliamo adattare il comportamento. Ad esempio, si pensi ad una superclasse chiamata
Automobile che abbia un metodo chiamato carburante().
Possibili sottoclassi della classe Automobile potrebbero essere, ad esempio: Fiat,
Mercedes, Bmw, ecc.
Ognuna di queste classi avrà la sua implementazione del carburante che quel tipo di automobile
utilizza (Fiat Metano, Mercedes Diesel, Bmw Benzina). Passiamo ad analizzare una possibile
implementazione: public class Automobile {
String nome;
public String carburante() {
return "L’Automobile utilizza il carburante";
}}
public class Fiat extends
Automobile { public String
carburante() {
return "Metano";
}
}
public class Mercedes extends
Automobile { public String
carburante() {
return "Diesel";
}
Descrivere che cos'è l'overloading degli operatori e fare un esempio in codice Java.
L’overloading degli operatori è una proprietà della programmazione ad oggetti che
permette di usare
•lo stesso identificatore per più metodi
•numero e/o tipo di parametri diversi
•i metodi di questo tipo si dicono overloaded
Supponiamo di aver bisogno, di una classe di utilità che calcoli il prodotto di numeri
public class Prodotto {
public int
prod(int a, int b){
return a * b;
}
public int prod(int a, int b, int c) {
return a * b * c;
}
public float prod(float a, float b) {
return a * b;
}
public static void main(String args[]) { Prodotto p = new Prodotto();
System.out.println(“3*2 = ” + p.prod(3,2));
System.out.println(“3*2*4 = ” + p.prod(3,2,4));
System.out.println(“3.2*2.5 = ” + p.prod(3.2,2.5));
}
}
Scrivere una classe Somma che dimostri l’overloading degli operatori in Java
public class Somma {
public int
somm(int a, int b) {
return a + b;
public int
somm(int a, int b, int c) {
return a + b + c;
public float
somm(float a, float b) {
return a + b;
public static void
main(String args[]) {
Somma s = new Somma();
System.out.println(“3+2 = ” + s.somm(3,2));
System.out.println(“3+2+4 = ” + s.somm(3,2,4));
System.out.println(“3.2+2.5 = ” + s.somm(3.2,2.5));
essendo la prima parte tra "" viene identificata come testo e
la stampa a video sarà: 3+2 = 5
Descrivere il problema del diamante nell'ereditarietà multipla e mostrare un
esempio.
In Java una classe può ereditare da una sola classe base (utilizzando il comando extends) , ed il
concetto di ereditarietà
multipla è possibile solo grazie all’uso delle interfacce (utilizzando il comando implements). Un
interfaccia permette di definire la
“forma” di una classe, indicando nomi di metodi, argomenti, tipi restituiti e proprietà, ma senza
permettere alcuna
implementazione. Saranno poi le classi che ne faranno uso a dover implementare la logica per
ciascun metodo definito
nell’interfaccia. Questa soluzione permette di risolvere il problema alla radice, in caso di
ereditarietà multipla il metodosarà comunque sempre implementato nella classe eliminando così
problemi di ambiguità. in termini brevi potremmo dire
che:
una superclasse può avere molte sottoclassi
(ereditarietà normale) una sottoclasse può avere
molte superclassi (ereditarietà multipla)
esempio ereditarietà normale (tra classi): public class Fiat
extends Automobile esempio ereditarietà multipla: public
Si descriva come il problema dell'ereditarietà multipla viene risolto nel linguaggio
Java.
L’ereditarietà multipla in Java non è possibile soltanto facendo uso di classi, ma bisogna introdurre
le interf