Dei uma lida na apostila da caelum e fiquei com muita duvida…pesquisei na net e queria ter certeza…;
Como eu tenho mais contato com pascal,vou explicar como se fosse pascal…,
O encapsulamento eh a mesma coisa que retirar parte do codigo do programa principal(Public Class) e chama-los numa “funcao”(uma outra Class qualquer)…,
Dei uma lida na apostila da caelum e fiquei com muita duvida...pesquisei na net e queria ter certeza...;
Como eu tenho mais contato com pascal,vou explicar como se fosse pascal...,
O encapsulamento eh a mesma coisa que retirar parte do codigo do programa principal(Public Class) e chama-los numa "funcao"(uma outra Class qualquer)...,
Newbie agradecido =D
Encapsulamento é vc "proteger" atributos de serem acessados diretamente.
Um exemplo basico, suponha que vc tenha um atributo do tipo int chamado idade. E que vc deseja que esse atributo seja validado antes de atribuir qualquer valor á ele.
Entao vc encapsula a variavel com métodos getters e setters. Tipo assim:
privateintidadepublicvoidsetIdade(intidade){if(idade>=20){this.idade=idade;// aqui vc faz a validação, verifica se idade e maior igual á 20.}}publicintgetIdade(){returnthis.idade;}
V
victorhsn
Não… Encapsulamento é você proteger seus dados (variaveis de instancia) com acessos diretos.
Observe que você acessa ela diretamente, mas se você fazer isso
classPessoa {
privateStringnome;
}
Você não tem acesso a ela diretamente fora da mesma classe, somente atravês de metodos de acesso por isso dá uma lida em “javabean” você vai ver os métodos getters e setters que são utilizados para acessar e modificar. E também ler sobre modificadores de acesso.
Encapsulamento vai um pouco além de proteger campos privados.
Encapsulamento é você esconder do usuário da classe (outra classe) a sua implementação, seja de um método ou de um construtor. Isso quer dizer que, por exemplo, não importa o que um determinado método faz internamente, o que importa é que ele funciona, ou seja, que faz o que se propõe a fazer. Um exemplo seria o método compareTo da interface Comparable. Você precisa implementar o método de forma que ele cumpra o contrato da interface. O que tem dentro dele, não importa, desde que o contrato seja seguido.
[]´s
evertonsilvagomesjav
Sim tem outros tipos de encapsulamento tb, com oum PrintWriter encapsular um BufferedWriter que por sua vez encapsula um FileWriter, mas acho que ele estava falando disso.
davidbuzatto
Isso que você está falando é um design pattern, o Decorator.
Não existem “tipos de encapsulamento”, encapsulamento é encapsulamento.
[]´s
Nicolas_Fernandes
evertonsilvagomesjava:
Encapsulamento é vc "proteger" atributos de serem acessados diretamente.
Um exemplo basico, suponha que vc tenha um atributo do tipo int chamado idade. E que vc deseja que esse atributo seja validado antes de atribuir qualquer valor á ele.
Entao vc encapsula a variavel com métodos getters e setters. Tipo assim:
privateintidadepublicvoidsetIdade(intidade){if(idade>=20){this.idade=idade;// aqui vc faz a validação, verifica se idade e maior igual á 20.}}publicintgetIdade(){returnthis.idade;}
Validação no próprio POJO? Não fica meio incoerente isso?
Não seria mais coerente fazer classes POJO plano, nas quais você só tem o encapsulamento dos atributos de uma entidade do BD, cujas validações são feitas numa classe Service?
evertonsilvagomesjav
Nicolas Fernandes:
evertonsilvagomesjava:
Encapsulamento é vc "proteger" atributos de serem acessados diretamente.
Um exemplo basico, suponha que vc tenha um atributo do tipo int chamado idade. E que vc deseja que esse atributo seja validado antes de atribuir qualquer valor á ele.
Entao vc encapsula a variavel com métodos getters e setters. Tipo assim:
privateintidadepublicvoidsetIdade(intidade){if(idade>=20){this.idade=idade;// aqui vc faz a validação, verifica se idade e maior igual á 20.}}publicintgetIdade(){returnthis.idade;}
Validação no próprio POJO? Não fica meio incoerente isso?
Não seria mais coerente fazer classes POJO plano, nas quais você só tem o encapsulamento dos atributos de uma entidade do BD, cujas validações são feitas numa classe Service?
LOL, isso foi um simples e humilde exemplo pro cara entender.
Nicolas_Fernandes
evertonsilvagomesjava:
Nicolas Fernandes:
evertonsilvagomesjava:
Encapsulamento é vc "proteger" atributos de serem acessados diretamente.
Um exemplo basico, suponha que vc tenha um atributo do tipo int chamado idade. E que vc deseja que esse atributo seja validado antes de atribuir qualquer valor á ele.
Entao vc encapsula a variavel com métodos getters e setters. Tipo assim:
privateintidadepublicvoidsetIdade(intidade){if(idade>=20){this.idade=idade;// aqui vc faz a validação, verifica se idade e maior igual á 20.}}publicintgetIdade(){returnthis.idade;}
Validação no próprio POJO? Não fica meio incoerente isso?
Não seria mais coerente fazer classes POJO plano, nas quais você só tem o encapsulamento dos atributos de uma entidade do BD, cujas validações são feitas numa classe Service?
LOL, isso foi um simples e humilde exemplo pro cara entender.