Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Significa que essa linguagem é uma das poucas que atende a toda a procura
existente no mundo da tecnologia; qualquer sistema pode ser implementado
com Java.
O Java foi criado em 1991 baseado em outra linguagem de programação
denominada de C. a empresa que criou o java foi a Sun Microsystems.
Duplicação de código
Gestão de memória
Acoplamento do sistema operacional ao código-fonte
Reaproveitamento de código
Evolução da linguagem limitada e cara
E várias outras dificuldades que não focaremos neste livro.
Com o bom produto em mãos o time da Sun se voltou para o mundo web,
que crescia absurdamente na época e ainda era pouquíssimo explorado,
essa abordagem foi melhor recebida pelo mercado. Com os applets o java
possibilitava o utilizador web na década de 90 a realizar tarefas mais
complexas e não apenas renderizar HTML com os navegadores comuns
faziam,era a primeira idéia de aplicativos surgindo.
As applets foram melhores aceitas, no entanto o que realmente deu certo foi
o Java voltado para desenvolvimento de sistemas.
Página 1 | 51
JVM – Plataforma idependente do Sistema Operacional
Comunidade ativa – Manutenção da linguagem com melhorias
Incentivo Open-source
Orientação a objetos – Modo de pensar diferente e criativo
O sucesso do java foi tão grande que gigantes da tecnologia, como
IBM,Oracle,Apple,Microsoft passaram a aceitar e contribuir com o Java, era
uma evolução significativa e não retornara mais.
T
emos diversas ferramentas que são necessárias estarem
configuradas e instaladas no seu computador para que você possa
seguir este livro com mais eficácia, listaremos aqui quais são, para
que servem e como configurá-las basicamente.
O java não é das linguagens mais leves do mercado, é pesada logo qualquer
ambiente de desenvolvimento que você montará será requerido uma
máquina razoável, abaixo encontramos atributos de uma máquina que você
conseguirá desenvolver em java tranquilamente, tanto para web quanto para
desktop.
Página 2 | 51
Sistemas Operacionais:
Todos
32 ou 64 bits
Memória:
2Gb acima
HD:
1GB livre
Página 3 | 51
E Ssas três siglas estará em sua boca durante toda sua jornada com Java,
principalmente a JVM!
Esses três itens são instalados com dois softwares diferentes, na verdade
você fará um download da JRE e do JDK.
Página 4 | 51
3 – Realizar o download da JRE, Server JRE e JDK.
4 – Outro ponto importante é que para sua jornada com Java será necessário
em alguns casos realizar o LogIn no site da oracle para fazer algum
download, sabendo disso você já deve criar seus acesso neste momento.
Página 5 | 51
1. JRE
2. Server JRE
3. JDK
A ordem é importante para que não haja nenhum problema durante a
instalação dos pacotes.
Após a instalação dos softwares citados neste capítulo , caso você não tenha
erro algum podemos testar a instalação/configuração para lhe garantir que
você está pronto para seguir adiante.
O resultado deve ser algo parecido com a imagem acima, se não for
exatamente igual não há problema significa apenas que você está com uma
versão diferente da minha. O que não nos trará problemas para seguir com
este livro.
Página 6 | 51
IDE para desenvolvimento
Java
O PODER DO ECLIPSE PARA FACILITAR SEU DESENVOLVIMENTO
C
om o java instalado e configurado corretamente você já pode iniciar
seus desenvolvimentos para qualquer tipo de sistema que possa
imaginar. Neste capítulo trataremos exclusivamente sobre a
instalação do Eclipse que será provavelmente a sua IDE para
programação com java pelo resto de sua vida.
Página 7 | 51
em continuar, no entanto sugiro fortemente que nos acompanhe com o
eclipse pois passarei dicas e atalhos que o eclipse poderá lhe ajudar no seu
desenvolvimento.
Página 8 | 51
No meu caso descompactarei o eclipse em C:\CarreiraJava e sugiro que faça
o mesmo.
Neste último passo acesse o eclipse.exe e teremos a IDE aberta para nosso
uso:
Página 9 | 51
Você deve selecionar uma workspace. Workspace é o diretório principal de
seus projetos , toda a infra-estrutura de componentes para seu sistema deve
ser instalado no mesmo lugar e a workspace é exatamente para centralizar
todo seu desenvolvimento no Eclipse.
Você pode ter diversas workspace, quantas desejar mas sempre que abrir o
eclipse deve definir uma com que vai trabalhar no momento.
Página 10 | 51
Feche o Welcome e por fim você terá seu ambiente de desenvolvimento.
I
niciaremos nosso desenvolvimento Java criando um Hello World, que
nada mais é que rodar o sistema para apresentar uma mensagem
definida para o cliente. Este não é um exemplo produtivo e nem que vá
usar durante sua carreira , mas começamos por ele para lhe dar uma boa
base sobre como criar projetos como executá-los no Eclipse.
Página 11 | 51
Com o eclipse aberto do seu lado esquerdo temos a sessão “Project
Explorer”, é aqui que você verá todos os seus projetos e encontrará seus
programas desenvolvidos.
Página 12 | 51
Na próxima aba digite o nome do projeto, selecione a opção Use Default JRE
e clique em Finish.
Página 13 | 51
Provavelmente ao clicar em Finish, você receberá um alerta do Eclipse
solicitando a alteração de sua perspectiva por se tratar de um projeto Java e
não Web que é o padrão da versão do Eclipse que escolhemos, clique em
yes e seguiremos em frente,
Página 14 | 51
Abra seu projeto e você verá um diretório chamado src, este é o diretório
onde você criará seus arquivos .java que serão aqui chamados de
classes(veremos no próximo capítulo o que são exatamente classes).
Página 15 | 51
Um novo wizard se abrirá para você escolha as opções para essa nova
classe criada.
Neste momento você verá a sua classe criada no Project explorer e sua
classe aberta no main explorer do eclipse
Página 16 | 51
EXPLICANDO O CÓDIGO:
Página 17 | 51
Experiente agora alterar o texto para qualquer valor que desejar e rodar
novamente a classe!
Um pouco sobre
Orientação a Objetos
A MELHOR MANEIRA DE ESCREVER SEUS SISTEMAS
E
xistem hoje algumas maneiras de desenvolvermos sistemas, dentre
as mais conhecidas são as formas procedurais e orientado a
objetos. O java apostou muito ao longo de sua história que a
Orientação a objetos fosse usado em todos os sistemas
desenvolvidos em sua plataforma.
A forma procedural de modelar seu sistema não será abordada aqui, o nosso
objectivo é apenas a Orientação a Objetos.
Este assunto é tão complexo que renderia um livro exclusivo sobre o assunto,
inclusive existem vários no mercado para sua apreciação, este capítulo
introduzirá você, caro leitor a este lindo mundo da programação orientada a
objetos.
Página 18 | 51
A orientação a objetos é um paradigma de desenvolvimento de software que
muitos programadores ainda não sabem lidar em toda sua capacidade,
costumo dizer que ser um bom programador java se resume a programar
bem orientado a objetos, ou seja tenho absoluta certeza que conhecer e
aplicar a O.O é muito mais útil do que aprender qualquer linguagem de
programação. Claro que como O.O é apenas conceptual você precisará de
uma linguagem para implementar a O.O.
Você deve pensar em seu sistema para desenhar a modelagem para enfim
iniciar a programação em si, sempre pensando que o sistema crescerá e que
vários programadores poderão trabalhar em conjunto e que ele deve ser
facilmente mantido por outra pessoa e não só você. Situação complicada de
se obter em sistemas de grande porte.
Classe
Atributo
Método
Instância-Objeto
Classe é a representação sistêmica de uma entidade existente no mundo
real, ou seja a maneira de escrever código pensando no problema como no
mundo real. A classe contém atributos e métodos.
Sei bem que ainda não entendeu absolutamente nada, mas o conceito deve
ser gravado em sua mente e para isso vou descrever uma série de exemplos
que demonstrarão claramente como definir uma classe com seus atributos e
métodos.
Exemplo 1:
Imagina que você precisa criar uma classe para transcrever o ser humano
para linguagem de máquina(código fonte java), logo você pensaria quais são
as características que definem um humano e quais ações eles podem
executar. Você deve pensar neste momento em todas as ações que
naturalmente os humanos fazem e as características que naturalmente
Página 19 | 51
humanos tem, não devemos pensar nas anomalias causadas por fatores
externos. Com isso você pode chegar a uma conclusão parecida com o
exemplo abaixo:
Humano
o Cor da Pele – Atributo 1
o Cor dos olhos – Atributo 2
o Quantidade de braços – Atributo 3
o Quantidade de pernas – Atributo 4
o Andar – Método 1
o Respirar – Método 2
o Comer – Método 3
Claro que poderíamos identificar muitos mais atributos (características) e
métodos (ações), mas paramos por aí para seguir com a explicação.
Veja que o humano em geral pode ser definido por essas características e
ações descritas acima.
Veja que a classe Humano está definido e existem dois objetos desta classe
com os valores preenchidos, dando vida a esta classe.
Página 20 | 51
Exemplo 2:
Veja que temos uma definição da classe Conta Corrente com dois objetos
com seus valores definidos.
Neste momento você deve pensar em como fará o desenho do seu sistema,
quais entidades principais (classes) serão desenhadas.
Página 21 | 51
cliente se sinta satisfeito. Conversando com o cliente você obteve a seguinte
resposta:
Cliente
o Atributos:
Codigo
Nome
CPF
RG
Telefone
Departamento
Pedido
o Atributos:
Codigo
Titulo
Descricao
Nivel de urgência
Status
RelatórioGerencia
o Lista de pedidos (referência a uma outra classe)
o Email destino
o Codigo
o Data
Utilizador
o Nome
o Senha
o Cliente (referência a uma outra classe)
Atendente (veja que essa classe está igual a outra , este é o ponto que
melhoraremos depois)
Página 22 | 51
o Nome
o Senha
o Cliente
*Chamado=Pedido
*Chamado=Pedido e Usuario=utilizador
Num nível mais básico, esse que estamos, se você chegou a uma conclusão
parecida está ótimo. Mais tarde neste texto trataremos de alguns conceitos
de orientação a objetos mais complexos que cabem neste mesmo exemplo.
Tipificação de atributos
TIPOS PRIMITIVOS E NÃO PRIMITIVOS
A
tipificação adequada dos atributos é fundamental para o sistema,
decidir qual o tipo de estrutura que você armazenará o valor de um
atributo é uma tarefa que você sempre terá.
Página 23 | 51
(011)999999999. Já se preferir armazenar o valor desse atributo em um tipo
que aceita letras você facilmente trabalhará com estes parêntesis.
No java você definirá atributos que podem estar em qualquer bloco da sua
classe (blocos são definidos pelas chaves), os atributos de classes estão no
nível da classe, abaixo do public class.As definições destes atributos serão
feitas da seguinte maneira: <tipo><espaço><nome do atributo><ponto e
vírgula>, exemplo: int quantidadeFilhos;
Inserindo essa linha em uma classe Mae por exemplo você está
implicitamente dizendo que a quantidade de filhos dessa mãe que está
realizando um cadastro deverá ser um número inteiro e com um valor
limitado, o tipo int é naturalmente dessa forma.
-922337203685477808 até
long número inteiro 8 bytes 922337203685477807
Página 24 | 51
char caracteres 1 carácter
booleano(true ou
boolean false)
muitos
String caracteres caracteres
Página 25 | 51
Qualquer uso de um tipo não primitivo como o Date você deve fazer a
importação da classe-referência na sua classe.
Neste exemplo usamos o Date e importamos este Date com o
elemento import <caminho da classe>, mais tarde entenderemos mais
sobre caminhos de classes
o O Eclipse lhe ajudará com os imports, tudo que você digitar em
sua classe como tipo que é outra classe, ele vai te sugerir o
import com o caminho completo da classe. Faça um teste ,
insira a data de nascimento sem realizar o import e deixe o
eclipse fazer isso por você.
Uma boa prática de codificação é inserir comentários em sua classe,
explicando o que for necessário.
Os tipos complexos (não primitivos) não apenas já vêm com o Java como
você deverá criá-los no seu sistema. Lembra as nossas classes utilizador e
cliente do capítulo anterior? Agora vamos codificá-las para praticar sobre
tipos não primitivos:
Página 26 | 51
Veja que a relação entre as duas classes é feita pelo atributo usuario da
classe Cliente que é do tipo Usuario.
Página 27 | 51
Veja que o Eclipse já traz os possíveis atributos de Usuario dentro do atributo
usuario da classe Cliente.
Operações básicas da
matemática
ADIÇÃO, SUBTRAÇÃO, MULTIPLICAÇÃO E DIVISÃO COM JAVA
Operado
Operação r Significado Exemplo de Uso Resultado
Multiplicaçã
o * Multiplica qualquer número 2*3 6
Página 28 | 51
Página 29 | 51
Faça também estes testes adicionando mais valores, funciona perfeitamente!
“Existe um sistema que ajuda crianças com os sons das palavras e leitura, o
dono desse cliente solicita que você construa uma classe que faça qualquer
operação matemática báscia com dois valores”
Dado este problema vamos desenhar nossa classe calculadora, você deve
levar em consideração os atributos e métodos dessa classe.
Página 30 | 51
Programando a classe você chegou em algo parecido:
Definida a classe, agora vamos criar a lógica para resolver o problema que
nos foi solicitado, além destes métodos criados acima criaremos também o
main para que possamos testar nossa classe.
Página 31 | 51
Use todos os métodos neste main para que você aprenda o conceito de
atribuir valores aos atributos, chamar um método e imprimir frases complexas
na consola.
Faça testes chamando mais de um método, use este tempo para aprender
conceitos apenas com essa classe.
Página 32 | 51
Usaremos a classe Scanner para colher o que o utilizador digitará e
levaremos a responsabilidade de imprimir as frases nos métodos de cada
operação, ou seja a multiplicação imprimirá a frase de resultado a adição o
seu e assim por diante. Faça uma classe como a minha e faça seus testes.
Página 33 | 51
Note que a classe Scanner cria a pausa e o Java não executa a próxima linha
de código até que o utilizador tenha digitado o valor necessário.
Com o java é assim, sempre tem algumas classes que você possa utilizar
para resolver seu problema, se não tiver crie e compartilhe. Uma busca bem
feita na web sempre é importante antes de criar qualquer classe que já exista
na biblioteca do Java, essa Scanner por exemplo já vem com o java para ser
usada.
Página 34 | 51
*1: Não faça como eu e acerte os nomes dos métodos, escrevi subtrair
errado.
Decisões e Loops
DECIDINDO O MELHOR CAMINHO E PESQUISANDO ATÉ
ENCONTRAR
As decisões são os IFs e Elses que teremos em nosso sistema, sempre que
necessário escolher alguma opção use o if e else, literalmente if quer dizer
se e else quer dizer senão. Então basicamente é uma decisão, comparativo
entre dois elementos. Imagine uma classe Humano onde você deve saber
qual o género deste humano que o valor está armazenado no atributo
género, logo ( Se género=masculino então faça algo), (Se género=feminino
faça outra coisa), assim são as decisões em nosso sistema.
Nem todo atributo você deve comparar com “==”, isso depende basicamente
do tipo do atributo que você está comparando. Se o tipo for número a
comparação deve ser feito com ==, se for uma String deve ser comparado
com o método.equals(<segundo elemento>).A comparação pode ser feito
Página 35 | 51
com o conceito de diferente também, ou seja algo é diferente de outra coisa,
isso é feito pelo elemento responsável pela negação do java “!”, logo se a
comparação é com número usará o comparador !=, se for String basta
adicionar a negação no inicio !<string>.equals(segundo elemento).
Agora faremos com que o utilizador digite qual operação ele deseja realizar,
para isso adicionaremos um if que comparará o valor digitado pelo utilizador
e executará o método em questão.
Página 36 | 51
Veja que criei um atributo chamado operacao que armazena a operação que
o utilizador deseja realizar e fiz os ifs necessários para executar o método
correto.
Página 37 | 51
Os loops são as interações realizadas em seu código para encontrar algum
valor ou algum objeto, ou seja imagine que você tenha uma coleção de
carros e você deve encontrar o fusca azul. Basicamente você retirará um por
um da caixa até encontrar o que está procurando. Os loops são da mesma
maneira.
Usamos os loops para executar alguma ação até que alguma condição
continue sendo verdade, no nosso exemplo acima repito o ato de retirar a
miniatura da caixa até que não encontre o fusca azul.
while(<condição>){
<bloco do código>
Lê-se: enquanto uma certa condição for verdadeira , execute o seguinte bloco
de código.
Suponha que você deve incrementar um valor até que o mesmo seja igual a
10, com o while isso fica muito fácil, veja:
Página 38 | 51
Executando esse código temos o seguinte resultado:
Esse bloco de código dentro do while é para você usar para cumprir algum
requisito, logo você pode colocar dentro ifs elses e tudo que for necessário.
<bloco de código>
Le-se : para este bloco de código execute até que a condição x seja atendida.
Página 39 | 51
Veja que você não necessita escrever uma linha para incrementar seu
controlador.
Conhecendo os Arrays
TRABALHANDO COM VALORES ENCAPSULADOS EM UMA ÚNICA
VARIÁVEL
O
s arrays são listas de um único tipo efetivamente declaradas como
listas, isso quer dizer que você pode declarar em uma única
variável uma lista com posicional para seus valores. Você pode
armazenar uma lista de qualquer tipo do java, inclusive de tipos
complexos, pode ter um listagem de nomes de pessoas com 50 nomes em
uma única varíavel, pode ter uma lista de clientes em uma única variável e
pode ter uma lista de números da sorte em uma única variável. Perceba que
eu citei três arrays de três tipos diferentes.
Página 40 | 51
A declaração de um array em java é bem simples, a dificuldade é apenas
atribuir um tamanho inicial.Esse detalhe é fundamental, você já criará seu
array com a quantidade de valores definida assim o java alocará a sua lista
na memória reservando aquela quantidade de valores informada, ou seja use
com muito cuidado.
Neste caso você poderá ter essa lista com 20 nomes importantes.
nomesImportantes[5] = “Juliana”.
Para iniciarmos efetivamente nosso entendimento, faça uma classe que peça
para o utilizador digitar 5 nomes mais importantes na vida dele e depois exiba
esses valores:
Dica: Para fazer essa tarefa você usará o conceito de loop aprendido no
capítulo anterior também.
Página 41 | 51
Segue o resultado abaixo após rodar a classe codificada:
Você também pode usar arrays com tipos complexos seguindo os mesmos
conceitos.
Página 42 | 51
N
Este capítulo explicaremos mais alguns conceitos que devem ficar
claros em sua mente para um bom desenvolvimento em Java,
esses conceitos tornam a orientação a objetos um pouco mais
complexo do que vimos anteriormente neste livro.
Suponhamos que você criou uma classe Aluno que terá os seguintes
atributos:nome,registro,nota1 e nota2, e os métodos: obterMedia,setarNota1
e setarNota2.
Essa classe não tem um construtor estipulado, logo o java criará um default e
qualquer instância dessa classe(objeto) será criado da forma mais simples da
linguagem:
Dessa forma para você obter a média, teria que chamar o método setarNota1
informando qual foi a nota 1 deste aluno e setarNota2 informando qual foi a
nota 2 deste aluno para enfim chamar o método obterMedia e enfim saber a
media deste aluno. Ficaria mais ou menos da seguinte maneira:
Página 43 | 51
Dessa forma qualquer instância dessa classe seria obrigado a informar a nota
1 e nota 2 já no momento da criação:
Página 44 | 51
Dessa forma a construção do objeto Aluno fica a cargo de quem está criando,
serão três tipos de criação de objeto Aluno:
Quem está chamando sua classe(objeto) não precisa saber tudo que você
faz para que obtenha um resultado de um método seu, você pode oferecer
apenas um método e por dentro escrever uma lógica de negócio super
complexa e chamando outros métodos internos, mas no final quem está
chamando esse método não precisa saber disso tudo, não é mesmo?
Página 45 | 51
Veja que o método passarDeAno encapsula as regras de negócio dos
métodos obterMedia e validaMedia.
No eclipse existe um atalho para tal fim que economiza um grande tempo
para que tem muitos atributos na classe:
Página 46 | 51
Página 47 | 51
Página 48 | 51
Herança é um dos melhores conceitos da Orientação a objetos, é
basicamente espelhada na natureza em que um filho herda geneticamente
gens dos pais.
As classes que você cria em seu sistema podem ser herdadas e assim você
consegue criar relacionamentos diretos e sem a necessidade de reescrever
alguns códigos. Para aplicar corretamente a herança em seu sistema , temos
que entender como decidir que uma classe será herdada ou não, para isso
precisamos ter em mente a modelagem dos objetos do nosso sistema. Essa
modelagem nos dará o relacionamento entre os objetos e se há itens em
comum a todos, exemplo:
Página 49 | 51
Veja que neste caso, temos a EscolaMusica herdando da EscolaTecnica que
por sua vez herda de Escola, podemos assumir que uma Escola de Música é
uma escola técnica que também é escola, logo escola de musica é escola
também.
Página 50 | 51