Anda di halaman 1dari 184

PROGRAMAO SERVIDOR

EM SISTEMAS WEB
RETOMANDO:

JAVA E CLASSES
Prof. Dr. Daniel Caetano
2013 - 2

Objetivos
Retomar a Linguagem Java
Retomar o conceito de Classes
Tratamento de Erros

GRUPOS?
At o fim da aula!

Material de Estudo
Material

Acesso ao Material

Notas de Aula

http://www.caetano.eng.br/
(Prog. Serv. Web Aula 1)

Apresentao

http://www.caetano.eng.br/
(Prog. Serv. Web - Aula 1)

Material Didtico

Java: Como
Programar

(6 Edio) Pginas 24 a 38, 57 a 73, 86 a 110, 126 a


150

REVISO
RELMPAGO DE JAVA

Estrutura do Cdigo
Programa em C/C++
projeto.exe

Programa em Java
Projeto

projeto.jar

programa.cpp
main

Pacote

Pacote

Projeto.java
funcao1

funcao2

funcao3

Classe
main

metodo1

Estrutura do Cdigo
Programa em Java
projeto

Executvel:
Projeto.jar

Diretrio:
/projeto

Diretrio:
/projeto/projeto

Diretrio:
/projeto/umpacote1

Diretrio:
/projeto/umpacote2

Estrutura de um Cdigo Java


Arquivo:

Projeto.java

Indica o pacote
SEMPRE a primeira coisa!

Estrutura de um Cdigo Java


Arquivo:

Projeto.java

Todo programa do
NetBeans tem uma classe
principal, de mesmo
nome que o Projeto)

...e, assim como em C,


todo programa Java ter
um mtodo main...

Funo das classes


Basicamente: classe um pequeno programa
Um subsistema (pacote) contm vrios
pequenos programas (classes)
Um sistema (projeto) contm vrios
subsistemas (pacotes)
Analogia?

Analogia da Estruturao Java


Projeto

Microsoft Office

Pacote

Microsoft Word

Classe

Documento

Mtodo

Corrigir

O que significa...
...a classe ser um pequeno programa?
Software composto por vrios programas
Um programa pede para outro fazer algo
Ou seja: uma classe pode solicitar a outra
que execute uma de seus mtodos (funes)

E se eu no quiser?
E se eu desejar criar um mtodo que outras
classes no possam executar?
Na verdade, para que esse mtodo possa ser
executado por outras classes, ele deve ser
pblico... Observe!

E se eu no quiser?
Para impedir que um mtodo possa ser
executado por outra classe, bastar declar-lo
como private .

ELEMENTOS
BSICOS DE JAVA

Imprimindo em Java
Impresso Normal
System.out.print(texto);
System.out.print(var);
System.out.print(texto + var);
System.out.println(texto);

Impresso Formatada
System.out.printf(texto);
System.out.printf(texto %d\n, var);

Imprimindo em Java
Muito chato ter que digitar...
System.out.println( );

... Toda hora ??????????

SIM!!!!
Ento... no digite!
Como veremos no NetBeans, basta digitar
sout e apertar a tecla TAB em seguida.

Hello World em Java

Variveis Nativas em Java


Normalmente useramos apenas:
int, double e boolean...

Operadores em Java
Operadores Bsicos
+
==

<=

*
>=

/
!=

%
&&

||

Comentrios em Java
Linha simples:
// Este um comentrio de uma linha

Mltiplas linhas:
/* Este um comentrio de
Mltiplas linhas */

Ou ainda...
/** Este um comentrio de
Mltiplas linhas */

CONTROLE DE
FLUXO

Estruturas de Seleo
if ~ else

Estruturas de Seleo
switch ~ case

Estruturas de Repetio
while

Estruturas de Repetio
do ~ while

Estruturas de Repetio
for

VARIVEIS NO
NATIVAS

O que so variveis no nativas?


So variveis programadas
No fazem parte da linguagem em si, mas
de sua biblioteca
So programadas na forma de Classes

Facilitam muito a programao

Exemplo: String
Armazenar texto em C = muito chato:
char texto[30] = Um texto;
Em Java existe o tipo String para isso:
String texto = Um texto;
Variveis destes tipos podem ser usadas
normalmente na maioria das situaes

Imprimindo Strings

Somando Strings

Imprimindo Soma de Strings

Vantagens de Variveis No Nativas


Como so classes, elas no apenas guardam
informao, mas tambm executam tarefas
Ex.: uma String sabe responder seu prprio
comprimento (quantas letras possui):

Vantagens de Variveis No Nativas


Variveis Nativas no possuem esse recurso!
Como saber se varivel nativa ou no?
Pelo tipo da varivel
As variveis nativas sempre tm seu tipo
iniciado em letra minscula
Ex.: int, double...

As variveis no nativas sempre tm seu


tipo iniciado em letra maiscula
Ex.: String, Integer, Double...

Como saber que mtodos existem?


Documentao
No NetBeans, digite o nome da varivel
seguido de ponto (.) e aguarde alguns
instantes...

NetBeans
Esse NetBeans parece legal...
Como eu uso isso?
Primeiro voc precisa instalar o Java SE JDK
http://www.oracle.com/technetwork/java/javase/downloads/
java-se-jdk-7-download-432154.html

Depois voc deve instalar o NetBeans


http://netbeans.org/downloads/

RELEMBRANDO:

NETBEANS

Iniciando um Projeto
Clique no cone de novo projeto

Iniciando um Projeto
Escolha o tipo: Java e Aplicativo Java

Iniciando um Projeto
D um nome ao seu projeto: Projeto1

Iniciando um Projeto
D um nome ao seu projeto: Projeto1

Nomes de projeto devem


a) Comear com letra maiscula
b) No ter espaos
c) No usar acentos ou caracteres especiais
d) Ex.: MeuProjeto

Tela Principal

Tela Principal

REA DE CONTROLE

Tela Principal

GRAVAR PROJETO

Tela Principal

EXECUTAR PROJETO

Tela Principal

REA DE PROJETO

Tela Principal

PROJETO ABERTO
(ativo fica em negrito)

Tela Principal

PACOTES DE CDIGO

Tela Principal

BIBLIOTECAS
(Ex.: Banco de Dados)

Tela Principal

PACOTE PRINCIPAL
(mesmo nome do projeto)

Tela Principal

CLASSE PRINCIPAL
(mesmo nome do projeto)

Tela Principal

REA DE CDIGO

Tela Principal

REA DE MENSAGENS

Tela Principal

NAVEGADOR

Adicionando algum cdigo

DIGITE O CDIGO

Adicionando algum cdigo

DIGITE O CDIGO

Adicionando algum cdigo

GRAVE O PROJETO

Adicionando algum cdigo

EXECUTE O PROJETO

Adicionando algum cdigo

VEJA O RESULTADO

CLASSES EM JAVA

O que so Classes?
Uma classe uma estrutura de dados
Ela possui atributos
E ela capaz de operar nesses atributos por
meio de seus mtodos.

Definindo uma classe


Iniciaremos criando um projeto

Definindo uma classe


Escolha o tipo: Java e Aplicativo Java

Definindo uma classe


D um nome ao seu projeto: ex.: Projeto2
Projeto2

Definindo uma classe


D um nome ao seu projeto: ex.: Projeto2
Projeto2

Nomes de projeto devem


a) Comear com letra maiscula
b) No ter espaos
c) No usar acentos ou caracteres especiais
d) Ex.: MeuProjeto

Definindo uma classe


D um nome ao seu projeto: ex.: Projeto2
Projeto2

Definindo uma Classe


As classes devem ficar dentro de pacotes;
Assim, clique com o boto direito no cone do
pacote que tem o nome do projeto (projeto2)

Definindo uma Classe


Agora selecione novo > classe java

Definindo uma Classe


Agora d um nome classe: Produto

Definindo uma Classe


Agora d um nome classe: Produto

Nomes de CLASSES devem


a) Comear com letra maiscula
b) No ter espaos
c) No usar acentos ou caracteres especiais
d) Ex.: Produto

Definindo uma Classe


E clique em finalizar

Definindo uma Classe


Observe a classe na rea de projeto

Definindo uma Classe


Clique 2 vezes nesse cone para ver o cdigo

Limpando a rea
Vamos apagar os comentrios do NetBeans

Adicionando Atributos
Vamos adicionar atributos no produto

Adicionando Atributos
Vamos adicionar atributos no produto

Adicionando Atributos
Vamos adicionar atributos no produto

Adicionando Atributos
Vamos adicionar atributos no produto
Observe
a) Nossa classe pode guardar
trs valores
b) Eles so privados
c) Apenas cdigo da prpria
classe pode ler e escrever
nessas variveis!

Escopo e Visibilidade
O que cdigo da prpria classe?

Aquele que for definido na


rea marcada!

Setters e Getters
Como modificar estes valores?

Setters e Getters
Vamos acrescentar mtodos pblicos?
Os mtodos que servem para modificar
atributos so chamados de setters.
Se o nome do atributo idade, o nome do
setter ser setIdade().
Se o nome do atributo sexo, o nome do
setter ser setSexo().

Setters e Getters
Entre parnteses devemos indicar o novo valor
desejado para o atributo
Ex.: setIdade(23)
Como a criao desses mtodos
absolutamente mecnica, o NetBeans a realiza
por ns

Setters e Getters Criando Setters


Clique com o boto direito na rea da classe

Setters e Getters Criando Setters


Selecione a opo inserir cdigo

Setters e Getters Criando Setters


No menu, selecione Setter...

Setters e Getters Criando Setters


Selecione a caixinha de Produto para marcar
todos os atributos ao mesmo tempo

Setters e Getters Criando Setters


Pronto! O NetBeans criou tudo sozinho!

Setters e Getters Criando Setters


Mas tem alguma coisa estranha a...

O que ...
this
???

Setters e Getters Criando Setters


Primeiro vamos entender uma coisa...

Os atributos
funcionam
como variveis
globais dentro
da classe

Setters e Getters Criando Setters


Primeiro vamos entender uma coisa...

Isso significa
que essas
variveis
podem ser
acessadas nos
mtodos

que, neste
caso,
Setters e GettersOcorre
Criando
Setters

Primeiro vamos entenderforam


uma definidos
coisa...
parmetros com os
mesmos nomes dos
atributos... Observe!

Isso cria confuso: se, no


Setters e Getters Criando
Setters
mtodo setDesc,
Primeiro vamos entender uma
coisa...
escrevermos,

desc = Ol
Estamos mudando o valor do
atributo ou do parmetro?

Setters
e Getters
Criando
Setters
O
Java soluciona
isso da seguinte
forma: sempre
que
houver confuso
nomesuma
de variveis
Primeiro
vamosentre
entender
coisa...de um
mtodo com os nomes de atributos de uma classe,
devemos usar a palavra this para nos referir ao atributo.

Setters
e Getters
Criando
Setters
O
Java soluciona
isso da seguinte
forma: sempre
que
houver confuso
nomesuma
de variveis
Primeiro
vamosentre
entender
coisa...de um
mtodo com os nomes de atributos de uma classe,
devemos usar a palavra this para nos referir ao atributo.

Setters
e Getters
Criando
Setters
O
Java soluciona
isso da seguinte
forma: sempre
que
houver confuso
nomesuma
de variveis
Primeiro
vamosentre
entender
coisa...de um
mtodo com os nomes de atributos de uma classe,
devemos usar a palavra this para nos referir ao atributo.

Setters e Getters
Agora j sabemos como mudar os valores dos
atributos. Mas como ler estes valores?
Os mtodos que servem para ler atributos so
chamados de getters.
Se o nome do atributo idade, o nome do
getter ser getIdade.
Se o nome do atributo sexo, o nome do
getter ser getSexo.
Deu para pegar a idia?

Setters e Getters Criando Getters


Clique com o boto direito na rea da classe

Setters e Getters Criando Getters


Selecione a opo inserir cdigo

Setters e Getters Criando Getters


No menu, selecione Getter...

Setters e Getters Criando Getters


Selecione a caixinha de Produto para marcar
todos os atributos ao mesmo tempo

Setters e Getters Criando Getters


Pronto! O NetBeans criou tudo sozinho!

Setters e Getters Criando Getters


Observe os getters de
perto.
Eles simplesmente
retornam o valor do
atributo!
Observe que, neste
caso, como no h
confuso, no
necessrio usar a
palavra this

Setters e Getters
Qual a vantagem de usar getters e setters?
1. Se voc no quiser que um atributo seja
modificado por outras classes, remova o setter
daquela varivel
2. Se voc no quiser que um atributo seja lido por
outras classes, remova o getter daquela varivel
3. O setter permite validar os dados antes de
armazen-los, evitando que dados incorretos
sejam colocados nos atributos
4. O getter permite esconder o formato (tipo de
dado) com que um atributo est armazenado

Setters e Getters
Qual a vantagem de usar getters e setters?
1. Se voc no quiser que um atributo seja
modificado por outras classes, remova o setter
daquela varivel
2. Se voc no quiser que um atributo seja lido por
outras classes, remova o getter daquela varivel
3. O setter permite validar os dados antes de
armazen-los, evitando que dados incorretos
sejam colocados nos atributos
4. O getter permite esconder o formato (tipo de
dado) com que um atributo est armazenado

Encapsulamento

PAUSA PARA
O CAF!

OBJETOS EM JAVA

O que so Objetos?
Ok, aprendemos a criar uma classe, mas
como usamos isso?
Como apresentado, uma das funes das
classes permitir a definio de tipos de
dados no nativos, para guardar dados de
formato especfico
Assim, a classe define apenas o tipo do
dado; definir uma classe no significa que j
podemos guardar informaes

O que so Objetos?
Uma classe como uma planta baixa de
uma casa: diz como uma casa , mas no d
pra morar nela!

O que so Objetos?
Uma classe como uma planta baixa de
uma casa: diz como uma casa , mas no d
pra morar nela!

preciso construir

O que so Objetos?
Uma classe como uma planta baixa de
uma casa: diz como uma casa , mas no d
pra morar nela!

Transformar a planta

O que so Objetos?
Uma classe como uma planta baixa de
uma casa: diz como uma casa , mas no d
pra morar nela!

Em um OBJETO

Como criar objetos?


Vamos comear do comeo...
Clique duas vezes no cone do arquivo da
classe principal (aquela com o nome do
projeto):

Como criar objetos?


Apague os comentrios do NetBeans...

Como criar objetos?


Apague os comentrios do NetBeans...

Como criar objetos?


Vamos declarar uma varivel para o produto

Como criar objetos?


Vamos declarar uma varivel para o produto

Como criar objetos?


Agora vamos criar o objeto

Como criar objetos?


Agora vamos criar o objeto

Como criar objetos?


E armazenar algumas informaes

Como criar objetos?


E armazenar algumas informaes

Como criar objetos?


E, agora, vamos imprimir alguns dados...

Como criar objetos?


E, agora, vamos imprimir alguns dados...

Como criar objetos?


Execute o projeto...

EXECUTE O PROJETO

Como criar objetos?


E veja o resultado...

VEJA O RESULTADO

HERANA

O que herana?
Herana uma das caractersticas mais teis
das classes... Mas o que ?
O que herdar?
Receber algo construdo por outra pessoa
Em programao: herana isso:
receber algo programado anteriormente

Como essa tal de herana?


H pouco criamos uma classe que
representa representar um produto
Imagine que temos de criar, para um
sistema de livraria, uma classe livro
No contexto: o livro um produto!
Isso significa que ele vai ter um cdigo de
identificao, um nome e uma descrio,
como o nosso produto

Como essa tal de herana?


Temos duas alternativas:
1. Criar uma classe chamada Livro e reescrever
todo o cdigo que j havamos colocando na
classe Produto
2. Criar uma classe Livro e reaproveitar as
funcionalidades que j esto disponveis na
classe Produto

A opo dois pode ser feita justamente com


a tal da herana

Herana em Java
No Java, a herana funciona assim:
1. Temos uma classe original, que chamamos de
superclasse ou classe pai, da qual queremos herdar
funcionalidades.
2. E vamos criar uma classe derivada, que chamamos
de subclasse ou classe filha, que ir extender as
funcionalidades da classe pai

Livro
Produto
id / setId / getId
nome / setNome / getNome
desc / setDesc / getDesc
autor / setAutor / getAutor

Herana em Java
No Java, a herana funciona assim:
1. Temos uma classe original,
queas
chamamos de
Apenas
superclasse ou classe pai, da qual queremos herdar
caractersticas pblicas
funcionalidades.
soclasse
herdadas...!
2. E vamos criar uma
derivada, que chamamos
de subclasse ou classe filha, que ir extender as
funcionalidades da classe pai

Livro
Produto
id / setId / getId
nome / setNome / getNome
desc / setDesc / getDesc
autor / setAutor / getAutor

Herana em Java
Observe que no processo de herana, todas
as caractersticas pblicas so herdadas
Assim, no exemplo, um Livro no deixa de ser,
tambm, um Produto... Todo objeto do tipo
Livro ser, ao mesmo tempo, um objeto do
tipo Produto
Livro
Produto
setId / getId
setNome / getNome
setDesc / getDesc
autor / setAutor / getAutor

Definindo uma Classe Filha


Para criar a nova classe, clique com o boto
direito no cone do pacote que tem o nome do
projeto (projeto2)

Definindo uma Classe Filha


Agora selecione novo > classe java

Definindo uma Classe Filha


Agora d um nome classe: Livro

Definindo uma Classe Filha


Agora d um nome classe: Livro

Nomes de CLASSES devem


a) Comear com letra maiscula
b) No ter espaos
c) No usar acentos ou caracteres especiais
d) Ex.: Livro

Definindo uma Classe Filha


E clique em finalizar

Definindo uma Classe Filha


Observe a classe na rea de projeto

Definindo uma Classe Filha


Clique 2 vezes nesse cone para ver o cdigo

Limpando a rea da Classe Filha


Vamos apagar os comentrios do NetBeans

Informando quem a Classe Pai


Indique que esta classe extends Produto :

Informando quem a Classe Pai


Indique que esta classe extends Produto :

Com isso j podemos usar a classe


Livro como se fosse um Produto...
Mas queremos adicionar o atributo
autor ao Livro, no ?

Acrescentando atributos
Acrescente o atributo autor como String:

Acrescentando atributos
Acrescente o atributo autor como String:

Criando os getters e setters


Clique com o boto direito na rea da classe

Criando os getters e setters


Selecione Inserir cdigo...

Criando os getters e setters


Selecione a opo Getter e setter...

Criando os getters e setters


E marque os atributos para os quais quer gerar
getters e setters

Criando os getters e setters


O cdigo ser gerado automaticamente

Como criar objetos?


Vamos agora criar um objeto Livro...
Clique duas vezes no cone do arquivo da
classe principal (aquela com o nome do
projeto):

Modificando o cdigo main


E modifique o cdigo assim

Modificando o cdigo main


E modifique o cdigo assim

Modificando o cdigo main


Execute e veja o resultado!
O que acontece se voc tentar executar os
mtodos setAutor ou getAutor por p?

Modificando o cdigo main

Por que isso acontece?


Porque p do tipo Produto... E Produto no
define os mtodos setAutor e getAutor!

Modificando o cdigo main


Repare, por outro lado, que todos os mtodos
de Produto podem ser usados com a varivel
do tipo Livro!

Modificando o cdigo main


O que acontece se mudarmos o tipo da
varivel l de Livro para Produto?
Que mtodos ficam disponveis em l ?
o tipo da varivel que define quais
mtodos podem ser chamados

Modificando o cdigo main


Para saber quais mtodos esto disponveis,
basta digitar o nome da varivel e adicionar
um .:

Modificando o cdigo main


Para saber quais mtodos esto disponveis,
Mas e esses
Mtodos
em
basta digitar o nome da varivel e adicionar
outros?
negrito
esto
um .:
definidos
nesta classe...

Mtodos Herdados
Object pai de todas as classes do Java
Object

String

Produto

Livro

Mtodos Herdados
Object pai de todas as classes do Java

Superclasse ou
Classe Pai

Object

String

Produto

Livro

Subclasse ou
Classe Filha

TRATAMENTO DE ERROS

Tratamento de Erros em Java


O Java tem um jeito todo especial de
permitir que lidemos com erros que possam
ocorrer durante a execuo
Melhor do que explicar a teoria, tudo fica
mais simples quando vemos acontecer!
Feche o projeto anterior e crie um novo
projeto Java Aplicao Java no NetBeans, e
d o nome de Projeto3.

Tratamento de Erros em Java


No mtodo main, digite o seguinte cdigo:

Tratamento de Erros em Java


No mtodo main, digite o seguinte cdigo:

Tratamento de Erros em Java


Execute o programa, e veja o que ocorre...

Isso significa que seu programa capotou


Em outras palavras, ocorreu um erro e o seu
programa foi finalizado

Tratamento de Erros em Java


Execute o programa, e veja o que ocorre...

Se clicar nesse link, o


Isso significa
que seulhe
programa
capotou
NetBeans
mostrar
em
Em outras palavras,
erro e o seu
que linhaocorreu
o erroum
ocorreu
programa foi finalizado

Tratamento de Erros em Java


Que exatamente nessa:

Houve uma
diviso por
zero!

Tratamento de Erros em Java


Neste caso, poderamos simplesmente
corrigir o programa, afinal, os valores so
estticos...
Mas e se os dados de entrada fossem
fornecidos pelo usurio?
1. Poderamos checar o denominador antes
2. Poderamos dizer para o Java o que fazer se
um erro ocorrer!

O primeiro caso simples; vamos mostrar


como fazer o segundo

Tratamento de Erros em Java

Primeiro iremos modificar o programa assim

O bloco try indica


para o Java que
pode ocorrer um
erro a dentro!

Tratamento de Erros em Java

Primeiro iremos modificar o programa assim

O NetBeans indica
erro porque, se pode
ocorrer um erro, o
programador
obrigado a dizer o
que fazer caso ele
ocorra!

Tratamento de Erros em Java


Isso pode ser feito assim...

Tratamento de Erros em
Java
Todo bloco try
Isso pode ser feito assim...

precisa ter pelo


menos um catch

Tratamento de Erros em Java


O que esse Exception?

Tratamento de Erros em Java


O que esse Exception?

Exception um tipo de dado no


nativo (observe a letra maiscula!)
que guarda informaes sobre o
erro ocorrido!

Tratamento de Erros em Java

Faa a modificao, execute e observe!

Tratamento de Erros em Java


Qual foi o resultado?

Essa linha contm uma das informaes


guardadas pela classe Exception!

Classe Exception
A classe Exception genrica
Object

String

Produto

ArithmeticException

SQLException

Exception

NullPointerException

Classe Exception
Como tratar erros diferentes?
try {

// Seu cdigo aqui


} catch (ArithmeticException e) {

Mais Especfico

// Tratamento de erro na operao

} catch (Exception e) {
// Tratamento de qualquer outro erro

Mais Genrico

Classe Exception
Como executar algo ao fim de todos os casos?
try {
// Seu cdigo aqui
} catch (ArithmeticException e) {
// Tratamento de erro na operao

} catch (Exception e) {
// Tratamento de qualquer outro erro

} finally {
// Final para todos os casos

ORIENTAO
TRABALHO A

Orientao do Trabalho A
O Trabalho A j est online
Entre no SIA, na rea Minhas Disciplinas
Presenciais, na disciplina Programao
Servidor para Sistemas Web e, finalmente,
clique em Trabalhos.
Leia atentamente e resolva com calma
Observe agora a explicao do professor
sobre QUAIS arquivos devem ser enviados
(as pastas src e web de cada projeto)

ENTREGA DOS
GRUPOS DE TRABALHO

CONCLUSES

Resumo

A linguagem Java possui muitos recursos


O NetBeans uma ferramenta prtica
Uso de classes economiza programao
O Java possui um sistema de tratamento de
erros especfico
TAREFA: Instalar o NetBeans e... Trabalho A
Qual a relao com Prog. para Servidor Web?
O NetBeans tambm vai ajudar?

PERGUNTAS?

Anda mungkin juga menyukai