SlideShare a Scribd company logo
Metodi
Sono simili alle funzioni del C, sia per dichiarazione, che per uso, ma
nel caso di java sono sempre all’interno di una classe e quindi
possono essere associate:
• alla classe come categoria: metodo statico
• a un particolare oggetto della classe: metodo non statico
Dichiarazione e definizione
public class Triangolo
{
//Attributi
private double base;
private double altezza;
….
public double area()
{ //metodo non statico applicato a questo particolare triangolo
return base*altezza/2;
}
public static double calcolaArea(double b, double h)
{//metodo statico applicato a qualsiasi triangolo
return b*h/2;
}
….
public static void main(String args[])
{
double x=Triangolo.calcolaArea(4,5); //non esiste alcun triangolo
//come oggetto
//si usa semplicemente una
//funzione
Triangolo tr=new Triangolo(10,3);
//viene usato un costruttore per ora non ancora definito
double a=tr.area(); //Uso del metodo non statico
}
}// class Triangolo
Vari tipi di metodi
public int max(int tab[]) //riceve come parametro un array (per riferimento)
{ int m=0;
…..
return m; //ritorna un intero
}
public void stampa() //metodo senza parametri e senza valori di ritorno
{
}
public int[] elabora(String s) //metodo che ritorna un array
{ int tab[]=new int[s.length()];
…..
retrun tab;
}
Overloading
All’interno di una classe è possibile definire più metodi con lo stesso
nome, purché abbiano parametri diversi in numero e/o in tipo.
public void stampaMsg()
{
stampaMsg(“C’è stato un errore”);
}
public void stampaMsg(String msg)
{
System.out.println(msg);
}
Valore o riferimento
I tipi primitivi vengono sempre passati per valore.
I tipi non primitivi e gli array vengono sempre passati per riferimento.
Nel caso di valori di ritorno non primitivi il garbage collector non distrugge
l’oggetto il cui riferimento viene ritornato:
public int[] resize(int tab[], int inc)
{
int dim=tab.length;
int newTab[]=new int[dim+inc];
for(int i=0;i<dim;i++)
{
newTab[i]=tab[i];
}
return newTab;
}
Valore o riferimento
I tipi primitivi vengono sempre passati per valore.
I tipi non primitivi e gli array vengono sempre passati per riferimento.
Nel caso di valori di ritorno non primitivi il garbage collector non distrugge
l’oggetto il cui riferimento viene ritornato:
public int[] resize(int tab[], int inc)
{
int dim=tab.length;
int newTab[]=new int[dim+inc];
for(int i=0;i<dim;i++)
{
newTab[i]=tab[i];
}
return newTab;
}

More Related Content

Viewers also liked

Java lezione 7
Java lezione 7Java lezione 7
Java lezione 7
Sergio Ronchi
 
Java lezione 6
Java lezione 6Java lezione 6
Java lezione 6
Sergio Ronchi
 
Java lezione 12
Java lezione 12Java lezione 12
Java lezione 12
Sergio Ronchi
 
Java lezione 5
Java lezione 5Java lezione 5
Java lezione 5
Sergio Ronchi
 
Database Entity
Database EntityDatabase Entity
Database Entity
Sergio Ronchi
 
MySQL Database
MySQL DatabaseMySQL Database
MySQL Database
Sergio Ronchi
 
Oracle PL sql 1
Oracle PL sql 1Oracle PL sql 1
Oracle PL sql 1
Sergio Ronchi
 
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
Sergio Ronchi
 
Java lezione 16
Java lezione 16Java lezione 16
Java lezione 16
Sergio Ronchi
 
Java lezione 17
Java lezione 17Java lezione 17
Java lezione 17
Sergio Ronchi
 

Viewers also liked (10)

Java lezione 7
Java lezione 7Java lezione 7
Java lezione 7
 
Java lezione 6
Java lezione 6Java lezione 6
Java lezione 6
 
Java lezione 12
Java lezione 12Java lezione 12
Java lezione 12
 
Java lezione 5
Java lezione 5Java lezione 5
Java lezione 5
 
Database Entity
Database EntityDatabase Entity
Database Entity
 
MySQL Database
MySQL DatabaseMySQL Database
MySQL Database
 
Oracle PL sql 1
Oracle PL sql 1Oracle PL sql 1
Oracle PL sql 1
 
Java lezione 4
Java lezione 4Java lezione 4
Java lezione 4
 
Java lezione 16
Java lezione 16Java lezione 16
Java lezione 16
 
Java lezione 17
Java lezione 17Java lezione 17
Java lezione 17
 

Similar to Java lezione 3

Java5
Java5Java5
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013
Matteo Valoriani
 
Dal c a Java (3/3)
Dal c a Java (3/3)Dal c a Java (3/3)
Dal c a Java (3/3)
Marcello Missiroli
 
Introduzione a JavaScript
Introduzione a JavaScriptIntroduzione a JavaScript
Introduzione a JavaScript
Giovanni Buffa
 
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione Base
Felice Pescatore
 
Introduzione a scala prima parte
Introduzione a scala   prima parteIntroduzione a scala   prima parte
Introduzione a scala prima parte
Onofrio Panzarino
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
Giuseppe Dell'Abate
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 

Similar to Java lezione 3 (11)

Corso Java
Corso JavaCorso Java
Corso Java
 
Java5
Java5Java5
Java5
 
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013
 
Dal c a Java (3/3)
Dal c a Java (3/3)Dal c a Java (3/3)
Dal c a Java (3/3)
 
Pillole di C++
Pillole di C++Pillole di C++
Pillole di C++
 
Introduzione a JavaScript
Introduzione a JavaScriptIntroduzione a JavaScript
Introduzione a JavaScript
 
Object Oriented with Java Programmazione Base
Object Oriented with Java Programmazione BaseObject Oriented with Java Programmazione Base
Object Oriented with Java Programmazione Base
 
Introduzione a scala prima parte
Introduzione a scala   prima parteIntroduzione a scala   prima parte
Introduzione a scala prima parte
 
Template
TemplateTemplate
Template
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 

More from Sergio Ronchi

Java lezione 19
Java lezione 19Java lezione 19
Java lezione 19
Sergio Ronchi
 
Java lezione 15
Java lezione 15Java lezione 15
Java lezione 15
Sergio Ronchi
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
Sergio Ronchi
 
Java lezione 13
Java lezione 13Java lezione 13
Java lezione 13
Sergio Ronchi
 
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
Sergio Ronchi
 
Java lezione 10
Java lezione 10Java lezione 10
Java lezione 10
Sergio Ronchi
 
Java lezione 9
Java lezione 9Java lezione 9
Java lezione 9
Sergio Ronchi
 
Java lezione 8
Java lezione 8Java lezione 8
Java lezione 8
Sergio Ronchi
 
Java lezione 2
Java lezione 2Java lezione 2
Java lezione 2
Sergio Ronchi
 
Java introduzione
Java introduzioneJava introduzione
Java introduzione
Sergio Ronchi
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
Sergio Ronchi
 
Oracle PL sql 3
Oracle PL sql 3Oracle PL sql 3
Oracle PL sql 3
Sergio Ronchi
 
Oracle PL sql 2
Oracle PL sql 2Oracle PL sql 2
Oracle PL sql 2
Sergio Ronchi
 
Oracle 3 (sq lnet)
Oracle 3 (sq lnet)Oracle 3 (sq lnet)
Oracle 3 (sq lnet)
Sergio Ronchi
 
Oracle 2 (sqlplus)
Oracle 2 (sqlplus)Oracle 2 (sqlplus)
Oracle 2 (sqlplus)
Sergio Ronchi
 
Sql 5
Sql 5Sql 5
Sql 4
Sql 4Sql 4
Sql 3
Sql 3Sql 3

More from Sergio Ronchi (18)

Java lezione 19
Java lezione 19Java lezione 19
Java lezione 19
 
Java lezione 15
Java lezione 15Java lezione 15
Java lezione 15
 
Java lezione 14
Java lezione 14Java lezione 14
Java lezione 14
 
Java lezione 13
Java lezione 13Java lezione 13
Java lezione 13
 
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
 
Java lezione 10
Java lezione 10Java lezione 10
Java lezione 10
 
Java lezione 9
Java lezione 9Java lezione 9
Java lezione 9
 
Java lezione 8
Java lezione 8Java lezione 8
Java lezione 8
 
Java lezione 2
Java lezione 2Java lezione 2
Java lezione 2
 
Java introduzione
Java introduzioneJava introduzione
Java introduzione
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Oracle PL sql 3
Oracle PL sql 3Oracle PL sql 3
Oracle PL sql 3
 
Oracle PL sql 2
Oracle PL sql 2Oracle PL sql 2
Oracle PL sql 2
 
Oracle 3 (sq lnet)
Oracle 3 (sq lnet)Oracle 3 (sq lnet)
Oracle 3 (sq lnet)
 
Oracle 2 (sqlplus)
Oracle 2 (sqlplus)Oracle 2 (sqlplus)
Oracle 2 (sqlplus)
 
Sql 5
Sql 5Sql 5
Sql 5
 
Sql 4
Sql 4Sql 4
Sql 4
 
Sql 3
Sql 3Sql 3
Sql 3
 

Java lezione 3

  • 1. Metodi Sono simili alle funzioni del C, sia per dichiarazione, che per uso, ma nel caso di java sono sempre all’interno di una classe e quindi possono essere associate: • alla classe come categoria: metodo statico • a un particolare oggetto della classe: metodo non statico
  • 2. Dichiarazione e definizione public class Triangolo { //Attributi private double base; private double altezza; …. public double area() { //metodo non statico applicato a questo particolare triangolo return base*altezza/2; } public static double calcolaArea(double b, double h) {//metodo statico applicato a qualsiasi triangolo return b*h/2; } ….
  • 3. public static void main(String args[]) { double x=Triangolo.calcolaArea(4,5); //non esiste alcun triangolo //come oggetto //si usa semplicemente una //funzione Triangolo tr=new Triangolo(10,3); //viene usato un costruttore per ora non ancora definito double a=tr.area(); //Uso del metodo non statico } }// class Triangolo
  • 4. Vari tipi di metodi public int max(int tab[]) //riceve come parametro un array (per riferimento) { int m=0; ….. return m; //ritorna un intero } public void stampa() //metodo senza parametri e senza valori di ritorno { } public int[] elabora(String s) //metodo che ritorna un array { int tab[]=new int[s.length()]; ….. retrun tab; }
  • 5. Overloading All’interno di una classe è possibile definire più metodi con lo stesso nome, purché abbiano parametri diversi in numero e/o in tipo. public void stampaMsg() { stampaMsg(“C’è stato un errore”); } public void stampaMsg(String msg) { System.out.println(msg); }
  • 6. Valore o riferimento I tipi primitivi vengono sempre passati per valore. I tipi non primitivi e gli array vengono sempre passati per riferimento. Nel caso di valori di ritorno non primitivi il garbage collector non distrugge l’oggetto il cui riferimento viene ritornato: public int[] resize(int tab[], int inc) { int dim=tab.length; int newTab[]=new int[dim+inc]; for(int i=0;i<dim;i++) { newTab[i]=tab[i]; } return newTab; }
  • 7. Valore o riferimento I tipi primitivi vengono sempre passati per valore. I tipi non primitivi e gli array vengono sempre passati per riferimento. Nel caso di valori di ritorno non primitivi il garbage collector non distrugge l’oggetto il cui riferimento viene ritornato: public int[] resize(int tab[], int inc) { int dim=tab.length; int newTab[]=new int[dim+inc]; for(int i=0;i<dim;i++) { newTab[i]=tab[i]; } return newTab; }