Upload
robson-silva-espig
View
6.553
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
1
Java: introdução
y Tecnologia Javay Tipos de programasy Ambiente de compilação/execuçãoy Processo de Execuçãoy Estrutura de programasy Exemplos de programas
Java: apresentação
z Java como linguagem de programação:y desenvolvimento de aplicações locais,
centralizadas e distribuídasy desenvolvimento de aplicações cliente/servidor
z Java como plataforma:y ambiente de execução neutro (JVM - Java
Virtual Machine) para diferentes plataformas
2
Programas JAVA
z Aplicações ( puras)y são programas carregados e executados
localmente pelo interpretador Javay possuem acesso a todos os recursos do
ambiente local: diretórios, arquivosy sempre contém um método principal (main)
onde inicia a execuçãoy podem fazer chamadas a programas em
código nativo
Programas cliente/servidor
z Applets (Little Applications): clientey são programas inseridos em páginas HTML e
executados pelo browser (interpretador Java)y programas (classes) podem ser carregados
remotamentey restrições de segurança: não podem acessar
recursos locaisz Servlets: servidor
y executados sob o controle do servidory classe carregada dinamicamente por
requisição de um cliente
3
Java applets x JavaScript
z Códigos executáveis em páginas HTML(páginas dinâmicas)y Código Java: classes compiladas e carregadas
remotamentey Código JavaScript: instruções interpretadas e
dispersas ao longo da página HTML
z Java é uma LP de uso geral, fortementetipada, orientada a objetos: classes, objetos,herança e polimorfismo
z JavaScript: linguagem script (comandos),fracamente tipada: sem classes, sem herança esem polimorfismo
Desenvolvimento de programas
código fonte
processador da linguagem
código objeto
código executável
Benvindo.java > javac Benvindo.java Benvindo.class
Benvindo.class
String.class
classes usuário/biblioteca
Local ou remoto
4
J2SE : Java2 Standard Edition
z Desenvolvido e distribuído livremente pelaSun MicroSystems contendoy ferramentas para desenvolver e testar programas:
compilador e depuradory ambiente de execução de programas: máquina
virtual, bibliotecas de classes e outros arquivosy classes de demonstração, arquivos utilitários, plug-in
para browsersy documentação de classesy códigos fonte de classes
http://www.java.sun.com/
Ambiente de compilação e execução
fonte bytecode
compiladorJAVA
interpretadorJAVA
plataformalocal
Browser {HTML}
interpretadorJAVA
INTERNET
plataformaremota
aplicativo applet
5
Compilação x interpretação
z Interpretação: problema de desempenhoy A flexibilidade e segurança prejudicam o tempo de
execução;y Um programa Java típico roda 10 vezes mais lento
que um programa equivalente em linguagem nativa
z Solução: JIT (Just-in-time compilation)y Compiladores JIT convertem programas Java para
linguagem de máquina nativa assim que os mesmossão lidos.
y Penalidade: a leitura dos programas se torna maislenta.
CompilaçãoCompilação
BytecodesBytecodescódigocódigofontefonte
compiladorcompiladorJavaJava
ExecuçãoExecução
compilacompilaJITJIT
códigocódigonativonativo
JVMJVM
ExecuçãoExecução
JavaJava JIT é uma otimização JIT é uma otimização
Java: compilação e execução
6
Programa Java: Classe
classNome
classNome2
public classNome1
Nome.java
Nome1.java
• Uma classe é um arquivo fonte (texto)
•Um arquivo pode conter várias classes
mesmo Nome
Classe: unidade de compilação
Arquivo fonte : Nome1.java
public class Nome1 {
class Nome2 {...
bytecodes
bytecodes
Nome1.class
Nome2.class
Arquivos executáveis: class
7
Execução de programas Java
classes doprograma
dados
classes locais
classes debiblioteca
classesremotas
carregadores de classes
J V M
arquivo.class
.../lib
web/LAN
verificasegurança
Meu primeiro programa
class Benvindo {public static void main(String[] args) {System.out.println (“Benvindo a Java.”);}
}
Método main: onde inicia a execução
Cuidar maiúsculase minúsculas!
8
Passo 1: inicialização JVM
z A JVM inicia a execução quandosolicitada a executar uma aplicaçãoy Exemplo: java Benvindoy classe: Benvindoy método: main (public static void..)
Benvindo.class•localizar arquivo
•diretório local
class Benvindo {public static void main(String[] args) {
System.out.println(“Benvindo a Java ”); }
Passo 2: classe principal
z A classe especificada deve sery carregada (load)y ligada (link) a outros tipos que necessitay inicializada
Benvindo.class String.class System.class
9
Carregador de classes
z Carregador de classes - ClassLoadery carrega além do arquivo .class, as classes
herdadas ou referenciadas no código
class Alunoextends Pessoa{...}
class Pessoa{Data nasc....}
class Data{int dia...}
mainmainJVMJVM
Verificador de Bytecodes
z Objetivos : garantir que o código esteja deacordo com a especificação Java e nãoviole a integridade do sistema
AlunoAluno
PessoaPessoa DataData
mainmainJVMJVM
10
Ligação: verificação
z Verificação: assegura que arepresentação binária (bytecodes) de umaclasse/interface é estruturalmente corretay cada instrução possui um código de
operação válido?y a assinatura de cada método está correta?y o sistema de tipos foi obedecido?
Java é uma linguagem tipada: existe verificação de tipos estática e dinâmica
Classe Java: apenas o métodoprincipal
class Benvindo {public static void main (String[] args){System.out.println (“Benvindo a Java.”);}
}
assinatura padrão do método main
11
Convenção para Nomes
z Java, como C/C++ distingue entre letrasmaiúsculas e minúsculasy Exemplo: benvindo difere de Benvindo
z Nomes de classes iniciam com maiúsculay Exemplo: class Benvindo
z Nomes de variáveis iniciam com minúsculasy Exemplo: int peso;
z Nomes de métodos são verbos que iniciam comminúscula e após usam maiúsculasy Exemplo: alteraPeso
z Representação: Unicode (16 bits - 65.536caracteres)
Exemplo de objeto/métodos
System.out.println (“Benvindo a Java.”);
objeto método parâmetro
System.out.print (“Benvindo a Java.”);
objeto método parâmetro
12
Chamada parametrizada
class Benvindo {public static void main (String[] args) {System.out.println (“Parabéns ” + args[0]);}
}Método main: aceita argumentos para execução
Exemplo de chamada: > java Benvindo Pedro
Classe Java: com dois métodos
class Benvindo2 {static void imprime(){
System.out.println (“Benvindo a Java.”);
}public static void main (String[] args) {
imprime();}
}
método static: método de classe não aplicável sobre objetos
13
Classe Java: com dois métodos
class Benvindo2 {static void imprime(){
System.out.println (“Benvindo a Java.”);
}public static void main (String[] args) {
imprime();}
}
método static: método de classe não aplicável sobre objetos
Classe Java: com um objeto
class Benvindo2 {void imprime(){
System.out.println (“Benvindo a Java.”);
}public static void main (String[] args) {
Benvindo2 instancia=new Benvindo2();instancia.imprime();
}}método de instância somente aplicável sobre objetos
14
Uso de bibliotecas
z As classes Java são agrupadas empacotes
z O pacote padrão é : java.langz Classes que pertencem a outros pacotes
devem ser importadasz Exemplos de importação
import java.awt.Rectangle;import java.awt.*;
class Exe01Swing{ public static void main (String[] args) { JOptionPane.showMessageDialog(null,"Consegui!"); System.exit(0); // termina o programa } }
import javax.swing.JOptionPane; // classe do pacote swing
Exemplo de utilização de GUI
15
Exemplo de execução em IDE
JOptionPane.showMessageDialog(null,"Parabéns " + nome + "\n você conseguiu!"); System.exit(0); // termina o programa } }
import javax.swing.JOptionPane; // classe do pacote swingclass Exe02Swing{ public static void main (String[] args) { String nome=JOptionPane.showInputDialog("Seu nome?");
Exemplo de Entrada e Saída com GUI
16
// Converter um String para inteiro int i = Integer.parseInt(valor);// Observar a conversão da expressao (i+100) para String JOptionPane.showMessageDialog(null,"Seu número + 100: " + (i+100));System.exit(0); // termina o programa }}
import java.awt.event.*;import javax.swing.JOptionPane;
class LeituraSwing { public static void main(String[] args){ LeituraSwing ls=new LeituraSwing(); // leitura de caracteres e conversão para primitivo String valor= JOptionPane.showInputDialog("Digite um número: ");
Exemplo de conversão deString para número
Prática de Laboratório