|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2006
Messaggi: 244
|
[JAVA]modificatori PUBLIC, PRIVATE, PROTECTED
Come da titolo, vorrei sapere bene le differenze tra i modificatori: PUBLIC, PRIVATE, PROTECTED.
Possibilmente facendomi degli esempi banali di codice java. Ringrazio in anticipo |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: May 2009
Messaggi: 129
|
public:
puoi accedere al campo/metodo dichiarato con modificatore public da qualsiasi classe esterna alla classe in cui il campo/metodo pubblico è dichiarato(è pubblico) private: puoi accedere al campo/metodo dichiarato con modificatore private, solo dalla stessa classe in cui il campo o il metodo è dichiarato(è privato) protected: puoi accedere al campo/metodo dichiarato con modificatore protected solo da classi che sono in rapporto di ereditarietà con la classe che dichiara il campo/metodo protected(protetto). P.s.: Questo in linea di massima.Sul modificatore protected forse c'e' qualcosa da aggiungere,ma su google trovi davvero di tutto! ciao |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2782
|
Provo a spiegartelo in maniera informale con degli esempi. Considera ogni classe in un file a sé.
PUBLIC Codice:
public class A{
public int a;
}
Codice:
public class B{
public static void main(String[] args){
A ogg=new A();
ogg.a=10; //Accedo direttamente al membro a
}
}
Codice:
public class A{
private int a;
public void setA(int val){if(val>=0) a=val;}
public int getA(){return a;}
}
Codice:
public class B{
public static void main(String[] args){
A ogg=new A();
//ogg.a=10; Il compilatore mi darebbe errore perché a non è accessibile
ogg.setA(10);
ogg.setA(-1); //Il metodo setter impedisce il settaggio di valori negativi (è un esempio)
System.out.println(ogg.getA()); //Stamperà 10
}
}
Non l'ho ancora mai usato in qualche progetto, quindi non prendere per oro colato questi esempi Codice:
package mio.package;
public class A{
protected int a;
}
Codice:
package mio.package;
public class B{
public static void main(String[] args){
A ogg=new A();
ogg.a=10; //Posso accedere al membro a perché A è nello stesso package di B
}
}
Codice:
package tuo.package;
public class B{
public static void main(String[] args){
A ogg=new A();
ogg.a=10; //Errore di compilazione, non posso accedere al membro a perché A si trova in un altro package
}
}
Codice:
package suo.package;
public class B extends A{
public static void main(String[] args){
A ogg=new A();
ogg.a=10; //Posso accedere al membro a perché anche se A si trova in un altro package B la estende
}
}
http://java.sun.com/docs/books/tutor...sscontrol.html |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:06.



















