Newsgroup: it.comp.java
Titolo: Protected che vuol dire?

Ho trovato questa definizione. che vuol dire?
Ho guardato in un libro ma non ci ho capito una mazza...
Il mio problema sarebbe quello di prendere il valore di un campo JTextField
JTextField username = new JTextField("");
int user=Integer.parseInt(username.paramString());
ma mi da errore mi dice..
interfaccia2.java:41: paramString() has protected access in
javax.swing.JTextField
Che devo fare?
Grazie

 wrote:

Usare username.getText() ?
ciao, Michela.

Si ho risolto.. ho usato quello... cmq non capisco come lo si trova nella
guida della sun...
se non me l' avesse detto un collega e poi tu.. sarei ancora li a cercare...
Grazie cmq..

Dal nome ... il metodo che hai invocato e *protected* e solo le classi 
che ereditano JTextField oppure le classi che appartengono allo stesso 
package possono usare membri/classi *protected*.
Puoi usare il consiglio di Michela e dai un'occhio alle specifiche di Java.
Ciao,Magellano


 guida della sun...
Se per guida della SUN intendi la javadoc il metodo in questione c'è solo
che è descritto sotto la classe in cui è implementato: JTextComponent.
Lo trovi però anche se guardi sotto JTextField: appena sotto l'elenco
tabellare dei metodi compaiono i metodi ereditati dalle relative superclassi
(JTextComponent appunto):
...
       void setHorizontalAlignment(int alignment)
                Sets the horizontal alignment of the text.
       void setScrollOffset(int scrollOffset)
                Sets the scroll offset.
  Methods inherited from class javax.swing.text.JTextComponent
      addCaretListener, addInputMethodListener, addKeymap, copy, cut,
fireCaretUpdate, getCaret, getCaretColor, getCaretPosition,
getDisabledTextColor, getDocument, getFocusAccelerator, getHighlighter,
getInputMethodRequests, getKeymap, getKeymap, getMargin,
getPreferredScrollableViewportSize, getScrollableBlockIncrement,
getScrollableTracksViewportHeight, getScrollableTracksViewportWidth,
getScrollableUnitIncrement, getSelectedText, getSelectedTextColor,
getSelectionColor, getSelectionEnd, getSelectionStart, getText...
...
Ciao

 package possono usare membri/classi *protected*.
No! Quelli sono i soli che possono accedere ai membri friendly!
;-))))))
Tutto questo PLP
{ String PLP = new String("Per la precisione"); }
-- 
__/\__ * this mail has been written by Talpa Stellare
\ TS / * che da piccolo una volta e' morto.
 |/\|  * icq# 78630739 - togli i caratteri maiuscoli x e-mail

 ;-))))))
??? :-)
Su TIJ2 trovi un capitolo intitolato "protected: “sort of friendly"!!!
Questo e esattamente cio che riporta un libro!Io non ho avuto ancora 
modo di poterlo provare e/o verificare posso aver scritto e/o capito male:
-Il modificatore protected
-Un altro modificatore messo a disposizione dal linguaggio Java è 
-protected.
-Membri di una classe dichiarati protected possono essere utilizzati sia 
-dai membri
-della stessa classe che da altre classi purché appartenenti allo stesso 
-package
-(Figura 5-2).
Ciao,
Magellano

 -package
E' proprio cosi'.
Supponiamo che A,B,C sono 3 classi poste in un package dove B
estende A e C non estende nessuna delle due.
Se A ha un membro protected questo e' visibile sia per un oggetto 
di classe A che per un oggetto di classe B ma anche per un oggetto 
di classe C a prescindere dal fatto che la classe A sia definita public
o friendly.
Ovviamente tutti gli oggetti di classi al di fuori del package non
possono vedere il membro protected di A anche se la classe A e' definita
public all'interno del package.

 A anche se la classe A e' definita public all'interno del package.
 
Qualcuno mi avra' gia corretto...
Se A e' pubblica nel package, i suoi membri protected sono visibili a
tutti gli oggetti di classi (externe al package) che specializzano A,
questo non vale pero' se A e' friendly nel package.

Quindi avevo capito bene!
Volveo esserne sicuro visto che avevo intenzione di scrivermi un 
[package] e alcuni di questi metodi volevo dichiararli [protected].
Ciao,Magellano


 modo di poterlo provare e/o verificare posso aver scritto e/o capito male:
Diamine, ho provato ed hai ragione!
Programmo in Java dal 1997 e non me n'ero accorto (d'altronde, io sono
abbastaza contrario al "protected" in se per se...)!
Non si finisce mai d'imparare! ;-)


 Non si finisce mai d'imparare! ;-)
Questo ti fa onore!
Grazie, ciao.
P.S. Perdonate il mio modo di rispondere (credo si scriva quotare) ma sto
ancora imparanto la vita nei NG.Portate pazienza.E perdonate qualche
strafalcione.

 [package] e alcuni di questi metodi volevo dichiararli [protected].
Tieni comunque presente che la sottoclasse (definita in un package 
diverso da quello della superclasse) puo' accedere al 'suo' membro 
protected (ereditato dalla superclasse), non al membro protected della 
superclasse. Mi spiego meglio con un esempio. Supponi di avere una classe:
	package a;
	public class A
	{
	  protected int f = 255;
	}
Il codice seguente naturalmente non compila, perche' B non e' 
sottoclasse di A:
	package b;
	import a.*;
	public class B
	{
	  public static void main(String[] args)
	  {
	      A a = new A();
	      System.out.println(a.f);
	  }
	}
Ma non compila nemmeno il seguente, pur essendo B sottoclasse di A:
	package b;
	import a.*;
	public class B extends A
	{
	  public static void main(String[] args)
	  {
	    A a = new A();
	    System.out.println(a.f);
	  }
	}
Il seguente invece compila:
	package b;
	import a.*;
	public class B extends A
	{
	  public static void main(String[] args)
	  {
	    B b = new B();
	    System.out.println(b.f);
	  }
	}
[In generale, come recitano le specifiche, un membro protected di un 
oggetto e' accessibile al di fuori del package in cui e' dichiarato 
solamente per codice che partecipa all'implementazione dell'oggetto. Il 
membro protected f e' dichiarato nel package a. Nel penultimo esempio si 
cerca di accedere (dal package b) ad a.f da codice (in B) che non 
partecipa all'implementazione di a. Non va bene. Viceversa, nell'ultimo 
esempio si accede (dal package b) a b.f da codice (in B) che e' 
responsabile dell'implementazione di b. Questo funziona. Se f fosse 
friendly, non compilerebbe nemmeno l'ultimo esempio.]
Ciao,
Alberto

 friendly, non compilerebbe nemmeno l'ultimo esempio.
L'aspetto del friendly non lo sapevo, me lo vado a spluciare.
Grazie 1000.
Magellano

 strafalcione.
Non mi sembra proprio tu vada male ;-)))))


 Non mi sembra proprio tu vada male ;-)))))
Grazie. ;-)))
Mi guardero meglio le specifiche dei *protected* e ne valutero meglio 
l'uso che ne volevo fare, grazie per l'esauriente spiegazine.
Magellano