Upload
robson-rodrigues-freitas
View
220
Download
0
Embed Size (px)
Citation preview
7/25/2019 psw_aula01
1/184
PROGRAMAOSERVIDOREMSISTEMASWEB
Prof. Dr. Daniel Caetano
2013 - 2
RETOMANDO:
JAVAECLASSES
7/25/2019 psw_aula01
2/184
Objetivos
Retomar a Linguagem Java
Retomar o conceito de Classes
Tratamento de Erros
GRUPOS? At o fim da aula!
7/25/2019 psw_aula01
3/184
Material de Estudo
Material Acesso ao Material
Notas de Aula http://www.caetano.eng.br/(Prog. Serv. WebAula 1)
Apresentao http://www.caetano.eng.br/(Prog. Serv. Web - Aula 1)
Material Didtico -
Java: ComoProgramar
(6 Edio) Pginas 24 a 38, 57 a 73, 86 a 110, 126 a150
7/25/2019 psw_aula01
4/184
REVISORELMPAGODEJAVA
7/25/2019 psw_aula01
5/184
Estrutura do Cdigo
Programa em C/C++
programa.cpp
funcao1
main
funcao2
funcao3
Programa em Java
projeto.exe
Projeto.java
metodo1
main
projeto.jar
Pacote
Projeto
Pacote
Classe
7/25/2019 psw_aula01
6/184
Estrutura do Cdigo
Programa em Java
projeto
Executvel:
Projeto.jar
Diretrio:
/projeto
Diretrio:
/projeto/projeto
Diretrio:
/projeto/umpacote1
Diretrio:
/projeto/umpacote2
7/25/2019 psw_aula01
7/184
Estrutura de um Cdigo Java
Arquivo:Projeto.java Indica o pacoteSEMPRE a primeira coisa!
7/25/2019 psw_aula01
8/184
Estrutura de um Cdigo Java
Arquivo:Projeto.javaTodo programa do
NetBeans tem uma classeprincipal, de mesmonome que o Projeto)
...e, assim como em C,todo programa Java ter
um mtodo main...
7/25/2019 psw_aula01
9/184
Funo das classes
Basicamente: classe um pequeno programa
Um subsistema (pacote) contm vriospequenos programas (classes)
Um sistema (projeto) contm vriossubsistemas (pacotes)
Analogia?
7/25/2019 psw_aula01
10/184
Analogia da Estruturao Java
Projeto Microsoft Office
Pacote Microsoft Word
Classe Documento
Mtodo Corrigir
7/25/2019 psw_aula01
11/184
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)
7/25/2019 psw_aula01
12/184
E se eu no quiser?
E se eu desejar criar um mtodo que outrasclasses no possam executar?
Na verdade, para que esse mtodo possa ser
executado por outras classes, ele deve serpblico... Observe!
7/25/2019 psw_aula01
13/184
E se eu no quiser?
Para impedir que um mtodo possa serexecutado por outra classe, bastar declar-locomo private .
7/25/2019 psw_aula01
14/184
ELEMENTOSBSICOSDEJAVA
7/25/2019 psw_aula01
15/184
Imprimindo em Java
Impresso NormalSystem.out.print(texto);
System.out.print(var);
System.out.print(texto + var);
System.out.println(texto);
Impresso FormatadaSystem.out.printf(texto);
System.out.printf(texto %d\n, var);
7/25/2019 psw_aula01
16/184
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.
7/25/2019 psw_aula01
17/184
Hello World em Java
7/25/2019 psw_aula01
18/184
Variveis Nativas em Java
Normalmente useramos apenas: int, doublee boolean...
7/25/2019 psw_aula01
19/184
Operadores em Java
Operadores Bsicos+ - * / %
== = != && ||
7/25/2019 psw_aula01
20/184
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 */
7/25/2019 psw_aula01
21/184
CONTROLEDEFLUXO
7/25/2019 psw_aula01
22/184
Estruturas de Seleo
if ~ else
7/25/2019 psw_aula01
23/184
Estruturas de Seleo
switch ~ case
7/25/2019 psw_aula01
24/184
Estruturas de Repetio
while
7/25/2019 psw_aula01
25/184
Estruturas de Repetio
do ~ while
7/25/2019 psw_aula01
26/184
Estruturas de Repetio
for
7/25/2019 psw_aula01
27/184
VARIVEISNONATIVAS
7/25/2019 psw_aula01
28/184
O que so variveis no nativas?
So variveis programadas
No fazem parte da linguagem em si, masde sua biblioteca
So programadas na forma de Classes
Facilitam muito a programao
7/25/2019 psw_aula01
29/184
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 usadasnormalmente na maioria das situaes
7/25/2019 psw_aula01
30/184
Imprimindo Strings
7/25/2019 psw_aula01
31/184
Somando Strings
7/25/2019 psw_aula01
32/184
Imprimindo Soma de Strings
7/25/2019 psw_aula01
33/184
Vantagens de Variveis No Nativas
Como so classes, elas no apenas guardaminformao, mas tambm executam tarefas
Ex.: uma String sabe responder seu prprio
comprimento (quantas letras possui):
7/25/2019 psw_aula01
34/184
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 seutipo iniciado em letra maiscula Ex.: String, Integer, Double...
7/25/2019 psw_aula01
35/184
Como saber que mtodos existem?
Documentao
No NetBeans, digite o nome da varivelseguido de ponto (.) e aguarde alguns
instantes...
7/25/2019 psw_aula01
36/184
NetBeans
Esse NetBeans parece legal...
Como eu uso isso?
Primeiro voc precisa instalar o Java SE JDKhttp://www.oracle.com/technetwork/java/javase/downloads/
java-se-jdk-7-download-432154.html
Depois voc deve instalar o NetBeanshttp://netbeans.org/downloads/
http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://netbeans.org/downloads/http://netbeans.org/downloads/http://netbeans.org/downloads/http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html7/25/2019 psw_aula01
37/184
RELEMBRANDO:
NETBEANS
7/25/2019 psw_aula01
38/184
Iniciando um Projeto
Clique no cone de novo projeto
7/25/2019 psw_aula01
39/184
Iniciando um Projeto
Escolha o tipo: Javae Aplicativo Java
7/25/2019 psw_aula01
40/184
Iniciando um Projeto
D um nome ao seu projeto: Projeto1
7/25/2019 psw_aula01
41/184
Iniciando um Projeto
D um nome ao seu projeto: Projeto1
Nomes de projeto devem
a) Comear com letra maisculab) No ter espaosc) No usar acentos ou caracteres especiaisd) Ex.: MeuProjeto
7/25/2019 psw_aula01
42/184
Tela Principal
7/25/2019 psw_aula01
43/184
Tela Principal
REA DE CONTROLE
7/25/2019 psw_aula01
44/184
Tela Principal
GRAVAR PROJETO
7/25/2019 psw_aula01
45/184
Tela Principal
EXECUTAR PROJETO
7/25/2019 psw_aula01
46/184
Tela Principal
REA DE PROJETO
7/25/2019 psw_aula01
47/184
Tela Principal
PROJETO ABERTO(ativo fica em negrito)
7/25/2019 psw_aula01
48/184
Tela Principal
PACOTES DE CDIGO
7/25/2019 psw_aula01
49/184
Tela Principal
BIBLIOTECAS(Ex.: Banco de Dados)
7/25/2019 psw_aula01
50/184
Tela Principal
PACOTE PRINCIPAL(mesmo nome do projeto)
7/25/2019 psw_aula01
51/184
Tela Principal
CLASSE PRINCIPAL(mesmo nome do projeto)
7/25/2019 psw_aula01
52/184
Tela Principal
REA DE CDIGO
7/25/2019 psw_aula01
53/184
Tela Principal
REA DE MENSAGENS
7/25/2019 psw_aula01
54/184
Tela Principal
NAVEGADOR
7/25/2019 psw_aula01
55/184
Adicionando algum cdigo
DIGITE O CDIGO
7/25/2019 psw_aula01
56/184
Adicionando algum cdigo
DIGITE O CDIGO
7/25/2019 psw_aula01
57/184
Adicionando algum cdigo
GRAVE O PROJETO
7/25/2019 psw_aula01
58/184
Adicionando algum cdigo
EXECUTE O PROJETO
7/25/2019 psw_aula01
59/184
Adicionando algum cdigo
VEJA O RESULTADO
7/25/2019 psw_aula01
60/184
CLASSESEMJAVA
7/25/2019 psw_aula01
61/184
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.
7/25/2019 psw_aula01
62/184
Definindo uma classe
Iniciaremos criando um projeto
7/25/2019 psw_aula01
63/184
Definindo uma classe
Escolha o tipo: Javae Aplicativo Java
7/25/2019 psw_aula01
64/184
Definindo uma classe
D um nome ao seu projeto: ex.: Projeto2
Projeto2
7/25/2019 psw_aula01
65/184
Definindo uma classe
D um nome ao seu projeto: ex.: Projeto2
Nomes de projeto devem
a) Comear com letra maisculab) No ter espaosc) No usar acentos ou caracteres especiaisd) Ex.: MeuProjeto
Projeto2
7/25/2019 psw_aula01
66/184
Definindo uma classe
D um nome ao seu projeto: ex.: Projeto2
Projeto2
7/25/2019 psw_aula01
67/184
Definindo uma Classe As classes devem ficar dentro de pacotes;
Assim, clique com o boto direito no cone dopacote que tem o nome do projeto (projeto2)
7/25/2019 psw_aula01
68/184
Definindo uma Classe Agora selecione novo> classe java
7/25/2019 psw_aula01
69/184
Definindo uma Classe Agora d um nome classe: Produto
7/25/2019 psw_aula01
70/184
Definindo uma Classe Agora d um nome classe: Produto
Nomes de CLASSES devem
a) Comear com letra maiscula
b) No ter espaosc) No usar acentos ou caracteres especiaisd) Ex.: Produto
7/25/2019 psw_aula01
71/184
Definindo uma Classe E clique em finalizar
7/25/2019 psw_aula01
72/184
Definindo uma Classe Observe a classe na rea de projeto
7/25/2019 psw_aula01
73/184
Definindo uma Classe Clique 2 vezes nesse cone para ver o cdigo
7/25/2019 psw_aula01
74/184
Limpando a rea Vamos apagar os comentrios do NetBeans
7/25/2019 psw_aula01
75/184
Adicionando Atributos Vamos adicionar atributosno produto
7/25/2019 psw_aula01
76/184
Adicionando Atributos Vamos adicionar atributosno produto
7/25/2019 psw_aula01
77/184
Adicionando Atributos Vamos adicionar atributosno produto
7/25/2019 psw_aula01
78/184
Adicionando Atributos Vamos adicionar atributosno produto
Observe
a)Nossa classe pode guardartrs valoresb)Eles so privados
c)Apenas cdigo da prpriaclasse pode ler e escrevernessas variveis!
7/25/2019 psw_aula01
79/184
Escopo e Visibilidade O que cdigo da prpria classe?
Aquele que for definido narea marcada!
7/25/2019 psw_aula01
80/184
Setters e Getters Como modificar estes valores?
7/25/2019 psw_aula01
81/184
Setters e Getters
Vamos acrescentar mtodos pblicos? Os mtodos que servem para modificar
atributos so chamados desetters.
Se o nome do atributo idade, o nome dosetterser setIdade().
Se o nome do atributo sexo, o nome do
setterser setSexo().
7/25/2019 psw_aula01
82/184
Setters e Getters
Entre parnteses devemos indicar o novo valordesejado para o atributo
Ex.: setIdade(23)
Como a criao desses mtodos absolutamente mecnica, o NetBeans a realiza
por ns
d
7/25/2019 psw_aula01
83/184
Setters e GettersCriando Setters Clique com o boto direito na rea da classe
i d
7/25/2019 psw_aula01
84/184
Setters e GettersCriando Setters Selecione a opo inserir cdigo
S G C i d S
7/25/2019 psw_aula01
85/184
Setters e GettersCriando Setters No menu, selecione Setter...
S G C i d S
7/25/2019 psw_aula01
86/184
Setters e GettersCriando Setters Selecione a caixinha de Produto para marcar
todos os atributos ao mesmo tempo
S G C i d S
7/25/2019 psw_aula01
87/184
Setters e GettersCriando Setters Pronto! O NetBeans criou tudo sozinho!
S tt G tt C i d S tt
7/25/2019 psw_aula01
88/184
Setters e GettersCriando Setters Mas tem alguma coisa estranha a...
O que ...this
???
S tt G tt C i d S tt
7/25/2019 psw_aula01
89/184
Setters e GettersCriando Setters Primeiro vamos entender uma coisa...
Os atributosfuncionamcomo variveisglobaisdentro
da classe
S tt G tt C i d S tt
7/25/2019 psw_aula01
90/184
Setters e GettersCriando Setters Primeiro vamos entender uma coisa...
Isso significa
que essasvariveis
podem ser
acessadas nosmtodos
S tt G tt C i d S tt
Ocorre q e neste caso
7/25/2019 psw_aula01
91/184
Setters e GettersCriando Setters Primeiro vamos entender uma coisa...
Ocorre que, neste caso,foram definidos
parmetros com osmesmos nomes dosatributos... Observe!
S tt G tt C i d S tt
Isso cria confuso: se no
7/25/2019 psw_aula01
92/184
Setters e GettersCriando Setters Primeiro vamos entender uma coisa...
Isso cria confuso: se, nomtodo setDesc,
escrevermos,
desc = OlEstamos mudando o valor doatributo ou do parmetro?
S tt G tt C i d S tt
7/25/2019 psw_aula01
93/184
Setters e GettersCriando Setters Primeiro vamos entender uma coisa...O Java soluciona isso da seguinte forma: sempre que
houver confuso entre nomes de variveis de um
mtodo com os nomes de atributos de uma classe,devemos usar a palavra this para nos referir ao atributo.
S tt G tt C i d S tt
7/25/2019 psw_aula01
94/184
Setters e GettersCriando Setters Primeiro vamos entender uma coisa...O Java soluciona isso da seguinte forma: sempre que
houver confuso entre nomes de variveis de um
mtodo com os nomes de atributos de uma classe,devemos usar a palavra this para nos referir ao atributo.
Setters Getters C i d Setters
7/25/2019 psw_aula01
95/184
Setters e GettersCriando Setters Primeiro vamos entender uma coisa...O Java soluciona isso da seguinte forma: sempre que
houver confuso entre nomes de variveis de um
mtodo com os nomes de atributos de uma classe,devemos usar a palavra this para nos referir ao atributo.
Setters e Getters
7/25/2019 psw_aula01
96/184
Setters e Getters
Agora j sabemos como mudar os valores dosatributos. Mas como ler estes valores?
Os mtodos que servem para ler atributos so
chamados degetters. Se o nome do atributo idade, o nome dogetterser getIdade.
Se o nome do atributo sexo, o nome dogetterser getSexo.
Deu para pegar a idia?
Setters e Getters Criando Getters
7/25/2019 psw_aula01
97/184
Setters e GettersCriando Getters Clique com o boto direito na rea da classe
Setters e Getters Criando Getters
7/25/2019 psw_aula01
98/184
Setters e GettersCriando Getters Selecione a opo inserir cdigo
Setters e Getters Criando Getters
7/25/2019 psw_aula01
99/184
Setters e GettersCriando Getters No menu, selecione Getter...
Setters e Getters Criando Getters
7/25/2019 psw_aula01
100/184
Setters e GettersCriando Getters Selecione a caixinha de Produto para marcar
todos os atributos ao mesmo tempo
Setters e Getters Criando Getters
7/25/2019 psw_aula01
101/184
Setters e GettersCriando Getters Pronto! O NetBeans criou tudo sozinho!
Setters e Getters Criando Getters
7/25/2019 psw_aula01
102/184
Setters e GettersCriando Getters Observe os getters de
perto.
Eles simplesmenteretornam o valor do
atributo! Observe que, neste
caso, como no h
confuso, no necessrio usar apalavra this
Setters e Getters
7/25/2019 psw_aula01
103/184
Setters e Getters
Qual a vantagem de usar getters e setters?1. Se voc no quiser que um atributo sejamodificado por outras classes, remova o setterdaquela varivel
2. Se voc no quiser que um atributo seja lido poroutras classes, remova o getterdaquela varivel
3. O setterpermite validar os dados antes de
armazen-los, evitando que dados incorretossejam colocados nos atributos
4. O getter permite esconder o formato (tipo dedado) com que um atributo est armazenado
Setters e Getters
7/25/2019 psw_aula01
104/184
Setters e Getters
Qual a vantagem de usar getters e setters?1. Se voc no quiser que um atributo sejamodificado por outras classes, remova o setterdaquela varivel
2. Se voc no quiser que um atributo seja lido poroutras classes, remova o getterdaquela varivel
3. O setterpermite validar os dados antes de
armazen-los, evitando que dados incorretossejam colocados nos atributos
4. O getter permite esconder o formato (tipo dedado) com que um atributo est armazenado
Encapsulamento
7/25/2019 psw_aula01
105/184
PAUSAPARAOCAF!
7/25/2019 psw_aula01
106/184
OBJETOSEMJAVA
O que so Objetos?
7/25/2019 psw_aula01
107/184
O que so Objetos?
Ok, aprendemos a criar uma classe, mascomo usamos isso?
Como apresentado, uma das funes das
classes permitir a definio de tipos dedados no nativos, para guardar dados deformato especfico
Assim, a classe define apenas o tipododado; definir uma classe no significa que jpodemos guardar informaes
O que so Objetos?
7/25/2019 psw_aula01
108/184
O que so Objetos? Uma classe como uma planta baixa de
uma casa: diz como uma casa , mas no dpra morar nela!
O que so Objetos?
7/25/2019 psw_aula01
109/184
O que so Objetos? Uma classe como uma planta baixa de
uma casa: diz como uma casa , mas no dpra morar nela! preciso construir
O que so Objetos?
7/25/2019 psw_aula01
110/184
O que so Objetos? Uma classe como uma planta baixa de
uma casa: diz como uma casa , mas no dpra morar nela!Transformar a planta
O que so Objetos?
7/25/2019 psw_aula01
111/184
O que so Objetos? Uma classe como uma planta baixa de
uma casa: diz como uma casa , mas no dpra morar nela!Em um OBJETO
Como criar objetos?
7/25/2019 psw_aula01
112/184
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?
7/25/2019 psw_aula01
113/184
Como criar objetos?
Apague os comentrios do NetBeans...
Como criar objetos?
7/25/2019 psw_aula01
114/184
Como criar objetos?
Apague os comentrios do NetBeans...
Como criar objetos?
7/25/2019 psw_aula01
115/184
Como criar objetos?
Vamos declarar uma varivel para o produto
Como criar objetos?
7/25/2019 psw_aula01
116/184
Como criar objetos?
Vamos declarar uma varivel para o produto
Como criar objetos?
7/25/2019 psw_aula01
117/184
Como criar objetos?
Agora vamos criar o objeto
Como criar objetos?
7/25/2019 psw_aula01
118/184
Como criar objetos?
Agora vamos criar o objeto
Como criar objetos?
7/25/2019 psw_aula01
119/184
Como criar objetos?
E armazenar algumas informaes
Como criar objetos?
7/25/2019 psw_aula01
120/184
Como criar objetos?
E armazenar algumas informaes
Como criar objetos?
7/25/2019 psw_aula01
121/184
Como criar objetos?
E, agora, vamos imprimir alguns dados...
Como criar objetos?
7/25/2019 psw_aula01
122/184
Como criar objetos?
E, agora, vamos imprimir alguns dados...
Como criar objetos?
7/25/2019 psw_aula01
123/184
Como criar objetos? Execute o projeto...
EXECUTE O PROJETO
Como criar objetos?
7/25/2019 psw_aula01
124/184
Como criar objetos? E veja o resultado...
VEJA O RESULTADO
7/25/2019 psw_aula01
125/184
HERANA
O que herana?
7/25/2019 psw_aula01
126/184
O que e a a
Herana uma das caractersticas mais teisdas 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?
7/25/2019 psw_aula01
127/184
H pouco criamos uma classe querepresenta 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?
7/25/2019 psw_aula01
128/184
Temos duas alternativas:1. Criar uma classe chamada Livroe reescrevertodo o cdigo que j havamos colocando naclasse Produto
2. Criar uma classe Livroe reaproveitarasfuncionalidades que j esto disponveis naclasse Produto
A opo dois pode ser feita justamente coma tal da herana
Herana em Java
7/25/2019 psw_aula01
129/184
Livro
autor / setAutor / getAutor
No Java, a herana funciona assim:
1. Temos uma classe original, que chamamos desuperclasse ou classe pai, da qual queremos herdarfuncionalidades.
2. E vamos criar uma classe derivada, que chamamosde subclasse ou classe filha, que ir extender asfuncionalidades da classe pai
Produtoid / setId / getId
nome / setNome / getNomedesc / setDesc / getDesc
Herana em Java
7/25/2019 psw_aula01
130/184
Livro
autor / setAutor / getAutor
No Java, a herana funciona assim:
1. Temos uma classe original, que chamamos desuperclasse ou classe pai, da qual queremos herdarfuncionalidades.
2. E vamos criar uma classe derivada, que chamamosde subclasse ou classe filha, que ir extender asfuncionalidades da classe pai
Produtoid / setId / getId
nome / setNome / getNomedesc / setDesc / getDesc
Apenas ascaractersticas pblicas
so herdadas...!
Produtoid / setId / getId
nome / setNome / getNomedesc / setDesc / getDesc
Herana em Java
7/25/2019 psw_aula01
131/184
Livro
autor / setAutor / getAutor
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
Livroser, ao mesmo tempo, um objeto dotipo Produto
ProdutosetId / getId
setNome / getNomesetDesc / getDesc
Definindo uma Classe Filha
7/25/2019 psw_aula01
132/184
Para criar a nova classe, clique com o boto
direito no cone do pacote que tem o nome doprojeto (projeto2)
Definindo uma Classe Filha
7/25/2019 psw_aula01
133/184
Agora selecione novo> classe java
Definindo uma Classe Filha
7/25/2019 psw_aula01
134/184
Agora d um nome classe: Livro
Definindo uma Classe Filha
7/25/2019 psw_aula01
135/184
Agora d um nome classe: Livro
Nomes de CLASSES devem
a) Comear com letra maisculab) No ter espaosc) No usar acentos ou caracteres especiaisd) Ex.: Livro
Definindo uma Classe Filha
7/25/2019 psw_aula01
136/184
E clique em finalizar
Definindo uma Classe Filha
7/25/2019 psw_aula01
137/184
Observe a classe na rea de projeto
Definindo uma Classe Filha
7/25/2019 psw_aula01
138/184
Clique 2 vezes nesse cone para ver o cdigo
Limpando a rea da Classe Filha
7/25/2019 psw_aula01
139/184
Vamos apagar os comentrios do NetBeans
Informando quem a Classe Pai
7/25/2019 psw_aula01
140/184
Indique que esta classe extends Produto :
Informando quem a Classe Pai
7/25/2019 psw_aula01
141/184
Indique que esta classe extends Produto :
Com isso j podemos usar a classeLivro como se fosse um Produto...
Mas queremos adicionar o atributoautorao Livro, no ?
Acrescentando atributos
7/25/2019 psw_aula01
142/184
Acrescente o atributo autor como String:
Acrescentando atributos
7/25/2019 psw_aula01
143/184
Acrescente o atributo autor como String:
Criando os getterse setters
7/25/2019 psw_aula01
144/184
Clique com o boto direito na rea da classe
Criando os getterse setters
7/25/2019 psw_aula01
145/184
Selecione Inserir cdigo...
Criando os getterse setters
7/25/2019 psw_aula01
146/184
Selecione a opo Getter e setter...
Criando os getterse setters
7/25/2019 psw_aula01
147/184
E marque os atributos para os quais quer gerar
getterse setters
Criando os getterse setters
7/25/2019 psw_aula01
148/184
O cdigo ser gerado automaticamente
Como criar objetos?
7/25/2019 psw_aula01
149/184
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
7/25/2019 psw_aula01
150/184
E modifique o cdigo assim
Modificando o cdigo main
7/25/2019 psw_aula01
151/184
E modifique o cdigo assim
Modificando o cdigo main
7/25/2019 psw_aula01
152/184
Execute e veja o resultado! O que acontece se voc tentar executar os
mtodos setAutorou getAutorpor p?
Modificando o cdigo main
7/25/2019 psw_aula01
153/184
Por que isso acontece?
Porque p do tipo Produto... E Produtonodefine os mtodos setAutore getAutor!
Modificando o cdigo main
7/25/2019 psw_aula01
154/184
Repare, por outro lado, que todos os mtodosde Produtopodem ser usados com a variveldo tipo Livro!
Modificando o cdigo main
7/25/2019 psw_aula01
155/184
O que acontece se mudarmos o tipo davarivel lde Livropara Produto?
Que mtodos ficam disponveis em l?
o tipo da varivel que define quaismtodos podem ser chamados
Modificando o cdigo main
7/25/2019 psw_aula01
156/184
Para saber quais mtodos esto disponveis,basta digitar o nome da varivel e adicionarum .:
Modificando o cdigo main
7/25/2019 psw_aula01
157/184
Para saber quais mtodos esto disponveis,basta digitar o nome da varivel e adicionarum .:
Mtodos emnegrito esto
definidos
nesta classe...
Mas e essesoutros?
Mtodos Herdados
7/25/2019 psw_aula01
158/184
Object pai de todas as classes do Java
Object
ProdutoString
Livro
Mtodos Herdados
7/25/2019 psw_aula01
159/184
Object pai de todas as classes do Java
Object
ProdutoString
Livro
Superclasse ouClasse Pai
Subclasse ouClasse Filha
7/25/2019 psw_aula01
160/184
TRATAMENTODEERROS
Tratamento de Erros em Java
7/25/2019 psw_aula01
161/184
O Java tem um jeito todo especial depermitir que lidemos com erros que possamocorrer durante a execuo
Melhor do que explicar a teoria, tudo ficamais simples quando vemos acontecer!
Feche o projeto anterior e crie um novoprojeto JavaAplicao Java no NetBeans, ed o nome de Projeto3.
Tratamento de Erros em Java
7/25/2019 psw_aula01
162/184
No mtodo main, digite o seguinte cdigo:
Tratamento de Erros em Java
7/25/2019 psw_aula01
163/184
No mtodo main, digite o seguinte cdigo:
Tratamento de Erros em Java
7/25/2019 psw_aula01
164/184
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
7/25/2019 psw_aula01
165/184
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
Se clicar nesse link, o
NetBeans lhe mostrar emque linha o erro ocorreu
Tratamento de Erros em Java
7/25/2019 psw_aula01
166/184
Que exatamente nessa:
Houve uma
diviso porzero!
Tratamento de Erros em Java
7/25/2019 psw_aula01
167/184
Neste caso, poderamos simplesmentecorrigir o programa, afinal, os valores soestticos...
Mas e se os dados de entrada fossemfornecidos 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 mostrarcomo fazer o segundo
Tratamento de Erros em Java Primeiro iremos modificar o programa assim
7/25/2019 psw_aula01
168/184
Primeiro iremos modificar o programa assim
O blocotryindica
para o Java quepode ocorrer um
erro a dentro!
Tratamento de Erros em Java Primeiro iremos modificar o programa assim
7/25/2019 psw_aula01
169/184
Primeiro iremos modificar o programa assim
O NetBeans indica
erro porque, se podeocorrer um erro, o
programador
obrigado a dizer oque fazer caso ele
ocorra!
Tratamento de Erros em Java Isso pode ser feito assim
7/25/2019 psw_aula01
170/184
Isso pode ser feito assim...
Tratamento de Erros em Java Isso pode ser feito assim
Todo blocotry
7/25/2019 psw_aula01
171/184
Isso pode ser feito assim...precisa terpelomenosum catch
Tratamento de Erros em Java O que esse Exception?
7/25/2019 psw_aula01
172/184
O que esse Exception?
Tratamento de Erros em Java O que esse Exception?
7/25/2019 psw_aula01
173/184
O que esse Exception?
Exception um tipo de dado nonativo (observe a letra maiscula!)
que guarda informaes sobre oerro ocorrido!
Tratamento de Erros em Java Faa a modificao execute e observe!
7/25/2019 psw_aula01
174/184
Faa a modificao, execute e observe!
Tratamento de Erros em Javal f l d ?
7/25/2019 psw_aula01
175/184
Qual foi o resultado?
Essa linha contm uma das informaes
guardadas pela classe Exception!
Classe ExceptionA l i i
7/25/2019 psw_aula01
176/184
A classe Exception genrica
Object
ProdutoString Exception
SQLExceptionArithmeticException NullPointerException
Classe ExceptionC dif ?
7/25/2019 psw_aula01
177/184
Como tratar erros diferentes?
try {
// Seu cdigo aqui
} catch (ArithmeticException e) {// Tratamento de erro na operao
} catch (Exception e) {
// Tratamento de qualquer outro erro
}
Mais Especfico
Mais Genrico
Classe Exception Como e ec tar al o ao fim de todos os casos?
7/25/2019 psw_aula01
178/184
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
}
7/25/2019 psw_aula01
179/184
ORIENTAOTRABALHOA
Orientao do Trabalho A
O T b lh A j t li
7/25/2019 psw_aula01
180/184
O Trabalho A j est online
Entre no SIA, na rea Minhas DisciplinasPresenciais, na disciplina ProgramaoServidor para Sistemas Web e, finalmente,
clique em Trabalhos. Leia atentamente e resolva com calma
Observe agoraa explicao do professor
sobre QUAIS arquivos devem ser enviados(as pastas srce webde cada projeto)
7/25/2019 psw_aula01
181/184
ENTREGADOSGRUPOSDETRABALHO
7/25/2019 psw_aula01
182/184
CONCLUSES
Resumo A linguagem Java possui muitos recursos
7/25/2019 psw_aula01
183/184
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?
7/25/2019 psw_aula01
184/184
PERGUNTAS?