Java/Modificadores: diferenças entre revisões

[edição verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Abacaxi (discussão | contribs)
Sem resumo de edição
Abacaxi (discussão | contribs)
Sem resumo de edição
Linha 3:
 
==Modificadores de acesso==
: Os '''modificadores de acesso''' são palavras-chave que modificam a forma como podem ser acessadas as classes, métodos e/ou variáveis. São eles:
:* [[Java/Palavra-chave/private|private]]
:* [[Java/Palavra-chave/protected|protected]]
:* [[Java/Palavra-chave/public|public]]
:* [[Java/Palavra-chave/static|static]]
 
===Modificador de acesso ''private''===
 
O modificador de acesso "private" quando aplicado a um atributo ou a um método indica que os mesmos só podem ser acessados de dentro da classe que os criou (encapsulamento).
{{:Java/Palavra-chave/private}}
Uma classe que herde de uma superclasse com atributos declarados como "private" só poderá ter acesso a eles através dos métodos públicos da própria superclasse, caso contrário, não haverá acesso a estes atributos.
{{:Java/Palavra-chave/protected}}
 
{{:Java/Palavra-chave/public}}
 
{{:Java/Palavra-chave/static}}
* Exemplo
<source lang="java">
class Circulo
{
private float raio;
Circulo()
{
super();
setRaio( 3.0 );
}
void setRaio( float r )
{
raio = r
}
}
class Pneu extends Circulo
{
Pneu p = new Pneu();
p.raio = 10.0; //Erro de compilação. O Atributo raio é privado da classe Circulo
p.setRaio(10.0); //Correto, pois a classe Pneu está utilizando os métodos definidos na classe Circulo para fazer
//acesso ao atributo privado raio
}
</source>
{{AutoCat}}
===Modificador de acesso ''protected''===
 
:A instrução ''protected'' indica que o método ou a variável assim declarada possa ser acessada somente dentro do pacote em que está contida através de uma subclasse.
 
{{AutoCat}}
===Modificador de acesso ''public''===
 
:A instrução ''public'' indica que a classe, método ou variável assim declarada possa ser acessada em qualquer lugar e a qualquer momento da execução do programa.
 
{{AutoCat}}
 
=== Friendly ===
Sem modificador de acesso, o membro da classe é considerado ''friendly''. Não há uma palavra-chave para esse modificador.
 
==Outros modificadores==
:Os modificadores a seguir podem ser usados em conjunto com os modificadores de acesso provendo, assim, outros comportamentos:
===Modificador de acesso ''static''===
:* [[Java/Palavra-chave/abstract|abstract]]
 
:* [[Java/Palavra-chave/final|final]]
:A instrução ''static'' serve:
:* na declaração de uma variável dentro de uma classe, para se criar uma variável que poderá ser acessada por todas as instâncias de objetos desta classe como um variável comum. Ou seja, a variável criada será a mesma em todas instâncias e quando seu conteúdo é modificado em uma das instâncias então ele será modificado em todas instâncias;
:* na declaração de um método que deve ser acessado diretamente na classe e não nas suas instâncias.
 
{{AutoCat}}
===Modificador ''abstract''===
 
:A instrução ''abstract'' serve para:
:* declarar métodos abstratos, ou seja, métodos que deverão ser desenvolvidos/implementados nas subclasses. Quando a classe que contiver métodos abstratos for herdada, os referidos métodos deverão ser implementados, caso contrário, a classe que extendeu deverá ser declarada como abstrata.
:* declarar classes abstratas que se desenvolvem numa(s) subclasse(s). Classes abstratas são aquelas que não estão totalmente implementadas/descritas. Uma classe abstrata não pode ser instanciada e é amplamente usada nas interfaces.
:* Uma classe é considerada abstrata se contiver pelo menos um método abstrato. Um método abstrato tem a seguinte característica: void getName( );
:* Caso o método tenha as chaves características {}, o mesmo não mais será considerado abstrato, embora não tenha código dentro das chaves.
 
{{AutoCat}}
 
[[en:Java Programming/Keywords/abstract]]
===Modificador ''final''===
 
:A instrução ''final'' indica que a classe, método ou variável assim declarada têm uma única atribuição que se mantém constante, ou seja, não pode ser alterada no decorrer do processamento.
:Este modificador declara o que chamamos, em programação, de [[Java/Constante|constante]].
 
{{AutoCat}}
{{:Java/Palavra-chave/abstract}}
{{:Java/Palavra-chave/final}}
 
{{AutoCat}}