O encapsulamento é feito para que não se altere um atributo de um objeto diretamente mas sim por meios de métodos certo? Neste caso se o que o programa faz é altera o atributo teria realmente a necessidade de se declarar as váriaveis private e os métodos set e get ou poderia ser feito sem esse encapsulamento?
Integer e nt são o mesmo tipo certo? Então eu poderia no lugar de Integer colocar int?
Qual a diferença de se declarar um método como public e de se declarar sem o public? Testei aqui e funcionou do mesmo jeito. Quando não declaro um método como public que estado ele assume? Dá no mesmo?
R1: Suponha q a regra de negócio mudasse e agora uma pessoas só pudesse ter no máximo 100 anos no seu sistema. Vc alteraria apenas o set:
public void setIdade( Integer idade )
{
if( idade <= 100)
this.idade = idade; //dummy, mas é só de exemplo
}
ou seja, modificaria apenas aquilo que tem que ser modificado, e n precisaria mexer nenhuma outra classe q utilizava esse atributo. Imagine sem encapsulamento. Isso é um exemplo simples, tente imaginar com coisas mais complexas o trabalho que está sendo simplificado aqui.
R2: Sim, pode usar tanto um como outro. O Integer é a classe que representa um inteiro. o int é o tipo primitivo. Não há necessidade de utilizar Integer se vc não vai precisar dos métodos ou outros benefícios oferecidos pela utilização da classe ao invés do tipo primitivo. Mas poder, pode.
R3: É public por default, se vc n coloca nd o compilador considera como public. Porém sempre coloque, é uma boa prática deixar o código o mais claro possível.
[quote=rodpuc] R3: É public por default, se vc n coloca nd o compilador considera como public. Porém sempre coloque, é uma boa prática deixar o código o mais claro possível.[/quote]
A visibilidade default é conhecida também como visibilidade de pacote, ou seja, apenas classes no mesmo pacote têm acesso.
[quote=alankelon][quote=rodpuc] R3: É public por default, se vc n coloca nd o compilador considera como public. Porém sempre coloque, é uma boa prática deixar o código o mais claro possível.[/quote]
A visibilidade default é conhecida também como visibilidade de pacote, ou seja, apenas classes no mesmo pacote têm acesso.[/quote]
+1!
Sendo que a classe, só aceita dois modificadores referentes a acesso: public e default (quando se deixa em branco a visibilidade da classe)
E não referentes a acesso: abstract ou final e strictfp (os mais comuns). ou = nunca combinados!
Flw!
[quote=rodpuc]tem razão, falha minha, o default é protected.
Shaft, funciona do msm jeito pq o protected dá visibilidade a classes do mesmo pacote e a subclasses.[/quote]
O default não é protected!
Membros default, podem ser acessados pelas classes somente do mesmo pacote; sendo através de herança ou referência.
Ao contrário dos membros protected, que podem ser acessados por classes fora ou dentro do pacote, mas em ambos, somente por herança e não por referência.
Flw!