Declaração de Atributos - private, protected, public

10 respostas
linhorj

Olá pessoal, bom dia!
Tenho noção do significado de private e public, porem nao consegui entender a utilidade de protected.
Gostaria de saber em detalhes qual a finalidade e com exemplos.
Desde já agradeço pelos os esclarecimentos.

10 Respostas

B

Atributos ou métodos declarados como protected são acessíveis somente nas classes filhas e nas classes de mesmo pacote da classe que possui o atributo/método protected.

Exemplo:

public class A {
    public A() {}

    protected void doSomething() {}
}

public class B extends A {
    public B() {}

    public void run() {
        doSomething();
    }
}

Você não conseguirá executar o método doSomething() de outra classe que não seja B e que não seja filha de A ou esteja no mesmo pacote de A.

renamed

http://www.tiexpert.net/programacao/java/public-private-protected.php

linhorj

Uma dúvida.
Vamos supor que eu possuo uma Classe chamada C e que é filha da Classe B. A Classe C terá acesso ao metodo: protected void doSomething() ?

biro:
Atributos ou métodos declarados como protected são acessíveis somente nas classes filhas e nas classes de mesmo pacote da classe que possui o atributo/método protected.

Exemplo:

public class A {
    public A() {}

    protected void doSomething() {}
}

public class B extends A {
    public B() {}

    public void run() {
        doSomething();
    }
}

Você não conseguirá executar o método doSomething() de outra classe que não seja B e que não seja filha de A ou esteja no mesmo pacote de A.

renamed

sim

B

sim sim…

Se C é subclasse de B. Logo, também será subclasse de A.

=P

linhorj

Desculpe a ignorancia, mas teria como mostrar na UML a classe que não terá ou teria acesso ao metodo protectec da classe A ?
No caso da Classe A todas as classes terão acesso ao metodo protected, pois todas irão erdar os atributos, metodos, correto?

biro:
sim sim…

Se C é subclasse de B. Logo, também será subclasse de A.

=P

JJjava

o protected quer dizer q o metodo ou classe é publica para as classes do mesmo pacote.

linhorj

Humm…
Então o protected caso o projeto não utilize pacote fica com a mesma finalidade de private?

JJjava

linhorj:
Humm…
Então o protected caso o projeto não utilize pacote fica com a mesma finalidade de private?

sim

linhorj

Valeu pessoal pelos os esclarecimentos,

Abraços

JJjava:
linhorj:
Humm…
Então o protected caso o projeto não utilize pacote fica com a mesma finalidade de private?

sim

Criado 3 de novembro de 2009
Ultima resposta 3 de nov. de 2009
Respostas 10
Participantes 4