16
Java: introdução y Tecnologia Java y Tipos de programas y Ambiente de compilação/execução y Processo de Execução y Estrutura de programas y Exemplos de programas Java: apresentação z Java como linguagem de programação : y desenvolvimento de aplicações locais, centralizadas e distribuídas y desenvolvimento de aplicações cliente/servidor z Java como plataforma: y ambiente de execução neutro (JVM - Java Virtual Machine) para diferentes plataformas

Java: Introduction

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Java: Introduction

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

Page 2: Java: Introduction

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

Page 3: Java: Introduction

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

Page 4: Java: Introduction

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

Page 5: Java: Introduction

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

Page 6: Java: Introduction

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

Page 7: Java: Introduction

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!

Page 8: Java: Introduction

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

Page 9: Java: Introduction

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

Page 10: Java: Introduction

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

Page 11: Java: Introduction

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

Page 12: Java: Introduction

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

Page 13: Java: Introduction

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

Page 14: Java: Introduction

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

Page 15: Java: Introduction

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

Page 16: Java: Introduction

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