Accessibility modifiers

2 respostas
F

deixa eu ver se consigo explicar…

vi uma questão que dizia basicamente o seguinte:

“um objeto de uma determinada classe que tem um campo private, pode acessar esse campo de um outro objeto da mesma classe, pois o modificador private restrige a nível de classe e não de objeto”.

Alguém poderia me explicar isso com exemplos e/ou uma definição mais clara?! :roll:

valew :grin:

2 Respostas

R

Fábio,

Vou tentar explicar: Um objeto de um tipo de classe tem acesso a “todos” os membros de um outro objeto do mesmo tipo de classe porque os dois compartilham o mesmo código. :oops:

Veja um exemplo:

package teste;

public class Teste {
  private int campo;
  
  public void setCampo(int k) {
    campo = k;
  }
  
  public int getCampo() {
    return campo;
  }
  
  public void alteraCampo(Teste t, int k) {
    t.campo = k;
  }
}
package outro;

import teste.Teste;

public class Acesso {
  public static void main(String[] args) {
    Teste t1 = new Teste();
    Teste t2 = new Teste();
    
    t2.setCampo(50);
    System.out.println(t2.getCampo());
    
    t1.alteraCampo(t2, 200);
    System.out.println(t2.getCampo());
  }
}

Veja que o objeto t1 teve acesso ao campo privado do objeto t2, porque o código para alterar o campo está dentro do código da classe (t1 e t2), e lá ele é visível apesar de private. :???:

F

entendi cara, valew :wink:

seu exemplo foi 10!

Criado 2 de março de 2005
Ultima resposta 2 de mar. de 2005
Respostas 2
Participantes 2