Apresentação do trabalho final da disciplina de Linguagem de Programação. Linguagem escolhida: Java. Objetivo: fazer uma descrição geral, comparando java à outras linguagens
5. Veículo para a exploração de Marte
Spirit
Java - LPI - 2005/02 5
6. POR QUE JAVA?
650 milhões de desktop e servidores
500 milhões em smart cards e dispositivos
similares
100 milhões em outros dispositivos:
radares
aparelhos domésticos
entre outros
Java - LPI - 2005/02 6
7. O QUE É JAVA?
• Linguagem de Programação
• Ambiente de
Desenvolvimento
• Ambiente de Aplicativos
Java - LPI - 2005/02 7
8. O QUE É JAVA?
• Orientada a Objetos
• Possui Coletor de Lixo
• Robusta (Tratamento de exceções)
•Arquitetura Neutra (Não suporta herança
múltipla)
• Simples
• Case Sensitive
• Internacionalização
Java - LPI - 2005/02 8
9. O QUE É JAVA?
• HTML – applets
•Processos automáticos na WEB
Java - LPI - 2005/02 9
10. PLATAFORMA
JAVA
• Plataforma de Software
• Código Compilado + Interpretado = Híbrido
Java - LPI - 2005/02 10
11. PLATAFORMA JAVA
• Programa pode rodar em qualquer plataforma,
desde que tenha a JMV
Java - LPI - 2005/02 11
12. PLATAFORMA JAVA
•Outro componente:
• Java API
• grupo de bibliotecas (pacotes) com classes e interfaces
• java.lang, java.awt, java.io, java.math
Java - LPI - 2005/02 12
13. HISTÓRIA
• Lançada pela Sun Microsystems
• 1991 - Projeto Green
• Nasce a OAK
• James Gosling
Java - LPI - 2005/02 13
14. HISTÓRIA
• Star – 7 (*7) – personagem Duke
• Hot Java
• E nasce um novo sucesso!!!
Java - LPI - 2005/02 14
15. CARACTERÍSTICA
S
GERAIS DA
LINGUAGEM
JAVA
Java - LPI - 2005/02 15
18. ARRAYS
UNIDIMENSIONAIS
• int vet[ ] = new int [10];
• int vet[ ] = {1,2,3,4,5,6};
• vet[5] = 6;
• vet[0] = 1; Java - LPI - 2005/02 18
19. ARRAYS
MULTIDIMENSIONAIS
• Java não suporta
• Solução: array de arrays
• int matriz [ ][ ] = new int [2][ ];
• int matriz [ ][ ] = new int [3][2];
• int matriz [ ][ ] = {{1,2},{3,4},{5,6}};
Java - LPI - 2005/02 19
20. ARRAYS MULTIDIMENSIONAIS
• int mat[ ] [ ] = new int [3];
• mat[0] = new int [2];
• mat[1] = new int [1];
• mat[2] = new int [3];
• int mat [ ][ ] = {{1,2},{3},{4,5,6}};
Java - LPI - 2005/02 20
21. STRINGS
• String é um objeto em Java;
• Classe String (pacote java.lang)
• Aspas duplas “ ”
• EX:
String s = “olá”;
Java - LPI - 2005/02 21
22. STRINGS
• Método construtor:
String s = new String (“olá”);
• Outros argumentos:
char vetchar[ ] = {‘o’, ‘l’, ‘á’};
String s = new String (vetchar);
// s = “olá”
Java - LPI - 2005/02 22
23. PONTEIROS
• Não existem em Java, são invisíveis
para o programador.
• Constatou-se que geravam bugs
• Referências => uso do “new” =>
alocados dinamicamente
Java - LPI - 2005/02 23
24. REGISTROS
• Java não dá suporte
• Recurso: usar uma classe:
• classe => tipo registro
• objeto => variável
• atributos => campos do registro
Java - LPI - 2005/02 24
25. public class Data {
public int dia, mes, ano;
//métodos da classe Data
}
class UsaData {
public static void main (String args[ ]) {
Data hoje = new Data( );
hoje.dia = 29;
hoje.mes = 11;
hoje.ano = 2005;
}
} Java - LPI - 2005/02 25
26. TIPOS ENUMERADOS
• Definidos como “enum”
• Conjunto de constantes
• Novidade no JAVA 5.0
• enum Acao {ANDAR, CORRER, SENTAR};
• Podem ser usados no laço for
Java - LPI - 2005/02 26
27. CLASSES
EMPACOTADORAS
• Todo tipo primitivo possui uma classe
epacotadora de tipo
• Tipos primitivos não têm métodos
• Exemplo: métodos de casting
Java - LPI - 2005/02 27
28. CONVERSÃO
ENTRE TIPOS
• Único tipo primitivo que não pode
sofrer conversão de/para é o booleano
• Conversões automáticas:
int x = 25;
long y;
y = x; Java - LPI - 2005/02 28
30. VARIÁVEIS
• Pode-se declarar variáveis em qualquer
lugar do código, mas não é uma boa prática
de programação.
• Podem começar com letra, sublinhado ( _ )
ou cifrão ($), mas não podem começar com
números.
Java - LPI - 2005/02 30
32. CONSTANTES
NOMEADAS
• Utilizam a palavra chave “final” para
especificar que uma variável é constante.
• São escritas em letras maiúsculas
(convenção).
• Podem ser inicializadas na delcaração ou
no método construtor.
Java - LPI - 2005/02 32
33. CONSTANTES NOMEADAS
Exemplo:
class Constantes {
final int VALOR1 = 250;
final float VALOR2;
//método construtor
public Constantes (float num) {
VALOR2 = num;
}
} Java - LPI - 2005/02 33
41. OPERADORES TERNÁRIOS
• Condicional ( ? : ), como em C, C++
• Notação compacta da estrutura if – else
• x = (y == z ? 10 : 20);
equivale a if (y == z)
x = 10;
else
x = 20;
Java - LPI - 2005/02 41
42. INSTRUÇÕES
DE CONTROLE
• Tomada de Decisões => if-else, switch-case
• Laços ou Repetições => for, while, do-
while
• Outros => break, continue, label
Java - LPI - 2005/02 42
45. Laço de Contagem
for (inicialização; condição; incr/decr)
{
<comandos>;
}
• Bastante flexível
Java - LPI - 2005/02 45
46. Laço Interação
Enquanto - Faça
while (condição) {
<comandos>;
}
Java - LPI - 2005/02 46
47. Laço Interação
Faça - Enquanto
do {
<comandos>;
} while (condição);
Java - LPI - 2005/02 47
48. Break - Continue
• Break – usado para interromper a
execução do laço, muito usado no
switch
• Continue – interrompe, mas continua
executando o próximo passo do laço
• Goto – é feito em Java através do
break ou continue com rótulo (label)
Java - LPI - 2005/02 48
49. Escopo
• Variáveis de Instância:
• Depende do modificador de acesso:
• PUBLIC: qualquer outra classe;
• PRIVATE: métodos da própria
classe;
• PROTECTED: pacote e herança;
Java - LPI - 2005/02 49
• FRIENDLY: pacote (default);
50. Escopo
• Variáveis de Métodos:
•Restrição ao bloco em que foi
declarada;
• Visível a partir do momento da
declaração;
Java - LPI - 2005/02 50
51. Tempo de Vida
• Variáveis de Métodos: apenas
durante a execução do método;
• Objeto: enquanto for referenciado;
Java - LPI - 2005/02 51
52. MEMÓRIA
• Tipos compostos são armazenados
como objetos na heap e manipulados
através de uma referência (variável),
guardada na pilha.
• Tipos primitivos são guardados na
pilha
Java - LPI - 2005/02 52
54. TRATAMENTO
DE EXCEÇÕES
• Exceções são situações indesejáveis
que podem ocorrer durante a execução
de um programa.
• Erro => dispara exceção => captura
Java - LPI - 2005/02 54
55. TRATAMENTO DE EXCEÇÕES
Tipos comuns de exceções:
• divisão por zero;
• objeto não instanciado é referenciado;
• acesso a um elemento de um array que não
existe;
• ler inteiro => entra com real;
• etc; Java - LPI - 2005/02 55
56. TRATAMENTO DE EXCEÇÕES
Try {
//código que pode gerar exceção
}
Catch (tipo_de_exceção) {
//código para tratar a exceção
}
Finally {
//código que deve ser executado em qualquer caso
} Java - LPI - 2005/02 56
57. REFERÊNCIAS
• Conteúdo e figuras – referências no trabalho escrito
• Vídeo:
The “JAVA IS EVERYWHERE" cartoon:
* Rendering software: Lightwave3D from NewTek
* Video editing software: Final Cut
* Sound clips: sound-ideas.com
* Voice: Kelsey Gosling
* Disponível em: <http://today.java.net/jag/je/>
Java - LPI - 2005/02 57
58. CRÉDITOS
Bye!
• Editado por:
Loiane Groner
•Trabalho apresentado à disciplina LPI
•3° A – Ciência da Computação - FAESA
• Vitória – ES, 29 de novembro de 2005
Java - LPI - 2005/02 58