vittorio130881
16-02-2013, 09:36
ciao a tutti guardate questo pezzo di codice di un libro:
class Printarray
{
public print array() {}
public void printarray(Integer el[])
{
for (Integer i: el)
System.out.print(i+" " );
}
public void printarray(Character el[])
{
for (Character i: el)
System.out.print(i+" " );
}
public void printarray Double el[])
{
for Double i: el)
System.out.print(i+" " );
}
}
public class Printarrayclient
{
public static void main (String [] args)
{
Printarray pa=new Printarray();
Double d[]= (11.2, 11.1);
Integer i []=(12,13);
Character c[]=('a','b');
pa.printarray(d);
pa.printarray(i);
pa.printarray(c);
}
}
la cosa che non ho capito è quello che scrive l'autore:
"nell assegnamento dei valori agli array possiamo vedere un altra utile caratteristica offerta da java che consente di convertire automaticamente un valore primitivo nel corrispondente oggetto (autoboxing) e di efffettuare l'operazoine inversa (autounboxing). per esempio nel nostro primitivo 11.1 è stato lecitamente inserito come elemento di un array di oggetti di tipo Double"
ma come? gli array non contengono valori primitivi? perchè oggetti di tipo double? sono confuso....
class Printarray
{
public print array() {}
public void printarray(Integer el[])
{
for (Integer i: el)
System.out.print(i+" " );
}
public void printarray(Character el[])
{
for (Character i: el)
System.out.print(i+" " );
}
public void printarray Double el[])
{
for Double i: el)
System.out.print(i+" " );
}
}
public class Printarrayclient
{
public static void main (String [] args)
{
Printarray pa=new Printarray();
Double d[]= (11.2, 11.1);
Integer i []=(12,13);
Character c[]=('a','b');
pa.printarray(d);
pa.printarray(i);
pa.printarray(c);
}
}
la cosa che non ho capito è quello che scrive l'autore:
"nell assegnamento dei valori agli array possiamo vedere un altra utile caratteristica offerta da java che consente di convertire automaticamente un valore primitivo nel corrispondente oggetto (autoboxing) e di efffettuare l'operazoine inversa (autounboxing). per esempio nel nostro primitivo 11.1 è stato lecitamente inserito come elemento di un array di oggetti di tipo Double"
ma come? gli array non contengono valori primitivi? perchè oggetti di tipo double? sono confuso....