ambiente Java se incumbe de desalocar a memoria que nao esta mais sendo utilizada.Fundamentos da Programacao Orientada a Objetos A Programacao Orientada a Objetos pressupoe a utilizacao de alguns fundamentos e conceitos basicos e, consequentemente, possui uma terminologia bastante caracteristica.Objetos Desde muito pequenos estamos acostumados a lidar com objetos. Usando a abstracao conseguimos associar objetos que possuem caracteristicas em comum e, desta forma agrupa-los em categorias, por exemplo, com o tempo aprendemos que um objeto que possui quatro rodas, carrega passageiro e tem um volante e denominado carro. Depois de certo tempo acabamos por descobrir que as partes componentes de um carro tambem sao objetos, ainda aprendemos que o objeto carro e, na realidade, a especializacao de um objeto veiculo.Objetos sao, em ultima instancia, todas as coisas que podemos identificar no mundo real ou imaginario. Como exemplos de objetos, podemos citar carro, casa, arvore, fada e duende.Os objetos nao sao estaticos, eles sao capazes de realizar tarefas e interagir com o meio atraves do envio e recebimento de estimulos capazes de alterar seu estado. Para a POO (Programacao Orientada a Objetos), um objeto e uma entidade unica que reune atributos e metodos, ou seja, reunem as propriedades dos objetos e as reacoes a estimulos que sofre.As propriedades de um objeto sao chamadas de atributos, ou ainda de variaveis de instancia, e armazenam as caracteristicas em comum que o objeto conhece sobre si proprio. Metodos sao os nomes dados para as tarefas que um objeto e capaz de executar.Classes Uma classe e um projeto de um objeto, descreve um grupo de objetos com os mesmos atributos e metodos. As classes podem ser definidas como formas de fazer objetos, definindo o que os objetos sabem e o que sao capazes de executar. Por analogia, deduzimos que os objetos sao a materializacao das classes, ou ainda que os objetos sao instancias de uma classe e, consequentemente, seguem as regras estipuladas por ela.Representacao grafica da classe Existe uma forma grafica de representar uma classe a fim de facilitar a sua compreensao, esta forma e utilizada no Diagrama de Classes da UML (Unified Modeling Language). Em linhas gerais a representacao grafica consiste em dividir horizontalmente um retangulo em tres partes, sendo que a parte superior devera aparecer o nome da classe de forma centralizada; a parte intermediaria tera uma lista com os atributos da classe, enquanto que na parte inferior aparecerao os metodos.O nome da classe e importante para que ela seja identificavel e, portanto possa ser utilizada na criacao de instancias dos objetos.Os atributos possuem um tipo de dados especifico (inteiro, real, uma classe e etc). Opcionalmente os atributos podem ser inicializados com valores padroes, comumente chamados de default.Os metodos sao compostos por seus respectivos nomes, uma lista de argumentos (opcional) e o tipo de dados que retorna. A este conjunto de informacoes e dado o nome de assinatura do metodo. Os argumentos de um metodo devem obrigatoriamente possuir um nome e um tipo de dados.Os modificadores de visibilidade sao usados para adicionar seguranca de acesso aos atributos e metodos de um objeto, desta forma este