Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Apostila Guia
Disciplina
Docente
Lista de Tabelas
Tabela 1: Tipos primitivos de dados em Java ............................................................................... 9
Tabela 2: Propriedade do Hibernate ........................................................................................... 39
Lista de Figuras
Figura 1: Funcionamento de uma aplicao Java .......................................................................... 7
Figura 2: Declarao de uma classe em Java ................................................................................ 8
Figura 3: Declarao de atributos.................................................................................................. 8
Figura 4: Instncias da classe Aluno ............................................................................................. 9
Figura 5: Vetores ......................................................................................................................... 10
Figura 6: If - else ......................................................................................................................... 11
Figura 7: Switch .......................................................................................................................... 12
Figura 8: While ........................................................................................................................... 12
Figura 9: Lao for........................................................................................................................ 13
Figura 10: Do - while .................................................................................................................. 13
Figura 11: Declarao de um mtodo ......................................................................................... 14
Figura 12: Classe com mtodo main ........................................................................................... 14
Figura 13: Sobrecarga de mtodos ............................................................................................. 15
Figura 14: Declarao de pacotes................................................................................................ 15
Figura 15: Classe Aluno dentro do pacote disciplina .................................................................. 16
Figura 16: Construtores ............................................................................................................... 18
Figura 17: Herana ...................................................................................................................... 19
Figura 18: Implementao da herana......................................................................................... 20
Figura 19: Classe abstrata ........................................................................................................... 21
Figura 20: Interface ..................................................................................................................... 22
Figura 21: Polimorfismo .............................................................................................................. 23
Figura 22: Excees try - catch .................................................................................................... 24
Figura 23: Exceo throws........................................................................................................... 24
Figura 24: Janela com diferentes LAF.......................................................................................... 25
Figura 25: JOptionPane ............................................................................................................... 25
Figura 26: JFrame ........................................................................................................................ 26
Figura 27: Banco de dados MySQL .............................................................................................. 29
Figura 28: Conexo de uma aplicao Java com um banco de dados relacional ........................ 30
Figura 29: Criando uma conexo com JDBC ................................................................................ 31
Figura 30: Modelo da Tabela contato ......................................................................................... 32
Figura 31: Classe ConnectionFactory .......................................................................................... 34
Figura 32: Operao Insert .......................................................................................................... 35
Figura 33: Operao select .......................................................................................................... 36
Figura 34: Operao update ........................................................................................................ 36
Sumrio
1.
2.
3.
3.2.
3.3.
Classes ........................................................................................................................... 7
3.4.
Atributos........................................................................................................................ 8
3.5.
3.6.
Vetores .......................................................................................................................... 9
3.7.
3.8.
3.9.
Mtodos ....................................................................................................................... 13
3.10.
Pacotes..................................................................................................................... 15
3.11.
3.12.
Construtores ............................................................................................................ 17
3.13.
Herana.................................................................................................................... 18
3.14.
3.15.
Interfaces ................................................................................................................. 21
3.16.
Polimorfismo ........................................................................................................... 22
3.17.
Excees .................................................................................................................. 23
3.18.
3.19.
Eventos .................................................................................................................... 28
3.20.
3.21.
3.1.
3.2.
3.3.
Classes
3.4.
Atributos
como
variveis
representam
as
Uma varivel pode ser comparada a uma bolsa feminina. Uma bolsa um
acessrio onde as mulheres colocam a casa inteira l dentro! Brincadeira!!
Colocam somente o necessrio, para serem utilizados posteriormente. Assim
como uma bolsa, uma varivel no tem sentido em existir, se no contiver nada
dentro. Uma varivel ou atributo criado com um objetivo especfico, servir de
espao bolsa para se colocar dados. Quando se deseja colocar mais objetos na
bolsa, mas ela j est totalmente cheia. preciso esvazia-la, para depois colocar
outros objetos. Com uma varivel acontece a mesma coisa. Caso no se queira
perder os dados da varivel, necessrio tir-los previamente para dar espao
aos novos.
Tomando como base a classe Aluno, declarada anteriormente, pode-se
definir como caractersticas bsicas de um aluno, o seu nome e sua idade. uma
boa prtica de programao declarar todos os atributos na parte superior da
classe e em minsculo, veja a Figura 3.
3.5.
Tipo
Inteiro
Ponto flutuante 32bits
Lgico
Binrio
Ponto flutuante 64bits
Caractere
Declarao
int
float
boolean
byte
double
char
Exemplo
int x;
float x;
boolean x;
byte x;
double x;
char x;
3.6.
Vetores
Figura 5: Vetores
10
3.7.
If - else
Nessa estrutura, uma expresso avaliada como verdadeira ou falsa.
Caso ela seja verdadeira a seo de cdigo correspondente ao if ser
executada. Se no, o cdigo correspondente ao else. Na Figura 6, tem-se
uma expresso que avalia se o nmero 3 maior que 1. Evidentemente, a
resposta est correta, logo o trecho de cdigo a ser executado ser o que est
dentro do if. Caso, a resposta fosse no, ento o cdigo correspondente ao
else seria executado.
Figura 6: If - else
Switch
Essa estrutura de controle bastante similar ao if - else. Incialmente, um
valor passado para dentro do switch. Com o valor em mos, o switch testa
todos os case buscando um valor igual ao que lhe foi passado. Observando a
Figura 7 e o valor passado ao switch, conclui-se que o case a ser executado
ser o da linha 6.
A palavra reservada default utilizada quando se deseja que uma
determinada ao acontea, caso nenhuma das outras ocorra. Nesse exemplo,
se o valor 5 fosse passado ao switch o default seria executado.
Outra palavra reservada o break ou quebra. Como o prprio nome diz,
ela serve para quebrar a sequncia de execuo. Isso importante em casos,
11
Figura 7: Switch
3.8.
Estruturas de repetio
While
O while uma estrutura de repetio, que tem como caracterstica a
avaliao de uma expresso antes de executar o trecho de cdigo
correspondente. Na Figura 8 o while avalia se 3 maior que 1. Como a
expresso verdadeira, o trecho de cdigo da linha 2 ser executado. Ao
finalizar todo o cdigo de dentro do while, a expresso ser avaliada
novamente. Como nenhum valor foi alterado, a expresso tambm ser
verdadeira e assim continuar at que o programa seja forado a finalizar.
Figura 8: While
For
12
Do - while
3.9.
Mtodos
13
14
3.10. Pacotes
Pacotes so utilizados para agrupar classes com objetivos especficos.
Por exemplo, um pacote chamado formas geomtricas. Dentro desse pacote,
provavelmente iro est classes chamadas crculo, retngulo, elipse, quadrado, e
tringulo.
Em Java, um pacote criado atravs da palavra reservada package
seguido do nome do pacote, como na Figura 14. Essa definio deve estar no
incio do arquivo, e as classes que o iro compor ficaro abaixo.
15
Public: Todos podem acessar aquilo que estiver definido como public.
Classes, atributos, mtodos e construtores podem ser public.
Private: permite que apenas a classe tenha acesso aos atributos, construtores
e mtodos declarados como private.
Protected: Aquilo que protected pode ser acessado por todas as classes do
mesmo pacote e por todas as classes que o estendam, mesmo que essas no
estejam no mesmo pacote. Somente atributos, construtores e mtodos podem
ser protected.
3.12. Construtores
Quando se cria uma classe, apenas se est fornecendo um modelo de
dados com atributos e comportamentos. Para que esse modelo de classe exista e
possa ser utilizado no programa, ele precisa ser instanciado. Instanciar uma
classe significa criar algo vivo de um modelo. No exemplo da classe Aluno,
Figura 15, foi criado um atributo chamado nome do tipo String. At esse
momento, essa varivel no foi instanciada, ou seja, a varivel est vazia.
Para instanciar uma classe em Java utiliza-se o conceito de construtor. O
construtor um mtodo, geralmente pblico e sem retorno, que pode receber ou
no parmetros. A Figura 16 mostra um cdigo onde duas classes foram
declaradas: Aluno, j conhecida, e Turma. A classe Aluno cria uma instncia
da classe Turma na linha 31, por meio da palavra reservada new. A partir do
momento que uma instncia criada, ela oferece acesso a seus atributos e
mtodos, de acordo com a limitao de privacidade, a qual lhe foi concedida.
Dessa forma, a classe Aluno consegue acessar o mtodo getTurma, da classe
Turma, na linha 32, e imprimir o nome dela.
17
3.13. Herana
O conceito de herana surgiu da mesma ideia da herana entre pai e filho.
Sendo o pai o cabea da famlia, sua responsvel passar suas caractersticas
genticas aos seus filhos. Assim como seus filhos iro passar seus genes para
seus descendentes, e assim por diante. Diante disso, pode-se afirmar que todos
os descentes herdaram genes dos seus antecessores.
De forma similar acontece a herana na Orientao a Objetos. A Figura
17 contm trs classes: Super Heri, Capito America e Homem de Ferro.
18
19
mtodo de voo, cria-se apenas uma classe abstrata que contenha um mtodo
chamado voo, e estende-se essa classe para as demais.
A declarao de uma classe abstrata pode ser vista abaixo:
Abstract public class Passaro{
Abstract public void voar();
}
Uma classe abstrata declarada por meio da palavra reservada abstract.
Assim como uma classe pode ser abstrata, os mtodos tambm podem. No
entanto, mtodos abstratos no possuem corpo. O seu contedo ser especificado
nas classes que os estender.
Todos os mtodos abstratos pertencentes a uma classe devem
obrigatoriamente ser sobrepostos nas classes que os estenderam. Se um mtodo
abstrato, obrigatoriamente a classe qual ele pertence tambm deve ser abstrata.
A Figura 19 mostra a classe Papagaio que estende a classe abstrata
Passaro. Como se percebe, o mtodo abstrato da classe Passaro sobreposto na
classe Papagaio e seu corpo ento criado.
3.15. Interfaces
Uma interface Java como uma classe 100% abstrata, ou seja, ela deve
conter apenas mtodos abstratos. Por padro os mtodos das interfaces so
sempre pblicos e abstratos, tornando sua declarao opcional. Uma interface
utilizada quando um determinado grupo de objetos ou seres possuem
comportamentos iguais, mas realizados de maneiras diferentes. Dessa forma, as
classes que possuem os mesmos comportamentos apenas implementam a
interface e sobrepem os seus mtodos.
21
3.16. Polimorfismo
O polimorfismo como o prprio nome sugere, significa vrias formas. Na
Orientao a Objetos, o polimorfismo oferece a capacidade de se utilizar um
objeto como se fosse outro. Por exemplo, na Figura 21, tem-se a classe
Papagaio que estende Passaro e implementa a interface Animal. Na linha 30
cria-se uma instncia da classe Papagaio e atribui-se varivel p1. Na linha
seguinte chamado o mtodo come referente instncia de p1. Na linha 32
ocorre a atribuio de uma instncia da classe Papagaio a uma varivel do tipo
Passaro. Esse procedimento possvel sim, pois Passaro estendida por
Papagaio, dessa forma, atravs da varivel p2 possvel acessar apenas os
mtodos sobrepostos presente na classe Papagaio.
22
3.17. Excees
Uma exceo representa uma situao anormal que ocorre no sistema,
indicando que algo de estranho ou errado aconteceu.
Existem no Java duas formas de se tratar essas situaes inesperadas. A
primeira delas por meio dos operadores try/catch. Todo o cdigo que est
sendo observado e que pode gerar uma exceo colocado dentro do try. No
catch define-se o tipo de exceo e o que fazer para trata-la. A Figura 22 mostra
o tratamento de uma exceo chamada FileNotFoundException, ou seja, quando
se tenta abrir um arquivo em disco, mas ele no encontrado. O comando que
pode gerar essa exceo fica na linha 4 e o mtodo que trata essa exceo fica na
linha 7.
23
24
JOptionPane
Esse componente usado para exibir mensagens ao usurio por meio de
uma janela de dilogo.
JFrame
uma moldura (janela) que o sistema operacional abre para exibir todos
os componentes visveis de uma aplicao. Dentro de um JFrame podem
ficar botes, listas, tabelas, imagens, formulrio e menus.
25
JPanel
um componente adicionado ao JFrame. Alm de outras
funcionalidades, serve para organizar os componentes dentro do JFrame.
O cdigo abaixo mostra como adicionar um JPanel a um JFrame.
Inicialmente, cria-se um JPanel e adiciona essa instncia ao JFrame atravs
do mtodo add.
JPanel painel = new JPanel();
JFrame janela = new JFrame(Meu nome);
janela.add(painel);
JButton
JTable
26
setValueAt(Object value, int row, int column): atribui um valor a uma clula
especfica atravs das posies row e column.
O cdigo abaixo mostra como criar uma tabela com dados e exibi-la em
uma janela. Para se criar a tabela foi utilizado um construtor que recebe dois
vetores: um com os nomes das colunas chamado colunas e o outro com os
dados, dados.
Com a tabela criada, agora adicion-la a janela por meio do mtodo
add. Para que a janela seja exibida, preciso utilizar o mtodo
setVisible(boolean b) da classe JFrame.
27
3.19. Eventos
Em geral, as aplicaes precisam de alguns eventos para o
funcionamento completo do programa. Normalmente as GUIs do Java so
baseadas em eventos - tarefas realizadas quando um usurio faz a interao com
algum componente GUI, convertendo as aes do usurio em eventos. So
exemplos de eventos:
28
cliente que usar a API JDBC e o banco de dados. Entre as diversas interfaces
deste pacote, existe a interface Connection que define mtodos para executar
uma query como um insert e select.
Figura 28: Conexo de uma aplicao Java com um banco de dados relacional
30
Com a tabela contato criada no banco MySQL, vamos criar agora uma
classe que modele essa tabela. A Figura 30 mostra a classe Contato, com os mesmos
campos que a tabela do MySQL. Alm disso, ela conta com mtodos get e set para todos
os atributos.
31
33
34
Para obter uma lista dos contatos no banco, basta chamar o mtodo
getContato. Esse mtodo comea criando um PreparedStatement, passando
como parmetro uma consulta select.
PreparedStatement stmt =
this.connection.prepareStatement("select * from contato");
35
36
38
Propriedade
@GeneratedValue
@TemporalType
Funo
Auto incremento
Mapear um tipo Calendar para o
banco
Define um nome da coluna
Define o nome da tabela
@column
@Table
Para utilizar o JPA no nosso cdigo, preciso fazer com que ele leia o
arquivo de configurao XML que declaramos anteriormente. Para isso, vamos
criar um novo arquivo chamado ContatoPersistencia que ser responsvel por
realizar consultas no banco de dados, relativo a classe Contato.
O
mtodo
Persistence.createEntityManagerFactory
acessa
a
configurao do arquivo XML, passando o seu nome como parmetro e a retorna
como um objeto do tipo EntityManagerFactory.
EntityManagerFactory factory =
Persistence.createEntityManagerFactory("Hbernate_
JPAPU");
EntityManager manager =
factory.createEntityManager();
39
manager.getTransaction().begin();
manager.remove(contato);
manager.getTransaction().commit();
42
Referencial bibliogrfico
ARNOLD, K.; GOSLING, J.; HOLMES, D. A Linguagem de Programao Java. 4. ed. Porto
Alegre: Bookman, 2007.
SCHILDT, H. C Completo e Total. 3. ed. So Paulo: Makron Books, 1996
SIERRA, K.; BATES, B.; COELHO, A. J. Use a Cabea!: Java. 2. Ed. Rio de Janeiro: Alta
Books, 2005.
CAELUM. Uma introduo prtica ao JPA com Hibernate. Capitulo 14 da apostila - Java
para Desenvolvimento Web. Disponvel em: <https://www.caelum.com.br/apostila-javaweb/uma-introducao-pratica-ao-jpa-com-hibernate/>. Acesso em: 11 maio 2016.
______. Interfaces grficas com Swing. Capitulo 5 da apostila Apostila Laboratrio Java
com Testes, XML e Design Patterns. Disponvel em: < http://www.caelum.com.br/apostila-javatestes-xml-design-patterns/interfaces-graficas-com-swing/>. Acesso em: 12 maio 2016.
______. Excees e controle de erros. Disponvel em: <https://www.caelum.com.br/apostilajava-orientacao-objetos/excecoes-e-controle-de-erros/>. Acesso em: 27 jun. 2016.
______. Trabalhando com eventos na GUI do Java. Disponvel em:
<http://www.devmedia.com.br/trabalhando-com-eventos-na-gui-do-java/25898>. Acesso em: 27
jun. 2016.
______. Bancos de dados e JDBC. Disponvel em: <https://www.caelum.com.br/apostila-javaweb/bancos-de-dados-e-jdbc/>. Acesso em: 27 jun. 2016.
PALMEIRA, Thiago Vincius Varallo. Java: histria e principais conceitos. Disponvel em:
<http://www.devmedia.com.br/java-historia-e-principais-conceitos/25178>. Acesso em: 12 maio
2016.
43