Java - PowerPoint PPT Presentation

About This Presentation
Title:

Java

Description:

Java Java Programming - I520 * INSTITUTO DE FORMA O INTERNET - INFNET Java nos permite combinar o operador de atribui o com qualquer um dos operadores bin rios ... – PowerPoint PPT presentation

Number of Views:163
Avg rating:3.0/5.0
Slides: 86
Provided by: Zai92
Category:
Tags: java | servlet

less

Transcript and Presenter's Notes

Title: Java


1
Java
2
Índice
  • Referências
  • UA 1 - Introdução a Java
  • UA 2 - Tipos de dados, operadores e comandos de
    fluxo
  • UA 3 - Uso classes e objetos String, arrays,
    Math, outras
  • UA 4 - Criação de métodos, classes e objetos
  • UA 5 - Herança e polimorfismo
  • UA 6 - Classes abstratas e interfaces
  • UA 7 - Tratamento de exceções
  • UA 8 - Componentes gráficos em Java (AWT e Swing)
  • UA 9 - Multithreading
  • UA 10 - Acesso a banco de dados via JDBC

3
Objetivos
  • Posicionar a linguagem Java no contexto do
    desenvolvimento de sistemas
  • Conceituar os vários termos usados em Java como
    Swing, Applets, Servlets, JSP, EJB, etc.
  • Desenvolvimento de sistemas cliente servidor com
    acesso a banco de dados usando JDBC.

4
Pré-requisitos
  • Noções de Programação
  • Noções de Orientação a Objetos
  • Noções de SQL

5
Livros
  • Java Como Programar
  • Beginning Java 1.3
  • The Java 2 Complete Certification Study Guide
  • Core Java 2 Guia Autorizado
  • The Java Class Libraries, Second Edition, Volumes
    I e II

6
Internet
  • http//java.sun.com/
  • http//www.javaboutique.com/
  • http//www.javaworld.com
  • http//www.componentsource.com/java
  • http//www.jguru.com/portal
  • http//www.theserverside.com/
  • http//www.javareport.com/

Referências
7
Introdução a Java
8
O que é a linguagem Java?
9
O que é a linguagem Java?
  • Você aprenderá
  • Histórico da linguagem.
  • Características mais importantes.
  • Versões existentes.
  • Uma aplicação inicial.

10
Histórico da Linguagem
  • Projeto Oak
  • 1990
  • Integração de aparelhos
  • Advento da internet
  • 1994 lançamento oficial
  • animações, applets e conexão com servidores
  • JVM embutida nos browsers
  • Panorama Atual
  • Grande utilização nos servidores web
  • Suportada pela grande maioria dos servidores de
    aplicação
  • SGBD com JVM

11
Características importantes
  • Orientada a objeto
  • Modificar é a regra e não a exceção
  • Interpretada e independente de plataforma
  • JVM com JIT - Just in Time Compilers
  • Multithreaded
  • Executa, por natureza, vários trechos de código
    ao mesmo tempo
  • Robusta e segura
  • Fortemente tipada, sem acesso direto a endereços
    de memória evitando erros de acesso e perda de
    ponteiros, applets sem acesso a disco, etc..
  • Dinâmica e distribuída
  • Alterações feitas apenas nas classes pertinentes
    sem a necessidade de recompilação de todo o
    sistema. Possibilidade de entrega de
    componentes pela rede de forma transparente para
    o usuário

12
Versões existentes
  • Versão 1.0
  • Versão 1.1 - Ainda muito usado
  • Versão 1.2 (Java 2) - Grandes mudanças
  • Versão 1.3
  • Versão 1.4
  • De uma versão para outra um método, atributos ou
    mesmo uma classe inteira pode ficar deprecated
    ou depreciada, obsoleta. Tenha sempre em mãos a
    documentação apropriada.

13
Especializações do JDK
  • JRE - Java Runtime Edition
  • É o próprio interpretador Java, o mínimo
    necessário para executar programas em Java.
    Browsers instalam apenas o JRE (5Mb aprox.).
  • J2SE - Java 2 Standard Edition
  • Também conhecido como JDK - Java Development Kit.
    É composto do JRE, ferramentas de desenvolvimento
    e compilador (45Mb aprox).
  • J2EE - Java 2 Enterprise Edition
  • Complemento ao JDK que instala um conjunto de
    bibliotecas necessárias para suportar Servlets,
    JSP, JDBC e outras (aprox. 17Mb).
  • J2ME - Java 2 Micro Edition
  • Simplificação da linguagem usada para
    desenvolvimento de aplicações para palmtops e
    dispositivos hand-held
  • Documentação
  • Fornecido separadamente. Existem versões próprias
    para cada especialização do JDK (aprox. 20Mb).

14
Alguns Ambientes de Desenvolvimento
  • Ferramentas de linha de comando
  • Notepad )
  • TextPad
  • UltraEdit
  • Ferramentas visuais
  • Borland JBuilder
  • IBM Visual Age for Java
  • Visual Café
  • Oracle JDeveloper (facilidades para o DB)
  • MS Visual J (Evitem problemas de
    compatibilidade)
  • iPlanet Fortè

15
Uma aplicação inicial
Comentários // - uma única linha./ .../ -
várias linhas/ .... / javadoc
Nome da classe, também define o nome do
arquivo.java
Método main( ). Ponto de entrada no sistema
  • 1 // Isso é um programa exemplo
  • 2 public class HelloWorld
  • 3 public static void main (String args)
  • 4 System.out.println(Oi mundo!)
  • 5
  • 6

Case sensitive, sensívelà maiúsculas e
minúsculas
- ponto-e-vírgulaé obrigatório ao finalde
cada instrução.
- chaves delimitam um bloco de comando.
Obs. Todo código Java tem que estar dentro de
uma classe (class). Classes serão
usadas para criação de objetos, mas aqui, foi
colocada apenas por compatibilidade.
16
Lab 01-Bcaixa de mensagem
  • Objetivo
  • Aprofundar conceitos
  • Tarefas
  • Altere seu programa conforme o código abaixo
  • Observe que as linhas 5 e 6 representam uma
    mesma instrução.

1 // Programa exemplo 2 public class
HelloWorld2 3 public static void main
(String args) 4 System.out.println("Ant
es da mensagem") 5 javax.swing.JOptionPane
.showMessageDialog(null, 6 "Oi mundo!",
"exercício Java",1) 7 System.out.println("
Depois da mensagem") 8 9
17
Máquina Virtual Java (JVM)
18
Máquina Virtual Java (JVM)
  • Você aprenderá
  • O que é a máquina virtual Java.
  • Por dentro da JVM
  • Class Loader.
  • Bytecode Verifier.
  • Interpretador
  • Garbage Collector.

19
O que é a máquina virtual Java (JVM)
  • É o ambiente onde os programas desenvolvidos na
    linguagem Java são executados.
  • Responsável pela importante característica de
    portabilidade de Java.
  • Vem junto com o JDK e em alguns browsers
    (Microsoft Internet Explorer e Netscape
    Navigator) para execução de applets.

20
Por dentro da JVMClass Loader e Bytecode
Verifier
  • Class Loader - Carregador de classe
  • Faz a carga de todas as classes necessárias para
    a execução do programa feito em Java.
  • Faz parte do esquema de segurança da linguagem.
  • Bytecode Verifier - Verificador de Bytecode
  • Testa o código contido no arquivo com extensão
    class antes de executá-lo.
  • Verifica se há código ilegal.
  • Também faz parte do esquema de segurança da
    linguagem.

21
Por dentro da JVM Interpretador
  • Lê os bytecodes e os traduz para uma linguagem
    que o computador pode entender.
  • Armazena valores dos dados enquanto executa o
    programa.

22
Por dentro da JVM Garbage Collector
  • O GC ou coletor de lixo é responsável pelo
    gerenciamento da memória usada pelo programa.
  • Evita que acessos a posições inválidas de memória
    sejam feitas pelos programadores.
  • A implementação varia de acordo com a plataforma
    considerada.

23
Lab 1.Dobservação de erros comuns
  • Objetivo
  • Praticar o processo de edição-compilação-execução
    de código Java
  • Tarefas
  • Resolvendo pequenos problemas (bugs) ocorridos em
    tempo de compilação e execução.

24
Arquiteturas de Desenvolvimento
25
O desenvolvimento de sistemas
  • As arquiteturas para desenvolvimento de sistemas
    podem ser dividas em 3 grupos
  • 1-tier (1 camada)
  • 2-tier (2 camadas)
  • 3-tier (3 camadas)

26
Arquitetura 1-tier
  • Arquitetura antiga onde as aplicações e os dados
    residem em um único ambiente, geralmente um
    computador central como os mainframes. Os
    clientes são terminaissem poder de processamento.

27
Arquitetura 2-tier
  • Arquitetura recente e muito utilizada. Mais
    conhecida como arquitetura cliente/servidor (nome
    muito comum)
  • Os componentes são geralmente o cliente,
    residente em estações de trabalho, e o servidor,
    residente em máquinas centrais, de maior
    capacidade
  • O componente cliente faz solicitações que são
    atendidas pelo componente servidor, criando um
    interação contínua.

28
Arquitetura 2-tier
  • Na arquitetura cliente/servidor, os dados ficam
    armazenados em bancos de dados e é necessário
    instalar o software nos clientes.

servidor (banco de dados)
Clientes (Front-End)
Oracle Informix Sybase SQL Server ...
29
Arquitetura 3-tier
  • Arquitetura diretamente derivada da
    cliente/servidor, o modelo 3-tier foi uma divisão
    lógica feita em relação ao modelo precursor e que
    pode ser considerada o padrão para o
    desenvolvimento de aplicações baseadas na Web
    (Web-based applications).
  • Isola o cliente da base de dados.

30
Características
1a. CamadaServiço de Apresentação
3a. CamadaServiço deDados
2a. CamadaServiço deNegócios
cliente (browser)
servidor (servidor Web)
servidor (banco de dados)
Oracle Informix Sybase SQL Server ...
aplicação dinâmica
31
Conceitos de Java no Desenvolvimento de Sistemas
32
Programação JavaConceitos Fundamentais
  • Regras da linguagem - sintaxe
  • Estruturas de controle de fluxo
  • Métodos e classes - Programação Baseada em
    Objetos
  • O estudo destes tópicos será foco deste curso.

33
Programação Java Conceitos Avançados
  • Herança, polimorfismo, interfaces - programação
    Orientada a Objetos
  • Tratamento de exceções
  • Capacidade multithreding

34
AWT e Swing
  • Classes Java usadas para criação de interfaces
    gráficas para sistemas cliente/servidor (2
    camadas)

35
Applet
  • Classe Java usada na arquitetura Web (3 camadas),
    mais especificamente na primeira camada,
    encapsulado ao Browser.

36
Conectividade de banco de dados Java - JDBC
  • Tecnologia que permite acessar banco de dados.
  • Possui várias características importantes
  • Modelo próprio de Serviços de Negócios
  • Reduz o risco do negócio
  • Permite a portabilidade entre plataformas
  • Especificado por Comitê
  • O estudo de JDBC será foco deste curso.

37
Servlets
  • Classes Java que executam dentro do servidor Web
    (2ª camada)
  • Possui várias características importantes
  • É executada dentro de processos especiais
  • Pode ser chamado por múltiplos clientes, sejam
    eles feitos em Java ou não.
  • Processamento de pedidos concorrentes.
  • Os métodos de um servlet são executados em
    threads.
  • As instâncias de um servlet são reutilizadas
    quando necessárias.

38
Java Server Pages - JSP
  • Páginas HTML geradas dinamicamente no Servidor
    Web (2ª camada)
  • Possui várias características importantes
  • São independentes de plataforma, eficientes e
    seguros.
  • Separa a interface do usuário do conteúdo
    dinâmico.
  • Podem conectar-se a um JavaBean .
  • O estudo de servles é foco do curso Java II -
    Servlets e JSP do Instituto Infnet.

39
Enterprise JavaBeans - EJB
  • Empacotamento de classes definidas como
    componentes de software reutilizáveis.
  • Possui várias características importantes
  • Modelo próprio de Serviços de Negócios
  • Reduz o risco do negócio
  • Permite a portabilidade entre plataformas
  • Especificado por Comitê

UA Introdução a Java - BCA Arquiteturas de
Desenvolvimento e o Java
40
Tipos de Dados, Operadores e Comandos de Fluxo
41
Tipos de Dados Primitivos
42
Identificadores
  • Usados para identificar variáveis, constantes,
    classes, instâncias de classe (objetos), métodos,
    etc..
  • Regras de formação de identificadores
  • Algumas convenções estabelecidas

43
IdentificadoresPrincipais regras
  • Começa com letras ou _(sublinhado). é válido
    mas deve ser evitado
  • Pode conter dígitos no meio ou no final
  • Há distinção entre maiúsculas e minúsculas
  • Não podemos usar caracteres acentuados de
    qualquer tipo
  • Não podemos usar palavras reservadas.

44
IdentificadoresPrincipais convenções
  • Métodos e variáveis
  • Palavras simples - tudo em minúsculo
  • Palavras compostas - Começa com minúscula e a
    inicial das outras palavras em maiúscula.
  • Constantes
  • Tudo em maiúsculo. Palavras compostas separadas
    com _ (sublinhado).
  • Classes
  • Palavras simples - Começa com maiúscula
  • Palavras compostas Começa com maiúscula e a
    inicial das outras palavras em maiúscula.
  • Arquivos
  • Mesmas convenções das classes.

45
Identificadores
  • Exemplos de identificadores válidos
  •     Botafogo
  •     _teste20
  •     dinheiro
  •     futebolProfissionalBrasileiro
  •     nome_jogador
  •     thisOne
  • TAXA_SERVICO

46
Os 8 Tipos Primitivos
  • byte (8 bits)
  • short (16 bits)
  • int (32 bits)
  • long (64 bits)
  • float (32 bits)
  • double (64 bits)
  • char (16 bits)
  • boolean (1 bit)

Numéricos sem casa decimal
Numéricos com casa decimal
Caracter da tabela unicode
true/false (não pode ser numérico)
47
Os 8 Tipos Primitivos
  • Lógico boolean
  • boolean status true
  • // os literais sempre em letra minúscula

48
Os 8 Tipos Primitivos
  • Textual char - 16 bits - 2 bytes
  • char meuCaracter L
  • char meuCharUnicode \u0058
  • A contrabarra indica uma seqüência de escape.

49
Os 8 Tipos Primitivos
  • \b - backspace
  • \t - tab
  • \f - form feed
  • \n - line feed
  • \r - carriage return
  • \ - aspas simples
  • \ - aspas duplas
  • \\ - contrabarra

50
Os 8 Tipos Primitivos
  • Inteiros byte, short, int e long
  • A diferença entre eles está no intervalo de
    valores que cada um pode suportar
  • byte menor 10 // 1 byte -128 a 127
  • short pequeno 456// 2 bytes
  • int normal 10252 // 4 bytes
  • long muitoGrande 6263732239 // 8 bytes

51
Os 8 Tipos Primitivos
  • Ponto flutuante float e double
  • float - precisão simples que utiliza 32 bits de
    armazenamento. Tornam-se imprecisas para valores
    muito grandes ou muito pequenos. Úteis quando
    precisamos de um valor fracional sem grande
    necessidade de precisão. Exemplo reais e
    centavos.
  • Double - precisão dupla que utiliza 64 bits de
    armazenamento.
  • float numeroReal 10.9f// 4 bytes
  • double numero 6745.9E13// 8 bytes

52
Variáveis
  • Java é uma linguagem fortemente tipada
  • Cada variável pode armazenar um único tipo de
    dado.
  • Cada variável possui
  • Um identificador
  • Um tipo de dado
  • Um valor (pode ser null)
  • Um tamanho (definido pelo tipo)

53
Declaração de variáveis
  •  Toda variável deve ser declarada explicitamente
  • lttipo primitivogtlt identificador gt ,lt
    identificador2, ... gt valor inicial  
  • Exemplos
  • int numeroDias
  • char opcao
  • float cotacaoDolar
  • boolean status
  • double qtd1, preco1

54
Inicialização de variáveis
  • Variáveis possuem um escopo que determina em que
    locais do código-fonte elas podem ser
    visualizadas.
  • Dependendo do local onde a variável for declarada
    esta receberá um valor padrão (default).
  • Exemplo
  • int numeroDias
  • numeroDias 15
  • ou
  • int numeroDias 15, cont, f 5

55
Conversões e casting
  • Não existe downcasting
  • A conversão deve ser explícita

public class TiposPrimitivos public static
void main(String args) int a 4, b
5 int c c a / b
System.out.println("c " c) double d
d a / b System.out.println("d "
d) double e e (double) a / b
//Conversão deve ser explícita
System.out.println("e " e)
c 0 d 0.0 e 0.8 Press any key...
56
Conversões e casting
long grande 890L// inicialmente com 64
bits int pequeno (int) (grande) //coerção
explícita char letra (char) 87 // Letra
W Lembre-se que fazer a coerção explícita,
podem surgir resultados imprevisíveis.
57
Operadores
58
Operador de atribuição
  • Atribuição simples ( )
  • A expressão da direita é atribuída à variável que
    está à esquerda.
  • Pode ser utilizado de forma encadeada

x 110 Y x 12
x y z 55
59
Operadores aritméticosoperadores binários
  • Requerem dois operandos
  • Operações aritméticas básicas
  • Funciona com variáveis numéricas e literais

int x, y, z x 229 23 // adição y 73
9 // subtração z 72 6 // multiplicação x
y / z // divisão y x z // resto da divisão
60
Operadores aritméticosoperadores unários
  • O operador incrementa de 1
  • O operador -- decrementa de 1
  • Duas formas de utilização pré-fixada e
    pós-fixada.

int x, y x 2 y x // pós-fixado gt x 3
e y 2 x 2 y x // pré-fixado gt x 3
e y 3
61
Operadores relacionais
gt Maior que gt Maior ou igual a lt Menor
que lt Menor ou igual a Igual a ! Diferente
de
62
Operadores lógicos
E (longo) E (curto) Ou (longo) Ou
(curto) Ou exclusivo ! Não
  • longo - significa que todas as condições são
    avaliadas
  • curto - a avaliação da condição da esquerda já
    define o resultado
  • exclusivo - se uma e apenas uma condição for
    true. Se duas forem true resulta em false.

63
Operadores compostos
  • O operador de atribuição pode ser combinado com
    qualquer operador binário.

x 110 x 12 // mesmo que x x 12 x /
4 // mesmo que x x / 4
64
Precedência
Ordem Operador Associatividade 1 -- -
!(tipo) D para E 2 / E para D 3 -
E para D 4 lt gt lt gt instanceof E para
D 5 ! E para D 6 E para
D 7 E para D 8 E para D 9 E
para D 10 ? D para E 11 - / D
para E
Parênteses podem ser usados para alterar a
precedência.
65
Comandos de Fluxo
66
Comandos de Decisão
67
if...else
  • Executa, condicionalmente, um grupo de comandos,
    dependendo do valor de uma expressão. Caso só
    haja uma instrução no bloco, as chaves poderão
    ser omitidas.
  • Sintaxe

if (condição) comandos else comandos
if (condição) instrução ou bloco de instruções
cercados por chaves else if (condição-n)
instrução ou bloco de instruções cercados por
chaves else instrução ou bloco de instruções
cercados por chaves
68
ifelse exemplos
int x 7 if (x gt abc) // abc é uma
variável definida //em outra parte do
programa System.out.println(x é maior que
abc) else x abc abc if ( k lt
20 ) j 5 //é válido
69
ifelse exemplosif aninhado
  if ((salario gt 1000) (salario lt 2500)) IR
salario 0.1 else if (salario lt
5000) IR salario 0.2 else IR
salario 0.25
70
Operador Condicional ?
  • Alternativa para o comando if... else.
  • Sintaxe

(expressão lógica) ? expressão 1 expressão
2 int total (salario lt 1000) ? salario
salario IR
71
switch
  • Executa um de vários grupos de comandos,
    dependendo do valor de uma expressão.
  • Sintaxe
  • expressão_teste só pode ser do tipo byte, short,
    int ou char

switch (expressão_teste) case expressão
constante 1 comandos default expressão
constante n comandos
72
switch exemplos
switch (diaSemana) case 1 System.out.printl
n(Hoje é segunda-feira) break case
2 System.out.println(Hoje é
terça-feira) break ... case
6 System.out.println(Hoje é
sábado) break case 7 System.out.println(
Hoje é domingo) break default System.out.
println(Opção inválida!!!) break
73
switch exemplos
switch (diaSemana) case 1 case 2 case
3 case 4 case 5 System.out.println(Hoje é
dia de trabalho!!) break case 6 case
7 System.out.println(Hoje é fim de
semana!!!) break default System.out.printl
n(Opção inválida!!!) break
74
Comandos de Repetição
  • while.
  • do...while.
  • for

75
while
  • Executa uma série de comandos enquanto uma
    condição for verdadeira.
  • Sintaxe

while (condição) comandos
76
while - exemplo
int i 0 while (i lt 10) a 45 i
77
do...while
  • Repete um bloco de comandos enquanto uma condição
    for verdadeira ou até que uma condição seja
    verdadeira.
  • Sintaxe
  • Pode-se omitir as chaves se o bloco tiver apenas
    uma linha ou uma instrução.

do instrução ou bloco de instruções while
(condição)
78
for
  • Repete um grupo de comandos em um número
    específico de vezes.
  • Sintaxe
  • inicialização - pode ser uma ou mais separadas
    por vírgula
  • terminação - uma expressão lógica
  • incremento - pode ser um ou mais separados por
    vírgula

for (inicialização terminação incremento)
instrução ou bloco de instruções
79
for
public class TestaFor public static void
main(String args) for (int i 0 i
lt10 i) System.out.println("i "
i) for (int j 1 j lt 20 j)
System.out.println("\tj " j)
if (j 5) break
80
Comandos de Desvio
  • break.
  • continue.
  • break e continue rotulados

81
break
  • Sai incondicionalmente para primeira instrução
    após um laço ou de uma instrução switch.

1 for (int i 1 i lt limite i)
2 fatorial 1 3 for (int j 2 j lt i
j) 4 fatorial j 5 if (fatorial
120) 6 break// vai para linha
8 7 8 System.out.println(i "! é "
fatorial) 9 10 System.out.println(O valor do
fatorial é fatorial)
82
continue
  • Abandona a iteração em que o laço se encontra e
    vai incondiconalmente para a próxima.

1 for (int i 1 i lt limite i)
2 fatorial 1 3 for (int j 2 j lt i
j) 4 if (fatorial 120) 5 continue//v
ai para linha 3 6 fatorial
j 7 8 System.out.println(i "! é "
fatorial) 9 10 System.out.println(O valor do
fatorial é fatorial)
83
break e continue rotulados
  • É utilizado para sair ou ir para a próxima
    iteração dentro de laços aninhados.

1 loop_fora 2 for (int i 1 i lt limite i)
3 fatorial 1 4 for (int j 2 j lt i
j) 5 if (fatorial 120) 6 break
loop_fora// vai para linha 11 7 fatorial
j 8 9 System.out.println(i "! é "
fatorial) 10 11 System.out.println(O valor
do fatorial é fatorial)
84
Lab 02.Agráfico de barras horizontais
  • Objetivo
  • Exercitar o uso de tipos de dados primitivos,
    declaração de variáveis e controles de fluxo de
    programa.
  • Tarefas da etapa A
  • Usando a estrutura for faça um código que desenhe
    na tela do sistema n pontinhos horizontais.

85
Lab 02.Bgráfico de barras horizontais
  • Objetivo
  • Exercitar o uso de tipos de dados primitivos,
    declaração de variáveis e controles de fluxo de
    programa.
  • Tarefas da etapa B
  • Usar uma caixa de mensagem (input) que
    possibilite ao usuário entrar com o número de
    pontinhos.

86
Lab 02.Cgráfico de barras horizontais
  • Objetivo
  • Exercitar o uso de tipos de dados primitivos,
    declaração de variáveis e controles de fluxo de
    programa.
  • Tarefas da etapa C
  • Dado um programa que calcula a soma de dois
    números entrados pelo usuário, faça um outro que
    calcule a média dos números.
Write a Comment
User Comments (0)
About PowerShow.com