SlideShare uma empresa Scribd logo
1 de 58
Java - LPI - 2005/02   LOIANE GRONER
                                 1
POR QUE
                  JAVA?
•Java está presente em mais de 1.5 bilhões de
dispositivos em todo o mundo:




                      Java - LPI - 2005/02      2
250 milhões de celulares;
Câmeras fotográficas;

                     Java - LPI - 2005/02   3
Dispositivos e aparelhos médicos

            Java - LPI - 2005/02   4
Veículo para a exploração de Marte
               Spirit
           Java - LPI - 2005/02      5
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
O QUE É JAVA?
  • Linguagem de Programação
        • Ambiente de
         Desenvolvimento
   • Ambiente de Aplicativos




             Java - LPI - 2005/02   7
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
O QUE É JAVA?

• HTML – applets
•Processos automáticos na WEB




                   Java - LPI - 2005/02   9
PLATAFORMA
             JAVA
• Plataforma de Software
• Código Compilado + Interpretado = Híbrido




                     Java - LPI - 2005/02     10
PLATAFORMA JAVA

• Programa pode rodar em qualquer plataforma,
desde que tenha a JMV




                    Java - LPI - 2005/02        11
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
HISTÓRIA
• Lançada pela Sun Microsystems
• 1991 - Projeto Green
• Nasce a OAK
• James Gosling



                   Java - LPI - 2005/02   13
HISTÓRIA


• Star – 7 (*7) – personagem Duke
• Hot Java
• E nasce um novo sucesso!!!



                  Java - LPI - 2005/02   14
CARACTERÍSTICA
      S
  GERAIS DA
  LINGUAGEM
    JAVA
     Java - LPI - 2005/02   15
TIPOS
PRIMITIVOS




   Java - LPI - 2005/02   16
TIPOS
      COMPOSTOS
• Arrays
• Strings
• Ponteiros
• Registros
• Tipos Enumerados
              Java - LPI - 2005/02   17
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
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
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
STRINGS
• String é um objeto em Java;
• Classe String (pacote java.lang)
• Aspas duplas “ ”
• EX:
    String s = “olá”;
                Java - LPI - 2005/02   21
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
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
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
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
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
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
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
CONVERSÃO ENTRE TIPOS

• Conversões Explícitas:




               Java - LPI - 2005/02   29
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
PALAVRAS
ESPECIAIS




  Java - LPI - 2005/02   31
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
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
OPERADORES
       Aritméticos
       Atribuição
 Incremento / Decremento
      Comparação
          Lógicos
        Ternários
        Java - LPI - 2005/02   34
OPERADORES ARITMÉTICOS




• Não tem um operador para potência
(Como em ADA e FORTRAN)
=> Math.pow(x,y) => tipo double
              Java - LPI - 2005/02    35
OPERADORES DE ATRIBUIÇÃO




          Java - LPI - 2005/02   36
OPERADORES
INCREMENTO/DECREMENTO




        Java - LPI - 2005/02   37
OPERADORES DE COMPARAÇÃO




          Java - LPI - 2005/02   38
OPERADORES LÓGICOS




       Java - LPI - 2005/02   39
OPERADORES LÓGICOS




       Java - LPI - 2005/02   40
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
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
Seletor Bidirecional
if (condição) {
    <comandos>;
}
else {
    <comandos>;
}                 Java - LPI - 2005/02   43
Seletor Múltiplo
switch (expressão) {
    case (constante1) : <comando>;
                                      break;
    ...
    default : <comando>;
}              Java - LPI - 2005/02            44
Laço de Contagem
for (inicialização; condição; incr/decr)
{
    <comandos>;
}
• Bastante flexível

                Java - LPI - 2005/02   45
Laço Interação
     Enquanto - Faça

while (condição) {
    <comandos>;
}

            Java - LPI - 2005/02   46
Laço Interação
       Faça - Enquanto

do {
   <comandos>;
} while (condição);
            Java - LPI - 2005/02   47
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
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);
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
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
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
MEMÓRIA




 Java - LPI - 2005/02   53
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
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
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
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
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

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
[Curso Java Basico] Aula 12: Lendo dados do teclado usando a classe Scanner
 
[Curso Java Basico] Exercicios Aulas 47 a 52
[Curso Java Basico] Exercicios Aulas 47 a 52[Curso Java Basico] Exercicios Aulas 47 a 52
[Curso Java Basico] Exercicios Aulas 47 a 52
 
[Curso Java Basico] Exercicios Aulas 44 a 46
[Curso Java Basico] Exercicios Aulas 44 a 46[Curso Java Basico] Exercicios Aulas 44 a 46
[Curso Java Basico] Exercicios Aulas 44 a 46
 
Exercicios java básico
Exercicios java básicoExercicios java básico
Exercicios java básico
 
[Curso Java Basico] Exercicios Aulas 28 a 33
[Curso Java Basico] Exercicios Aulas 28 a 33[Curso Java Basico] Exercicios Aulas 28 a 33
[Curso Java Basico] Exercicios Aulas 28 a 33
 
[Curso Java Básico] Exercícios Aulas 11 12 13
[Curso Java Básico] Exercícios Aulas 11 12 13[Curso Java Básico] Exercícios Aulas 11 12 13
[Curso Java Básico] Exercícios Aulas 11 12 13
 
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
 
[Curso Java Basico] Exercicios Aula 36
[Curso Java Basico] Exercicios Aula 36[Curso Java Basico] Exercicios Aula 36
[Curso Java Basico] Exercicios Aula 36
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
 
[Curso Java Basico] Exercicios Aulas 14 15
[Curso Java Basico] Exercicios Aulas 14 15[Curso Java Basico] Exercicios Aulas 14 15
[Curso Java Basico] Exercicios Aulas 14 15
 
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) [Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
 
Threads 01: Criação e controle de threads
Threads 01: Criação e controle de threadsThreads 01: Criação e controle de threads
Threads 01: Criação e controle de threads
 
PHP - Arrays
PHP - ArraysPHP - Arrays
PHP - Arrays
 
Curso Java Basico] Aula 19: Vetores (Arrays)
Curso Java Basico] Aula 19:  Vetores (Arrays)Curso Java Basico] Aula 19:  Vetores (Arrays)
Curso Java Basico] Aula 19: Vetores (Arrays)
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
 
Classes abstratas
Classes abstratasClasses abstratas
Classes abstratas
 
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
 
ES6 presentation
ES6 presentationES6 presentation
ES6 presentation
 

Semelhante a Linguagem Java

Programação em java linguagem, ap is, boas práticas e eclipse
Programação em java   linguagem, ap is, boas práticas e eclipseProgramação em java   linguagem, ap is, boas práticas e eclipse
Programação em java linguagem, ap is, boas práticas e eclipse
Filipe Bezerra Sousa
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
Charleston Anjos
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
Stephen Chin
 

Semelhante a Linguagem Java (20)

Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
 
Java20141215 17[1]
Java20141215 17[1]Java20141215 17[1]
Java20141215 17[1]
 
Dr Java Virtual Machine
Dr Java Virtual MachineDr Java Virtual Machine
Dr Java Virtual Machine
 
Introdução ao Java
Introdução ao JavaIntrodução ao Java
Introdução ao Java
 
A arquitetura modular do Java 9
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9
 
Programação em java linguagem, ap is, boas práticas e eclipse
Programação em java   linguagem, ap is, boas práticas e eclipseProgramação em java   linguagem, ap is, boas práticas e eclipse
Programação em java linguagem, ap is, boas práticas e eclipse
 
1213 java
1213 java1213 java
1213 java
 
Introducao java
Introducao javaIntroducao java
Introducao java
 
Java 9, 10 e ... 11
Java 9, 10 e ... 11Java 9, 10 e ... 11
Java 9, 10 e ... 11
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
 
Groovy stack
Groovy stackGroovy stack
Groovy stack
 
Java 8 e futuro
Java 8 e futuroJava 8 e futuro
Java 8 e futuro
 
Três anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitorTrês anos de Scala no NewsMonitor
Três anos de Scala no NewsMonitor
 
Java cert programmer
Java cert programmerJava cert programmer
Java cert programmer
 
Java 9, 10, 11
Java 9, 10, 11Java 9, 10, 11
Java 9, 10, 11
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
03 fundamentos java
03 fundamentos java03 fundamentos java
03 fundamentos java
 
Jsummit 2014
Jsummit 2014Jsummit 2014
Jsummit 2014
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 

Último

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Último (11)

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
Apostila e caderno de exercicios de WORD
Apostila e caderno de exercicios de  WORDApostila e caderno de exercicios de  WORD
Apostila e caderno de exercicios de WORD
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 

Linguagem Java

  • 1. Java - LPI - 2005/02 LOIANE GRONER 1
  • 2. POR QUE JAVA? •Java está presente em mais de 1.5 bilhões de dispositivos em todo o mundo: Java - LPI - 2005/02 2
  • 3. 250 milhões de celulares; Câmeras fotográficas; Java - LPI - 2005/02 3
  • 4. Dispositivos e aparelhos médicos Java - LPI - 2005/02 4
  • 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
  • 16. TIPOS PRIMITIVOS Java - LPI - 2005/02 16
  • 17. TIPOS COMPOSTOS • Arrays • Strings • Ponteiros • Registros • Tipos Enumerados Java - LPI - 2005/02 17
  • 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
  • 29. CONVERSÃO ENTRE TIPOS • Conversões Explícitas: Java - LPI - 2005/02 29
  • 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
  • 31. PALAVRAS ESPECIAIS Java - LPI - 2005/02 31
  • 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
  • 34. OPERADORES Aritméticos Atribuição Incremento / Decremento Comparação Lógicos Ternários Java - LPI - 2005/02 34
  • 35. OPERADORES ARITMÉTICOS • Não tem um operador para potência (Como em ADA e FORTRAN) => Math.pow(x,y) => tipo double Java - LPI - 2005/02 35
  • 36. OPERADORES DE ATRIBUIÇÃO Java - LPI - 2005/02 36
  • 37. OPERADORES INCREMENTO/DECREMENTO Java - LPI - 2005/02 37
  • 38. OPERADORES DE COMPARAÇÃO Java - LPI - 2005/02 38
  • 39. OPERADORES LÓGICOS Java - LPI - 2005/02 39
  • 40. OPERADORES LÓGICOS Java - LPI - 2005/02 40
  • 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
  • 43. Seletor Bidirecional if (condição) { <comandos>; } else { <comandos>; } Java - LPI - 2005/02 43
  • 44. Seletor Múltiplo switch (expressão) { case (constante1) : <comando>; break; ... default : <comando>; } Java - LPI - 2005/02 44
  • 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
  • 53. MEMÓRIA Java - LPI - 2005/02 53
  • 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