Newsgroup: it.comp.java
Titolo: Domanda su protected

Ciao a tutti,
Premetto che questa può essere una domanda stupida, ma non sono riuscito a
trovare una soluzione...
Il mio problema è questo: ho una classe base (A) e una classe che la estende
(B). Devo fare in modo che alcune variabili definite in A siano accessibili
anche da B; tali variabili però non devono essere accessibili dagli oggetti
che realizzano un'istanza di B. Da quello che mi ricordavo credevo bastasse
dichiarare le variabili in A come protected, ma così facendo se creo un
oggetto di tipo B, da esso ho la possibilità di accedere a tutte le
variabili protected di A, cosa che ovviamente non vorrei.
Dove sbaglio? Qual è la soluzione al problema?
Grazie in anticipo.
--
Marco Minerva, 
vbco...@libero.it
http://www.marcominerva.com/vbcorner

Marco Minerva wrote:

Le variabili protected sono accessibili da altre classi a patto che il 
package sia lo stesso. Pertanto A,B devono appartenere allo stesso package.
-- 
Luca Ferrari,
fluc...@libero.it

 
No, sono accessibili dalle altre classi nello stesso package e dalle
classi che estendono la classe in cui si trovano, indipendentemente dal
fatto che si trovino nello stesso package o no.
Quindi se B estende A. B potra' accedere ai membri protected di A
anche se B non si trova nello stesso package di A.
Ai membri protected di A potranno accedere anche tutte le classi che
si trovano nello stesso package di A.
-- 
Lucio Benfante
Brainbench MVP for Java 1
http://www.brainbench.com
MyTranscript: 
http://www.brainbench.com/transcript.jsp?pid=167064

 se B non si trova nello stesso package di A.
Se pero' A e' friendly nessuna classe fuori dal package puo' accedere
ai suoi membri.
 
-- 
"difficilmente riusciremo ad arginare la diffusione dei virus finche' 
 esisteranno programmi come  u(z1...zn)=sel1(u z1...zn)=u" - Kleene

 
friendly? Esiste questo concetto in Java? Intenti con accesso di default
(cioe' senza che sia stato specificato nessun modificatore d'accesso?


 wrote in message
news:hDYO9.54594$TC5.1...@twister1.libero.it...


 (cioe' senza che sia stato specificato nessun modificatore d'accesso?
Si proprio questo.
Ho sempro detto friendly ma credo di averlo letto da qualche parte,
non mi dite ora che me lo sono immaginato ^_^


 ai suoi membri.
Nessuna classe fuori dal package e/o fuori dalla gerarchia.
uL

 non mi dite ora che me lo sono immaginato ^_^
non preoccuparti, l'ho letto anch'io, se non ricordo male
in qualche Certification Guide o simili.
--
Antonio Pelleriti
Brainbench Java Master: score 4.34,
higher than 99% of all previous test takers.

 
Ho controllato in qualche libro (non moltissimi a dire la verita'): l'unico che
definisce tale tipo di accesso come "friendly access" (come sinonimo di
package access) e' il TIJ.
In "The Java Programming Language", Gosling usa il termine friendly
parlando del package access, ma non e' riferito all'accesso, bensi' a
come vegono considerate le altre classi del package.
Se una classe espone dei membri con accesso di default (o accesso di
package), le altre classi del package vengono considerate "friendly" o
"trusted". Quinsi se A espone dei metodi con package access e B e'
un'altra classe dello stesso package di A, e' B ad essere friendly nei
confronti di A, non A stessa.
Secondo me usare "friendly access" come sinonimo per "package access"
genera confusione, dato che ricorda il meccanismo delle funzioni e classi
amiche del C++, che pero' e' molto diverso.


 Non mi risulta che si possa realizzare quello che lei desidera se non
La classe? che cosa desidera o concede la classe?
uL