Programación informática, consultoría de informática y actividades ...
Departamento de Informática Comdex Internet...
Transcript of Departamento de Informática Comdex Internet...
![Page 1: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/1.jpg)
Comdex Internet Brasil’96Tutorial T5: Desenvolvimento em Java(tm)
Jorge Henrique Cabral FernandesDepartamento de InformáticaUniversidade Federal de Pernambuco
![Page 2: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/2.jpg)
Créditos
Andreia Almeida de AlcântaraJorge Henrique Cabral FernandesJulianne Freire de Sousa PepeuSilvio Romero de Lemos Meira
![Page 3: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/3.jpg)
Distribuição do Material para este Tutorial
• Feita através de disquete– Arquivos HTML em três formatos: tar, zip e arj
• Páginas HTML contêm a informação a ser apresentada, com links para diversos recursos na Internet
• Disponibilização desta apresentação na Internet, acessível através da home-page de Java, no DI-UFPE
![Page 4: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/4.jpg)
Introdução
• Java é a linguagem de programação para a Internet
• Quais as principais características de Java ?• Qual o nicho que Java ocupa no
desenvolvimento de software ?• Como desenvolver software em Java ?• Apresentação direcionada a analistas e
programadores
![Page 5: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/5.jpg)
Programação
• Parte 1: O Contexto de Java na Internet• Parte 2: O paradigma da linguagem Java• Parte 3: Elementos e especificações da
Linguagem Java• Parte 4: Threads e exceções em Java• Parte 5: Ambientes de desenvolvimento
para Java• Parte 6: Desenvolvendo software com Java
![Page 6: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/6.jpg)
Parte 1: O Contexto de Java na Internet
Internet
WWW
CGI
Java
Applets
JavaScript
![Page 7: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/7.jpg)
Internet
Internet(TCP/IP)
Aplicações• telnet
terminal remoto
• ftptransferência de arquivos
• e-mailcorreio eletrônicoServidor
Cliente
![Page 8: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/8.jpg)
World Wide WebHipermídia para a Internet
• Universal Resource Locator (URL)– Endereça universalmente recursos hipermídia
• Hypertext Markup Language (HTML)– Descreve documentos hipertextuais
• Hypertext Transfer Protocol (HTTP)– Permite transferência de documentos hipermídia
• Web Server (WWW server, HTTP server)– Disponibiliza documentos hipermídia na Web
• Web Browser (folheador, ex: Netscape e Internet Explorer)– Acessa e mostra documentos hipermídia
![Page 9: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/9.jpg)
Servidores e Clientes WebWeb Server
WWW(HTTP)
Web Browser
Base de documentos hipermídia
Este é o destino
URLEste é o destino
![Page 10: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/10.jpg)
Nome
End
CPF
Formulário
Nome
End
CPF
Alex
Recife
999.999
FormulárioCGIscriptCGIscript
Alex
CGI e Formulários:Acrescentando dinamismo à Web
Web ServerWWW(HTTP)
Web Browser
![Page 11: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/11.jpg)
Limitações e Vantagens do Modelo CGI+Forms
• Entrada de dados orientada a caracteres• Modelo computacional batch
– preenchimento de dados em bloco– sem tratamento de sessões
• Processamento centralizado no servidor– um processo criado para cada invocação
• Segurança para o servidor• Extensamente testado e aprovado
![Page 12: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/12.jpg)
Java: uma Linguagem Orientada a Objetos
• Sintaxe similar a C++• Objetos, classes e
interfaces• Herança simples e
múltiplas interfaces• Threads e monitores• Tratamento de
exceções
• Tipos fortes, com “dynamic binding”
• Bytecode interpretado sobre máquina virtual
• Coleta de lixo • Sem aritmética de
ponteiros• Bibliotecas portáveis • Integração com C/C++
![Page 13: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/13.jpg)
Não Confundir com JavaScript• Linguagem de criação de scripts, com sintaxe
similar a Java, desenvolvida pela Netscape• Poder computacional limitado• Scripts interpretados pelo Netscape Navigator,
sem máquina virtual• Permite a execução de tarefas simplificadas no
cliente:– Consistência de formulários– Geração de páginas, etc.
![Page 14: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/14.jpg)
Applets
• “Pequenos” programas Java;• que são disponibilizados em Web servers;• e se hospedam dentro de páginas HTML.• O código do applet é copiado para o browser,
juntamente com a página HTML.• O código é executados por máquinas virtuais
instaladas no browser.• A interface gráfica do applet ocupa uma área
bidimensional da página HTML
![Page 15: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/15.jpg)
Applets: Código Móvel para aWeb
Web ServerWWW(HTTP)
Web Browser
![Page 16: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/16.jpg)
Resumo da Parte 1: O Contexto de Java na Internet
• WWW: hipermídia para a Internet• HTTP, HTML e CGI: tecnologias
amadurecidas na Web• Java: linguagem orientada a objetos, de uso
geral, cujo código tem mobilidade• Applets em Java acrescentam maior
dinamismo à Web por executarem no lado do cliente, dentro de Web browsers
![Page 17: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/17.jpg)
Parte 2: Paradigma da Linguagem Java
• Orientação a Objetos– Aumenta a qualidade do projeto e código
• Código Móvel– Facilita a instalação da aplicação em diferentes
plataformas• Applet
– Facilita a disseminação da aplicação através daWeb
![Page 18: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/18.jpg)
Orientação a Objetos
• Objetos– Componentes de software que contêm um
estado e uma interface, e trocam mensagens• Classes
– “Moldes” para a criação de objetos• Herança
– Modelo de estruturação de classes, que facilita a reusabilidade de código
![Page 19: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/19.jpg)
Objetos Trocam Mensagens
Cliente ContaBancária
debite(100, “11, 5, 1996”)
contaBancaria.debite(100, “11, 5, 1996”);
![Page 20: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/20.jpg)
Classes são Moldes para a Criação de Objetos
newnewnew
newnew
newnew
new
![Page 21: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/21.jpg)
Definindo a ClasseContaBancaria
class contaBancária {int saldo;
/* metodo construtor */ContaBancaria(int saldoInicial) {
saldo = saldoInicial;}
/* metodo de instancia */void debite(int valor, String data) {
...}
}
![Page 22: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/22.jpg)
Criando Contas Bancáriasclass ContaBancaria
ContaBancaria(int)
ContaBancaria(int) Método construtor
saldo
saldo Variável de instância
debite(int, String)
debite(int, String) Método de instância
Banco
new ContaBancaria(100)100
new ContaBancaria(55)
55
new ContaBancaria(-33) -33
![Page 23: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/23.jpg)
Herança: Estruturação eReusabilidade
ContaBancaria
saldotransacoes
herdaContaCorrente
talonariosPoupanca
jurostaxaJuros
herda
ContaEspecial
limitetaxaJuros
herda
![Page 24: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/24.jpg)
Classe ContaCorrente
class ContaCorrente extends ContaBancaria {int talonarios;
}
ContaCorrente
saldotransacoestalonarios
newnew
saldotransacoestalonarios
![Page 25: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/25.jpg)
Classe ContaEspecial
class ContaEspecial extends ContaCorrente {int limite;float taxaJuros;
}ContaEspecial
saldotransacoestalonarios
limitetaxaJuros
new
new
saldotransacoestalonarios
limitetaxaJuros
![Page 26: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/26.jpg)
Classe Poupanca
class Poupanca extends ContaBancaria {int juros;float taxaJuros;
}Poupanca saldo
transacoesjuros
taxaJuros
new
new
saldotransacoes
jurostaxaJuros
![Page 27: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/27.jpg)
Benefícos da Herança
• Fatoração e redução do tamanho do código• Estruturação do código• Aumenta a reutilização de código• Redução do esforço de evolução da
aplicação• Melhoria da qualidade do código
![Page 28: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/28.jpg)
Tecnologia de Código Móvel em Java
• Programas compilados são um conjunto de classes
• O código gerado é arquiteturalmente neutro, executado sobre uma máquina virtual
• Recursos nativos do sistema operacional são tratados de modo abstrato
![Page 29: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/29.jpg)
Compilação de um Programa em Java
ContaBancaria.java
Poupanca.java
ContaCorrente.java
ContaBancaria.class
Poupanca.class
ContaCorrente.class
![Page 30: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/30.jpg)
Execução de um Programa em Java
Software Chip
Área de objetos
Area de métodos
Sistema Operacionalcom coleta de lixo
![Page 31: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/31.jpg)
Recursos Nativos do Ambiente de Execução
São isolados através de classes com métodos nativos internos, classes abstratas e interfaces
• Sistema de Arquivos– java.io
• Sistema de Interface Gráfica– java.awt, java.awt.peer, java.awt.image
• Comunicações em rede (sockets, etc)– java.net
![Page 32: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/32.jpg)
Applets Facilitam Disseminação de Código
• Funcionamento dos applets– Verificação do bytecode– Restrições de acesso
• Inserção de um applet em uma página HTML
• Mensagens mais importantes para mandar a um applet
![Page 33: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/33.jpg)
Funcionamento dos AppletsWeb Server
WWW(HTTP)
Web Browser
![Page 34: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/34.jpg)
Verificação do BytecodeWWW(HTTP)
Web Browser
?
![Page 35: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/35.jpg)
Restrições de Funcionamento dosApplets
Carregados viasistema de arquivos
Carregados via rede
![Page 36: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/36.jpg)
Restrições e Permissões dos AppletsCarregados Via Sistema de Arquivos
• Se carregados no Netscape, não podem ler ou gravar arquivos. carregados no appletviewer pode fazer leitura e escritura
• Podem fazer conecção de rede com qualquer host• Podem saber o nome do usuário• Podem carregar bibliotecas dinâmicas• Podem abrir uma janela pop-up sem warning
![Page 37: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/37.jpg)
Restrições e Permissões dos AppletsCarregados Via Rede
• Não podem ler ou gravar arquivos no cliente em qualquer situação
• Só podem fazer conecção de rede com ohost de onde veio
• Não tem acesso ao nome do usuário • Não podem carregar bibliotecas dinâmicas• Toda janela pop-up tem uma barra de
warning
![Page 38: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/38.jpg)
Inserção de um Applet em uma Página HTML
<html><body><h1>Este applet é bastante simples</h1><applet code=Clock.class
width=100height=200>
<param name=mode value=digital><param name=beep value=off></applet></body></html>
![Page 39: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/39.jpg)
Mensagens mais Importantes para Mandar a um Applet (1)
• void init()– Enviada uma única vez, logo após a criação do applet
• void paint(Graphics g)– Enviada sempre que o applet precisa atualizar a
interface• void start()
– Enviada sempre que a página do applet é visitada• void stop()
– Enviada sempre que a página do applet é sobreposta
![Page 40: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/40.jpg)
Mensagens mais Importantes para Mandar a um Applet (2)
• void destroy()– Enviada para o applet imediatamente antes de sua
destruição.
• String getParameter(String name)– Enviada para o applet a fim de descobrir os parâmetros
que lhes foram passados no código HTML
![Page 41: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/41.jpg)
Mensagens para um AppletWWW(HTTP)
Web Browser
new
init() paint()
nome:stop() nome:
start()
destroy()
![Page 42: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/42.jpg)
Resumo da Parte 2: Paradigma da Linguagem Java
• Orientação a objetos– Aumenta a qualidade do código
• Código Móvel– Aumenta a portabilidade e facilita a instalação
de aplicações• Applets
– Facilitam a disseminação de aplicações na Web
![Page 43: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/43.jpg)
Parte 3: Elementos e Especificações da Linguagem
Java
• JDK - Java Development Kit v. 1.0.2• API - Application Program Interface• Palavras chave
![Page 44: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/44.jpg)
JDK - Java Development Kit
• javac - compilador• java - interpretador• jdb - depurador simbólico• javah - interface com C• javap - desassemblador• javadoc - documentador • appletviewer - visualizador de applets
![Page 45: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/45.jpg)
javac - Compilador de Java
X.java
javac
X.class
![Page 46: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/46.jpg)
javadoc - Gerador de Documentação de Java
X.java
javadocPáginaHTML
X.html
class X
variable indexab
method indexint test()init()
![Page 47: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/47.jpg)
appletviewer - Visualizador deApplets
appletviewerURL
URL
WWW(HTTP)
Página HTML
Execução doApplet contidona página HTML
![Page 48: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/48.jpg)
API de Java
• java.lang• java.io• java.util• java.net• java.awt, java.awt.image, java.awt.peer• java.applet• sun.tools.debug
![Page 49: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/49.jpg)
java.langSuporte Básico aos Elementos da Linguagem
• Object• Class• Thread• Exception• String• Integer• ...
String
new String(“Comdex”);
Comdex
![Page 50: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/50.jpg)
java.io• File• InputStream• OutputStream File
File teste = new File(“Teste”)
TesteInputStream
new InputStream(teste)
OutputStreamnew OutputStream(teste)
read()write()
![Page 51: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/51.jpg)
java.util• Stack• Date• Vector
Stacknew Stack()
push()push()
push()push()
push()
![Page 52: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/52.jpg)
java.net• URL• URLConnection• Socket
URLnew URL(“http://www.di.ufpe.br”)
URLopen()
read()
Cliente
www.di.ufpe.br WWW(HTTP)
![Page 53: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/53.jpg)
java.awt• Component, Container• Frame, Panel• Button, List
Panel
Panel panel = new Panel()
Buttonpanel.add(new Button(“Start”))
add()
Start
panel.add(new Button(“Stop”))
add()
Stop
panel.add(new Button(“Cancel”))
add()
Cancel
![Page 54: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/54.jpg)
Palavras Chave de Java (1)• Pacotes
– import– package
• Tipos de dados primitivos– boolean– void– char– byte, short, int, long– float, double
![Page 55: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/55.jpg)
Palavras Chave de Java (2)
• Declaração de classes e interfaces– class– interface– extends– implements
• Criação de objetos– new
![Page 56: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/56.jpg)
l Literais– null– true, false
l Modificadores de visibilidade– private– protected– public
Palavras Chave de Java (3)
![Page 57: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/57.jpg)
Palavras Chave de Java (4)
• Tratamento de exceções• Desvio e Controle de Fluxo• Pseudo-variáveis• Teste de compatibilidade de tipo• Modificadores gerais de métodos e
variáveis
![Page 58: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/58.jpg)
Parte 4: Threads e Exceções em Java
• Threads– Facilitam a construção de software concorrente
• Tratamento de Exceções– Conferem homogeneidade e legibilidade ao
código
![Page 59: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/59.jpg)
Threads em um Programa Java
![Page 60: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/60.jpg)
Estados e Métodos de um ThreadThread
new Thread()
New
start()
Runnable
yield()
Runnable
Not Runnable
Runnable
stop()
stop()
stop()ou fimde run()
Dead
![Page 61: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/61.jpg)
Implementação de Threads
• Herdando da classe Thread ou de subclasses da classe Thread.
class MyThread extends Thread {}
l Implementando a interface Runnable e criando um thread. class MyThread extends Applet implements Runnable {}
![Page 62: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/62.jpg)
Herdando da Classe ThreadThread
RUN
MyThread
RUN RUN
Criação do objeto
Escalonador / Processador
RUNRUNRUN
RUNRUN
![Page 63: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/63.jpg)
Implementando Runnable
InterfaceRunnable
RUN
MyClassRUN
Thread
RUN
RUN
Criação do objeto
RUN
Criação do thread
Escalonador / Processador
RUNRUNRUN
RUNRUN
![Page 64: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/64.jpg)
O Applet Clock em Funcionamento
Browser
Página HTML
applet Clock
12:4812:4912:5012:5112:5212:53
![Page 65: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/65.jpg)
O Código do Applet Clockimport java.applet.Applet;import java.awt.Graphics;import java.util.Date;public class Clock extends Applet
implements Runnable {Thread updater;public void start() {...};public void stop() {...};public void paint(Graphics g) {...};public void run() {...};
}
![Page 66: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/66.jpg)
O Método start(): CriandoThreads
public void start() {if (updater == null) {
updater = new Thread(this);updater.start();
}}
![Page 67: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/67.jpg)
O Método run(): Executando uma Tarefa Concorrente
public void run() {
while (true) {repaint();try {
updater.sleep(1000);} catch (InterruptedException e) {
}
}
}
![Page 68: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/68.jpg)
O Método paint(): Desenhando na Interface Gráfica
public void paint(Graphics pen) {
Data date = new Date();
pen.drawString(date.getHours() + “:” +date.getMinutes() + “:” +date.getSeconds(), 5, 15);
}
![Page 69: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/69.jpg)
O Método stop(): MatandoThreads
public void stop() {
updater.stop();updater = null;
}
![Page 70: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/70.jpg)
Tratamento de Exceções:Simplicidade e Homogeneidade
• entrada de dados inválida;• falhas no tratamento de arquivos;• falhas na comunicação entre processos;• reativação de threads;• erros aritméticos;• estouro de limites de arrays;• etc
![Page 71: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/71.jpg)
• Sem tratar exceções • Tratando exceções...erro = 0;oper1;if (!erro1) {
oper 2;if (!erro2) {
...}else erro = -2;
}else erro = -1;if (erro < 0) {
tratarErro(erro);...
Tratamento de Exceções: Legibilidade de Código
...try {
oper1;oper2;
} catch(erro1) {// tratar erro1
} catch(erro2) {// tratar erro2
}...
![Page 72: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/72.jpg)
Palavras Chave no Tratamento de Exceções
• throws– Declara que um método pode levantar exceção
• throw– Levanta uma Exceção
• try, catch e finally– Define bloco de tratamento de exceção
![Page 73: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/73.jpg)
Usando Throws (1)class Count {
public static void main (String args[])throws java.io.IOException
{int count = 0;while (System.in.read() != -1)
count ++;System.out.println(“Caracteres: ”+count);
}}
> javac Count.javaCount.java:4: Exception java.io.IOException must be caught, or it must be declared in the throws clause of this method.
while (System.in.read() != -1)^
1 error
> javac Count.java
class Count {public static void main (String args[])
throws java.io.IOException{
int count = 0;while (System.in.read() != -1)
count ++;System.out.println(“Caracteres: ”+count);
}}
![Page 74: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/74.jpg)
Usando Throws (2)class Count {
public static void main (String args[]) {
int count = 0;while (System.in.read() != -1)
count ++;System.out.println(“Caracteres: ”+count);
}}
> javac Count.javaCount.java:4: Exception java.io.IOException must be caught, or it must be declared in the throws clause of this method.
while (System.in.read() != -1)^
1 error
![Page 75: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/75.jpg)
Usando Throws (3)class Count {
public static void main (String args[]) {try {
read();} catch (IOException e) {}
}
static void read() throws IOException {int count = 0;while (System.in.read() != -1)
count ++;System.out.println(“Caracteres: ”+count);
}}
![Page 76: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/76.jpg)
Throw
throw new Exception(“Ocorreu uma Excecao!”);
![Page 77: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/77.jpg)
Try, Catch e Finally
try {...
} catch (umaExcecao e1) {...
} catch (outraExcecao e2) {...
} catch (maisUmaExcecao e3) {...
} finally {...
}
![Page 78: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/78.jpg)
Exemplo 1: Não Tratando Exceçõesclass Divide {
public static void main (String args[]) {int dividendo, divisor;
dividendo = (Integer.valueOf(args[0])).intvalue();divisor = (Integer.valueOf(args[1])).intvalue();metodoA (dividendo, divisor);
}
public static void metodoA (int dividendo, divisor) {metodoB (dividendo, divisor);return;
}
public static void metodoB (int dividendo, divisor) {System.out.println (“Resultado: ” + dividendo/divisor);return;
}} ArithmeticException
levantada!
ArithmeticEception
ArithmeticException
Erro em tempo de execução!
ArithmeticExceptionlevantada!
ArithmeticEception
ArithmeticException
Erro em tempo de execução!
![Page 79: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/79.jpg)
Exemplo 2: Capturando uma Exceçãoclass Divide {
public static void main (String args[]) {int dividendo, divisor;
dividendo = (Integer.valueOf(args[0])).intvalue();divisor = (Integer.valueOf(args[1])).intvalue();try {
metodoA (dividendo, divisor);} catch (ArithmeticException e) {
System.out.println (“Divisor Invalido!”);}
}
public static void metodoA (int dividendo, divisor) {metodoB (dividendo, divisor);return;
}
public static void metodoB (int dividendo, divisor) {System.out.println (“Resultado: ” + dividendo/divisor);return;
}} ArithmeticException
levantada!
ArithmeticEception
Excecao capturada!
ArithmeticExceptionlevantada!
ArithmeticException
Excecao capturada!
![Page 80: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/80.jpg)
Resumo da Parte 4: Threads e Tratamento de Exceções
• Threads– Simplificam a construção de programas
concorrentes• Exceções
– Aumentam a qualidade do código, por torná-lomais organizado
![Page 81: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/81.jpg)
Prática Simulada: Construir umApplet
• Criar página HTML• Criar programa Java• Compilar e retirar erros do programa• Executar via appletviewer• Executar via Netscape
![Page 82: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/82.jpg)
Parte 5: Ambientes de Desenvolvimento
• AppletMaker, by Heechang Choi• SunSoft JavaWorkshop• Symantec Café• JavaSoft HotJava
![Page 83: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/83.jpg)
AppletMaker
• Simples e pequeno. 125 KB compactados• Interface gráfica para automatizar edição,
compilação e execução de applets.• Windows 95, NT• Sem custo
![Page 84: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/84.jpg)
JavaWorkshop 1.0• Gerenciamento de portfólios e projetos• Automatiza a construção de aplicações, applets,
pacotes e HTML• Escrito em Java, mas com versão própria do JDK• 7 MB compactados, lento para micros pequenos• Programação e depuração visual• Interessantes provas de conceito sobre Java• Solaris, Windows 95, NT. Mac em 1997• Avaliação sem compromisso por 30 dias • Us$ 99, nos EUA
![Page 85: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/85.jpg)
Café• Gerenciamento de projetos• Automatiza construção de aplicações e applets,
com várias opções• Tutorial, introdução a Java, API e referência em
um mesmo pacote.• Escrito em C, para Windows 95/NT• Rápido em micros pequenos• 13 MB compactados• us$ 130,00, via Internet
![Page 86: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/86.jpg)
HotJava
• Browser escrito em Java, com suporte limitado a HTML, mas com ...
• Prova de conceitos interessantes para arquiteturas de software na Internet– content handler– protocol handle
• Solaris e Windows 95/NT• Licensa de uso interno gratuita
![Page 87: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/87.jpg)
Parte 5: Resumo
• Existem vários ambientes de desenvolvimento de programas em Java
• Alguns são gratuitos, outros pagos• É preciso usar o espírito da linguagem no
desenvolvimento de projetos– Orientação a objetos– Código móvel
• A cada semana surgem novas propostas
![Page 88: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/88.jpg)
Parte 6: Desenvolvendo Software com Java
• Projetos Desenvolvidos no DI-UFPE– WebSteer– The Visible Computer– BRight!
• Desenvolvimento de Projetos em Java– Teoria e métodos– Ferramentas e ambientes– Pragmáticas
![Page 89: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/89.jpg)
Projetos desenvolvidos no DI-UPFE:WebSteer
• Applet de suporte a treinamento e documentação interativa na Web– Integração de eventos entre browser e applets
• 19 pesquisadores envolvidos durante 2 meses• 2 grandes grupos de desenvolvimento
– WebSteer Básico (10.2 KLOC)– Módulos de Treinamento (13.1 KLOC)
![Page 90: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/90.jpg)
WebSteer: Próximos Passos
• Incorporar Funções de Gerenciamento• Criar Ambiente de Autoria• Estender o Conceito para Ambientes de
Desenvolvimento de Software na Web
![Page 91: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/91.jpg)
• Ambiente para experimentação visual de arquiteturas de computador
• Níveis de visualização– Clock, unidade de controle, CPU, memória, programas,
E/S
• Dois pesquisadores envolvidos durante 2 mêses• Desenvolvimento do projeto (8.25 KLOC)
Projetos desenvolvidos no DI-UPFE:The Visible Computer
![Page 92: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/92.jpg)
The Visible Computer: Próximos Passos
• Integração de compiladores ao ambiente• Substituição de unidades “on-the-fly”• Integração com WebSteer
![Page 93: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/93.jpg)
• Armazenamento e busca de páginas na Web• Conceitos de vizinhança
– Domínio, localização geográfica e assunto• Três pesquisadores envolvidos durante três
mêses• Desenvolvimento do projeto
– 2.5 KLOC em Java– 1.1 KLOC em C (CGI Scripts)– Integração com ADABAS
Projetos desenvolvidos no DI-UPFE:BRight!
![Page 94: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/94.jpg)
BRight!: Próximos Passos
• Indexação e busca distribuídas• Robôs reusáveis em outros contextos• Grenciamento de sessões de busca
![Page 95: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/95.jpg)
• Objetos, classes e interfaces• Threads• Código móvel na Web• Computação distribuída na Web• Persistência e integração com SGBD’s
Desenvolvimento de Projetos em Java:Teoria
![Page 96: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/96.jpg)
• API padrão de Java• Ferramentas do Java Development Kit• Ambientes de Desenvolvimento• Código Disponível na Internet• Extensões da API
Desenvolvimento de Projetos em Java:Desenvolvimento de Projetos em Java:Ferramentas e AmbientesFerramentas e Ambientes
![Page 97: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/97.jpg)
Extensões da API de Java• Java Enterprise API
– JDBC, Java IDL, Java RMI e Object Serialization• Java Server API• Java Security API• Java Commerce API• Java Management API• Java Beans• Java Embedded API• Java Media API
– 2D, Media (áudio, vídeo, MIDI), Share,Animation, telephony, 3D
![Page 98: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/98.jpg)
• Desenvolvimento em grupo– Cada equipe resposável por um ou mais packages
• Applets versus Aplicações– Devem ser integradas– Applets no front-end– Aplicações no back-end
Desenvolvimento de Projetos em Java:Pragmáticas (1)
![Page 99: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/99.jpg)
• Sistemas de grande porte– RMI+Serialization é a opção básica– JDBC requer que se tenha um SGBD compatível
com ODBC– Java IDL requer um ORB instalado
• Gerenciamento de Threads– Agrupe threads em threadgroups– Planeje cuidadosamente regiões de sincronização
Desenvolvimento de Projetos em Java:Pragmáticas (2)
![Page 100: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/100.jpg)
• Interface Gráfica– Use Layout Managers– Deixe espaço para barras de warnings– Veja diferenças e limitações no tratamento de
eventos– Use BorderLayout, CardLayout e Panel
• Testes– Crie métodos de teste para cada classe criada
Desenvolvimento de Projetos em Java:Pragmáticas (3)
![Page 101: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/101.jpg)
Desenvolvimento de Projetos em Java:Pragmáticas (4)
• Netscape versus Appletviewer– Não são completamente compatíveis– Quando em desenvolvimento use o appletviewer e
carregue as classes via sistema de arquivos– Periodicamente faça testes “smoke and run”
• Codificação e Documentação– Criar documentários após escrever cada método– Usar as facilidades do javadoc
![Page 102: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/102.jpg)
Conclusões Gerais• Java implementa o modelo de objetos de forma
elegante e simplificada• Java está para ficar, embora existam várias outras
propostas• Ainda há muito o que ser melhorado
– performance– robustez
• Código móvel ainda está no início de seu processo de amadurecimento
![Page 103: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/103.jpg)
Onde obter mais informações• Tutorial em HTML• Home-page do Recife Java Team
– http://www.di.ufpe.br/~java– Cursos on-line
• Listas de discussão– [email protected]– enterprise-java
• Sun Microsystems• Internet• Livros
![Page 104: Departamento de Informática Comdex Internet Brasil’96jhcf/MyBooks/itjava/slides/TutorialJavaComdex...em Java(tm) Jorge Henrique Cabral Fernandes Departamento de Informática ...](https://reader031.fdocument.pub/reader031/viewer/2022022108/5c02ecfc09d3f2ae098b6eb6/html5/thumbnails/104.jpg)