Encapsulamento eh utilizado geralmente com a utilizacao de metodos set e get . O que se faz eh deixar todos os dados privados e fornecer apenas metodos do tipo set e get para manipula-los . Isso eh feito por varios motivos . Um motivo simples eh evitar complicacoes como dados recebendo valores indevidos . Por exemplo , se um dado eh um inteiro que soh deve receber valores entre um determinado intervalo eh possivel que sendo acessado de fora se coloque o valor que se quiser dentro dele , porem se ele for privado e se tiver que obrigatoriamente utilizar um metodo tipo setIntValue() este metodo podera tomas as devidas precaucoes para que o inteiro nunca receba um valor indevido . Outro caso semelhante eh ter um vetor (Vector) destinado a Strings . Se este for publico qualquer acesso externo pode colocar qualquer tipo de objetos dentro dele o que pode gerar problema quando algum outro metodo interno da classe tentar acessa-lo a procura de Strings que nao estao lah . Mas o principal motivo para o encapsulamento estah relacionado a projetos . Digamos que eu faco uma classe que realiza uma serie de funcoes atraves de metodos que disponibilizei . Se eu for substituido por voce no projeto tu podes melhorar os algoritmos de resolucao das funcoes simplemente mudando a classe internamente , porem mantendo os mesmos metodos internos de acesso . Uma vantagem relacionada a este ultimo caso , eh algo que nao vejo muita importancia , a tal de propriedade intelectual . As pessoas passariam por projetos sem mostrar como fizeram as coisas mas permitindo que outras seguissem o seu trabalho bastando seguir os padroes de metodos de manipulacao da pessoa anterior . Mas isso jah nao faz mais muito sentido com a existencia de decompiladores java como o jad e o decafe por exemplo . Jah quanto a abstracao , trata-se de se livrar da complexidade de COMO as coisas estao sendo feitas . Se voce programa em assembly a abstracao eh minima se nao inexistente , uma vez que voce estah programando com mnemonicos das proprias instrucoes (os conjuntos de zeros e uns) que irao para o processador . Jah quando se programa com uma linguagem de alto nivel como java em que cada linha e/ou comando representam uma serie de intrucoes de maquina voce estah abstraindo a complexidade de como as coisas estao sendo feitas . Ainda mais quando a linguagem roda sobre um MAQUINA VIRTUAL , onde nao ha compromisso com o hardware . As Virtual Machines Java eh que se preocupam se estao sobre uma arquitetura onde inteiro tem 16 ou 32 bits , ou se a paginacao de memoria de um jeito ou de outro . Voce simplemente programa uma aplicacao que executarah da mesma forma em qualquer platafroma para a qual tenha sido desenvolvida a Java Virtual Machine (JVM) . ;-)
--- Ary Junior <[EMAIL PROTECTED]> escreveu: > Por favor, > > Algu�m a� poderia me dar o conceito de > Encapsulamento e Abstra��o? > > Valeu!!!!! > _______________________________________________________________________________________________ Yahoo! GeoCities Tenha seu lugar na Web. Construa hoje mesmo sua home page no Yahoo! GeoCities. � f�cil e gr�tis! http://br.geocities.yahoo.com/ ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP d�vidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------
