Controle de Acesso A Classes

4 respostas
vauxsandino

Gostaria de saber como restringir o acesso de uma classe em relação a uma outra classe!

De modo que:
Sejam A, B e C classes distintas e sejam a1, a2, a3, a4 métodos publicos da classe A.
Como estabelecer que B consiga acessar somente os métodos a1 e a2, e C somente o método a4?

Obrigado.

4 Respostas

D

E ai vaxsandino !!

Se métodos a1, a2 , a3 e a4 são public, não tem como os mesmos serem privados para c. Dois modificadores de acesso ao mesmo tempo, meio contraditório. Pense um pouco mais na estrutura de suas classes. Será que elas estão coesas(funcionalidade bem definida) , bem projetadas ??

vlw

M

Eu nunca vi algo parecido com isso, mas neste contexto vc pode fazer uma verificação dentro do método, se tal classe pode executar o restante do código utilizando o instanceof, por exemplo:

public void a1(Object obj) {
    if (obj instanceof ClasseB)
       System.out.println("Só a Classe B executa esta linha");
}

porém vc não existe a possibilidade de vc impedir que a classe C chame tal método.

[]'s

vauxsandino

Obrigado pela resposta.

Rapaz um colega meu que me falou sobre essa função da linguagem java.
Falou que bastava incluir um código antecedido de um caractere especial (@ talvez) antes da definição da função.

Estou fazendo a base do jogo e existem classes comuns ao servidor e ao usuário,
mas algumas funções dessa mesma classe eu não gostaria que as classes do usuário acessassem.

Lembro-me que ele (meu colega) falou a respeito dessa função em relação ao JSP, creio que deve haver algo para JSE.

valew.

vauxsandino

marcostahara:

Eu nunca vi algo parecido com isso, mas neste contexto vc pode fazer uma verificação dentro do método, se tal classe pode executar o restante do código utilizando o instanceof, por exemplo:

public void a1(Object obj) {
    if (obj instanceof ClasseB)
       System.out.println("Só a Classe B executa esta linha");
}

porém vc não existe a possibilidade de vc impedir que a classe C chame tal método.

[]'s

Rapaz legal essa alternativa. É um pouco POG mas daria certo, caso ninguém consiga eu vou enviar um email ao meu colega ou aceitar essa sua opção.
valew.

Criado 17 de fevereiro de 2011
Ultima resposta 17 de fev. de 2011
Respostas 4
Participantes 3