Aula 02 - Classes e Métodos Java

Sobre a interface do Eclipse
Vamos começar esta segunda aula conhecendo um pouco mais sobre a interface do Eclipse.
A referência oficial para a Interface com o usuário do Eclipse está aqui.
De volta ao Eclipse, a primeira coisa que notamos é que ele tem memória! Abre exatamente da forma que o deixamos da última vez.
Quando o Eclipse é carregado, ele nos apresenta uma espécie de bancada de trabalho (Workbench), Esta bancada é composta de algumas áreas que vamos explorar um pouco na sequência, mas a principal delas, claro, é a do Editor.
Um duplo click na aba do arquivo sendo editado, maximiza a janela do Editor fazendo-a ocupar toda a área da bancada de trabalho. Vamos fazer isso, e comentar um pouco mais sobre as facilidades que o editor de código do Eclipse oferece.
Além daquelas mais básicas como colorir o código, separando as palavras chave da linguagem do restante do código, identificando os comentários, os símbolos e outras partes do código, edentação e formatação automática. Existem vários auxílios visuais, como por exemplo: indicador de que o arquivo foi alterado mas não foi salvo, indicadores de erros e alertas, indicadores de fechamento de blocos, e muitos outros.
Para mudar as configurações do Eclipse em geral, normalmente existe mais de uma opção. Como exemplo, vamos alterar uma característica do editor que vai ser necessária, principalmente quando for necessário usar o modo de debug. Exibir o número das linhas do código.
Para isso, temos duas opções:
  1. Da barra de Menu, "Window" » "Preferences..."
  2. Na opção "General" » "Editors" » "Text Editors", marque o checkbox "Show line numbers".
  1. CTRL+3
  2. Digite: "line numbers"
  3. ENTER
Usando esta última opção, temos:
E como resultado:

Áreas de trabalho da bancada do Eclipse
Vamos agora explorar um pouco as demais áreas do Workbench do Eclipse.
A primeira informação importante a respeito destas áreas, é que o conteúdo, formato e localização delas, não é fixo. Você pode customizar tudo ao seu gosto.
Vamos elencá-las aqui, usando a configuração default.
  1. Área de topo 1 - Barra de Menu
  2. Área de topo 2 - Barra de Ferramentas
  3. Área esquerda com o "Visualizador de Projeto ou Pacote"
  4. Área direita com ao "Lista de tarefas e a Visão macro da Classe"
  5. Área de baixo com vária abas informativas
  6. Área de rodapé com informações complementares
Cada uma destas áreas pode ser configurada para exibir uma ou mais Visões (Views), a distribuição destas áreas e os seus respectivos conteúdos, vão compor uma Perspectiva (Perspective) do Eclipse para uma tarefa específica. A perspectiva Java por exemplo, visa facilitar o processo de codificação. Uma outra grande vantagem do Eclipse, é que você pode criar e salvar novas perspectivas totalmente personalizadas.
A título de exemplo, vamos abrir a perspectiva "Java Browsing" e observar como são distribuídas as views que a compõem pela área de trabalho do Eclipse.
Minha sugestão é que você procure alterar esta perspectiva de forma semelhante (não necessariamente igual), ao exemplo abaixo, e salvá-la com o seu nome para uso futuro.

De volta ao Java
Convém falar sobre alguns símbolos especiais da linguagem Java.
  • ; - delimitador de comando
  • { e } - delimitadores de bloco
  • ( e ) - delimitadores de parâmetros de métodos
  • // - início de comentário
  • /* e */ - delimitadores de bloco de comentário
  • = - operador de atribuição

Métodos Java
Falando em termos de orientação a Objetos, um método representa uma operação num objeto em particular. Sendo um objeto uma instância de uma Classe, quando definimos uma Classe, definimos os seus atributos através de variáveis e seu comportamento através de métodos.
Aqui está um exemplo de uma típica declaração de método em Java:
Para declarar um método, os únicos elementos necessários são: o tipo de retorno, o nome do método, um par de parênteses e um corpo delimitado por chaves.
De maneira mais formal, seguem todos os elementos que podem vir a compor a declaração de um método em Java:
  1. Modificadores tais como: publicprivate, e outros que você verá no futuro.
  2. O tipo de dado retornado pelo método, ou void se o método não retornar um valor.
  3. O nome do método seguindo as regras de nomes de campos, mas com uma convenção um pouco diferente.
  4. A lista de parâmetros separados por vírgula, precedidos dos seus respectivos tipos de dado, delimitados por parênteses, (). Se não houver parâmetros, deve-se usar, os parenteses vazios.
  5. Uma lista de possíveis exceções, que você também verá no futuro.
  6. O corpo do método, com todo o seu código delimitado por chaves, incluindo a declaração de variáveis locais ao método.

De volta ao nosso projeto
Voltando à nossa Classe Pessoa, já havíamos criado um método construtor para inicializar as instâncias do objeto Pessoa com valores default. Vamos agora tratar dos métodos "getter" e "setter" responsáveis por expor as características do objeto instanciado. Não vamos discutir aqui a questão de expor a implementação de um objeto para outras Classes em relação aos princípios de Orientação a Objetos.
Métodos "getter" e "setter" são usados para recuperar e manipular variáveis privadas de uma Classe diferente. Um método "getter", como o nome sugere, recupera o atributo de mesmo nome. Um método "setter" permite atribuir um valor ao atributo de mesmo nome.
Vamos começar pelo método "getNome", assim:
Repare que imediatamente após salvar o código alterado, os conteúdos das Views "Package Explorer" e "Problems" são alterados de acordo. Na primeira, a referência ao novo método surge. E na segunda, a referência ao alerta de falta de uso do atributo "nome" desaparece, enquanto a referência ao mesmo tipo de alerta para o atributo "maxLivros" permanece.
Para criar o próximo método, vamos usar a facilidade de "completar o código" que o Eclipse nos dá, assim:
Com esta combinação, o Eclipse nos dá uma matriz para a criação de um método público. Na sequência, usando a tecla TAB, vamos alterando os próximos elementos da matriz fornecida, assim:
Então depois de preencher: o tipo de retorno, o nome, o parâmetro e teclar TAB mais uma vez, estamos prontos para digitar o código que vai compor o método.
Neste caso, uma simples atribuição.
Apesar de ter sido usada a facilidade de "completar código" do Eclipse, estes dois primeiros métodos foram criados praticamente de forma manual. No entanto, O Eclipse possui uma facilidade ainda maior neste sentido, podendo gerar os métodos "getters" e "setters" automaticamente para nós. Vamos fazer uso desta facilidade para gerar os métodos para o atributo "maxLivros", assim:
Na Janela apresentada, selecionamos os campos para os quais queremos gerar os métodos e acionamos o botão "OK".
E o Eclipse gera os métodos para nós, assim:
Existem algumas diferenças entre os métodos get e set que nós criamos e estes últimos criados automaticamente pelo Eclipse: a primeira é o tipo de dado sendo tratado. A segunda é o uso do qualificador "this", que indica a instância corrente do objeto, que é um comportamento padrão, por isso não o usamos anteriormente. Outro detalhe é que o eclipse usa como nome da variável do parâmetro do método "set", o mesmo nome da variável da classe, assim:
Revisando, uma Classe Java deve conter Atributos e Métodos, definindo suas Características e seu Comportamento:
  1. Campos de dados
  2. Métodos Construtores para criar objetos
  3. Métodos getters e setters para trabalhar as características do objeto
  4. Métodos de comportamento. A lógica de negócio propriamente dita

O Eclipse nos ajuda
O Package Explorer do Eclipse, permite uma visão esquemática da Classe, com seus elementos.
Reparem que se for retirado o qualificador "this" na instrução de atribuição do método "setMaxLivros", um alerta é exibido.
Isto se deve ao fato de o Java não saber mais se se trata de um atributo da classe ou uma variável local. Para evitar este problema, podemos manter o nome da variável do parâmetro igual ao do atributo retornando o qualificador "this", ou mudar o nome da variável do parâmetro.
Para manter o padrão usado no atributo "nome", vamos usar esta segunda opção.
A esta altura, você deve ter a classe construída desta forma:
Caso exista alguma diferença, volte e faça uma revisão nas duas primeiras aulas.

Nenhum comentário:

Postar um comentário