Aula 01 - Objetos e Classes Java

Objetos
Objetos no mundo real são facilmente identificáveis: conceitualmente falando, pessoas, carros, bicicletas, gatos, são todos objetos, com características diferentes. No universo da programação, objetos são uma coleção de peças de software que possuem estado e comportamento relacionados. Neste contexto, Classes são plantas baixas ou protótipos, a partir das quais, os objetos são criados.
Classes Java
Uma Classe Java que pode servir de base para criar e atuar em objetos do tipo "bicicleta".

O que é um projeto Java?
Mas em bom Português, o que é um projeto Java? Podemos dizer a grosso modo, que um projeto Java, nada mais é do que uma estrutura de diretórios, onde são armazenados os códigos fonte na linguagem Java (envolvendo as funcionalidades propriamente ditas e os seus testes) e os bytecodes resultantes do processo de compilação.
Ao final do processo de desenvolvimento de uma aplicação Java, esta estrutura de diretórios é empacotada num arquivo ZIP (podem ter extensões diferentes, mas são arquivos no formato ZIP). Este pacote é então copiado para um diretório específico do servidor de aplicações, e lá é descompactado, sendo os bytecodes direcionados para pastas específicas do servidor, ficando então a aplicação Java disponível para uso. Este é o processo conhecido como "deploy de uma aplicação".
A estrutura de um projeto Java, vai depender da Framework de desenvolvimento adotada e da complexidade do Projeto. Existem vários exemplos de acordo com diferentes objetivos e níveis de complexidade aqui. Mas para a grande maioria dos casos, mesmo em empresas de grande porte, uma estrutura simples de projeto, contemplando uma única aplicação com várias funcionalidades é suficiente. Para as nossas necessidades durante o curso, vamos adotar uma estrutura mais simples, assim:
src/Contendo os códigos fonte e demais recursos necessários a Aplicação
test/Contendo os códigos fonte e demais recursos necessários aos Testes da Aplicação

O que é um pacote dentro de um projeto Java?
Os nossos arquivos fonte, estarão portanto localizados em algum lugar nesta estrutura de diretórios, agrupados por tipo e funcionalidade. Os vários tipos de arquivos Java que compõem um projeto se relacionam. Para que estes arquivos se localizem uns aos outros, existe uma estrutura de nomenclatura que associa nomes qualificados à localização física dos arquivos. Então, o diretório que agrupa arquivos de um determinado tipo ou funcionalidade num projeto Java, é chamado de "pacote" (package).
Então, por exemplo: um programador, criando uma funcionalidade chamada "tutorial" para um domínio chamado "java.iniciantes.com", deverá identificar o diretório onde estão localizados os arquivos que compõem a aplicação com o seguinte nome de pacote:
"com.iniciantes.java.tutorial"
Este nome de pacote, se traduz fisicamente na seguinte estrutura de diretórios:
"src\com\iniciantes\java\tutorial"
Considerando o que foi visto acima, segue um exemplo de uso de um objeto da classe Bicicleta:

A nossa Aplicação
Durante o curso, estaremos desenvolvendo uma aplicação simples para controle de empréstimo de livros de uma "biblioteca entre amigos". A aplicação vai registrar livros, amigos e quais amigos pediram emprestado quais livros.
Para tal, vamos usar 3 classes:
  • Pessoa: nome e numero máximo de livros que esta pessoa pode pedir emprestado.
  • Livro: título, autor, pessoa com quem está emprestado.
  • Biblioteca: lista de livros e lista de pessoas que podem emprestar livros.

Criando um projeto Java no Eclipse
Para o nosso curso, vamos criar um projeto chamado: JavaParaIniciantes.
Passo a passo:
Após abrir o Eclipse, vamos usar: File » New » Java Project
Repare que se você, assim como eu, instalou e configurou a versão mais atual do JDK, pode ocorrer algum tipo de incompatibilidade.
Se for este o caso, escolha uma versão mais antiga que seja compatível.
Agora, vamos aceitar as opções default e finalizar.
Pronto! O seu projeto Java deve estar criado.
Mas repare entretanto, que há um problema reportado na aba "Problems", na parte de baixo da tela
Podemos sempre tentar resolver os problemas usando: Botão direito do mouse sobre a linha do problema » Quick Fix
Mas neste caso, isto não vai ser suficiente.
Vamos fazer da seguinte forma: Botão direito do mouse sobre o projeto » Properties
Na opção "Java Build Path", na aba "Libraries", vamos selecionar a JRE disponível e acionar o botão "Edit"
Vamos escolher a versão adequada do ambiente de execução.
E acionar o botão "OK"
Com isso o problema reportado deve desaparecer.
A estrutura de diretórios que dá suporte ao nosso projeto neste momento é a seguinte:

Criando um pacote no Eclipse
Com o projeto criado, devemos agora criar o pacote que irá agrupar seus componentes.
Passo a passo:
Vamos selecionar a pasta "src" e usar: Botão direito do mouse » New » Package
Seguindo o padrão de nomenclatura anteriormente citado, vamos criar o pacote com o seguinte nome:
"com.iniciantes.java.tutorial"
Agora nós temos o pacote criado:

Criando uma Classe no Eclipse
Vamos agora criar a primeira Classe do nosso pacote.
Passo a passo:
Vamos selecionar o pacote "com.iniciantes.java.tutorial" e usar: Botão direito do mouse » New » Class
Seguindo a descrição da nossa aplicação, vamos começar pela Classe Pessoa.
Agora nós temos a Classe criada:
A linha identificada com o número 1 registra o nome do pacote onde a classe está localizada.
A linha identificada com o número 2 registra a assinatura da Classe.
A estrutura de diretórios que dá suporte ao nosso projeto neste momento é a seguinte:
Com a classe pessoa criada, o próximo passo é: definir os atributos que vão caracterizar os objetos pertencentes a esta Classe.
Repare o asterisco antes do nome do arquivo. Ele indica que o arquivo foi alterado e ainda não foi salvo.
A linha identificada com o número 1 é um comentário simples (uma única linha).
As linhas identificadas com os números 2 e 4 são as definições dos atributos propriamente ditos.
O grupo de linhas identificado com o número 3 é um comentário composto de várias linhas.
Tipos de dados primitivos do Java:
TipoDescrição
booleanPode assumir o valor true ou o valor false
charCaractere em notação Unicode de 16 bits. Serve para a armazenagem de dados alfanuméricos. Também pode ser usado como um dado inteiro com valores na faixa entre 0 e 65535.
byteInteiro de 8 bits em notação de complemento de dois. Pode assumir valores entre -27=-128 e 27-1=127.
shortInteiro de 16 bits em notação de complemento de dois. Os valores possíveis cobrem a faixa de -2-15=-32.768 a 215-1=32.767
intInteiro de 32 bits em notação de complemento de dois. Pode assumir valores entre -231=2.147.483.648 e 231-1=2.147.483.647.
longInteiro de 64 bits em notação de complemento de dois. Pode assumir valores entre -263 e 263-1.
floatRepresenta números em notação de ponto flutuante normalizada em precisão simples de 32 bits em conformidade com a norma IEEE 754-1985. O menor valor positivo representável por esse tipo é 1.40239846e-46 e o maior é 3.40282347e+38
doubleRepresenta números em notação de ponto flutuante normalizada em precisão dupla de 64 bits em conformidade com a norma IEEE 754-1985. O menor valor positivo representável é 4.94065645841246544e-324 e o maior é 1.7976931348623157e+308
A Classe String:
java.lang.StringRepresenta Strings de caracteres.
Uma das vantagens do uso do Eclipse, é que ele avalia o que é digitado dinamicamente, e quando o arquivo é salvo ele exibe erros e alertas na aba "Problems".
Neste caso, repare que as palavras em Português estão sublinhadas em vermelho. Isto ocorre porque o dicionário padrão é em Inglês.
Além disso, existem dois alertas sobre a criação de variáveis que não estão sendo utilizadas.
Sobre os alertas, eles desaparecerão na sequência, quando forem criados métodos que usam as variáveis criadas.
Já sobre o dicionário, vamos aprender a configurá-lo para Português.
Para isso, o primeiro passo é conseguir um dicionário em Português no formato adequado. Na verdade, é simples, um arquivo texto com uma palavra por linha. Eu tenho uma versão deste arquivo que você pode baixar daqui.
Descompacte o arquivo e coloque-o no diretório onde o Eclipse foi instalado.
Agora use: Window » Preferences
Na tela seguinte, selecione: General » Editors » Text Editors » Spelling
Altere "Platform dictionary" para "none". E em "User defined dictionary" localize e selecione o arquivo que você baixou.
Com isso, basta fechar e abrir novamente o arquivo, que a maioria das palavras será reconhecida. Aquelas que não forem, devem ser incluídas no dicionário, assim:
Continuando com a nossa Classe, é hora de criar o método construtor.
O método construtor de uma Classe é chamado sempre que uma nova instância de objeto daquela classe é criada. Um método construtor é igual a qualquer método público, exceto que ele usa o mesmo nome da Classe e não pode retornar nenhum valor. Usando uma outra Classe Pessoa como exemplo, um método Construtor ficaria assim:
Neste exemplo, o método construtor não faz nada, mas no nosso caso, vamos usá-lo para inicializar os objetos do tipo "Pessoa" criados com valores default.
Outra vantagem do uso do Eclipse, é que ele pode completar o código que digitamos. Por exemplo: se digitamos um abre chaves "{" e teclamos "Enter", ele cria e identa um fecha chaves "}" automaticamente.
Outra forma de completar o código no Eclipse, é digitar parte de um nome definido e usar: "CTRL" + "Espaço". Esta ação apresenta uma lista de nomes definidos que começam com a parte digitada. Bastando escolher da lista o item desejado e teclar "Enter".
Isso completa a nossa primeira aula. Tendo criado a Classe Pessoa, com seus atributos e método Construtor. Os alertas serão resolvidos na próxima aula quando os métodos get e set para os atributos da Classe forem criados.

Nenhum comentário:

Postar um comentário