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
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
Projeto.java
Indica o pacote
SEMPRE a primeira coisa!
Projeto.java
Todo programa do
NetBeans tem uma classe
principal, de mesmo
nome que o 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( );
SIM!!!!
Ento... no digite!
Como veremos no NetBeans, basta digitar
sout e apertar a tecla TAB em seguida.
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
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
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
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
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
DIGITE O CDIGO
DIGITE O CDIGO
GRAVE O PROJETO
EXECUTE O PROJETO
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.
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?
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
O que ...
this
???
Os atributos
funcionam
como variveis
globais dentro
da classe
Isso significa
que essas
variveis
podem ser
acessadas nos
mtodos
que, neste
caso,
Setters e GettersOcorre
Criando
Setters
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
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
EXECUTE O PROJETO
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
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
Acrescentando atributos
Acrescente o atributo autor como String:
Acrescentando atributos
Acrescente o atributo autor como String:
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
Houve uma
diviso por
zero!
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
Todo bloco try
Isso pode ser feito assim...
Classe Exception
A classe Exception genrica
Object
String
Produto
ArithmeticException
SQLException
Exception
NullPointerException
Classe Exception
Como tratar erros diferentes?
try {
Mais Especfico
} 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
PERGUNTAS?