cmdmss:
Senhores,
obrigado pelos comentários.
Porem a minha duvida não vem de como resolver o exercício… ou tudo mais… estou começando com Java agora e estou apanhando pra xuxu… mas enfim.
A minha duvida real é a seguinte.
Nesta classe, porque eu tenho estes vários métodos que retornam nada mais nada menos, por exemplo… este aqui
public Estado getEstado() {
return estado;
}
que valor é este estado que ele esta retornando??? De onde vem??
e outra… o que é isso?
public void setPai(No pai) {
this.pai = pai;
}
porque este método esta pegando o parâmetro pai e jogando para this.pai?? O que isso quer dizer??
Inté!
Certo, vamos lá…
Existe uma especificação da plataforma Java chamada JavaBeans, que nada mais é que um “guia” de boas práticas para programação…
Essa classe que você apresentou é um Bean, uma classe que segue certas especificações JavaBeans…
No caso de um padrão MVC(Model, View e Controller) essa classe se encaixaria como Model(se você estudar este padrão de projeto vai entender do que falo, é um conceito relativamente fácil, tem a ver com a arquitetura)…
Os atributos da sua classe estão todos declarados como private e sendo assim, só são acessíveis para métodos que estão dentro da mesma classe. Outras classes não tem acesso direto aos atributos, não podendo consultar seus valores e muito menos alterá-los. Isso se chama encapsulamento, e é assim que garantimos a integridade dos atributos dos objetos. Caso você tivesse declarado estes atributos como public, os mesmos seriam acessíveis a qualquer classe.
E os métodos get e set servem basicamente para alterar os atributos de maneira segura, garantindo a consistência dos dados contidos nos atributos da classe em questão.
Por fim, o this serve para você se referenciar à variável pai no escopo da classe. Pois ao criar este método setPai, você definiu uma variável pai que só será vista no escopo deste método, ela só irá existir enquanto este método estiver rodando, e logo após o final da execução do mesmo, ela morre.
Ou seja, digamos que de fora da sua classe No você quer “setar” o atributo pai desta mesma classe. Para isso você acessa o método setPai, passando no parâmetro do método um objeto do mesmo tipo do atributo que você precisa setar. Na linha this.pai = pai; ele diz que o atributo que você passou ao método(que no caso seria o pai após o sinal de igual) será alocado no pai da classe apontado pelo comando this.pai.
Resumindo: O this é usado para se referir a atributos de escopo geral, atributos que estejam num escopo mais abrangente que apenas o método…
Recomendo a você estudar fundamentos da orientação a objetos, modificadores de acesso e especificação JavaBeans. É o básico do básico pra você começar a desenvolver em Java.
