Minha dúvida é a seguinte:
Código sem encapsulamento:
class Documento
{
String nome;
Integer idade;
}
public class Ecm
{
public static void main( String args[])
{
Documento doc1 = new Documento();
doc1.nome = "Shaft";
doc1.idade = 26;
System.out.println("Nome: " + doc1.nome);
System.out.println("Idade: " + doc1.idade);
}
}
Código com encapsulamento:
class Documento
{
private String nome;
private Integer idade;
public void setNome( String nome )
{
this.nome = nome;
}
public String getNome()
{
return nome;
}
public void setIdade( Integer idade )
{
this.idade = idade;
}
public Integer getIdade()
{
return idade;
}
}
public class Ecm
{
public static void main( String args[])
{
Documento doc1 = new Documento();
doc1.setNome("Shaft");
doc1.setIdade(26);
System.out.println("Nome: " + doc1.getNome());
System.out.println("Idade: " + doc1.getIdade());
}
}
1. 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?
2. Integer e nt são o mesmo tipo certo? Então eu poderia no lugar de Integer colocar int?
3. 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?
Desculpa por essas dúvidas meio bestas...
Valeu quem puder ajudar!
Abraços!