SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
Programação Orientada a Objetos




   Fundamentos da Linguagem Java
        Operadores, literais, estruturas de
             decisão e de controle.


             Ludimila Monjardim Casagrande
                         2012
Literais

      Um literal é um valor definido no código-fonte,
         ao contrário de um valor definido em tempo de
         execução.

      Literais podem representar strings (arrays de
         caracteres) ou tipos primitivos.

      Literais aparecem do lado direito de uma
         atribuição ou em chamadas de métodos.



Fundamentos do Java     ©2012 Ludimila Monjardim Casagrande   2
Literais

      Literais boolean:
            Os únicos literais válidos para o tipo boolean são
             true e false.
            Exemplo:
                 boolean isEmpty = true;
                 boolean isEmpty = false;
            Uso incorreto:
                 boolean isEmpty = “true”; // erro de compilação


Fundamentos do Java          ©2012 Ludimila Monjardim Casagrande    3
Literais

      Literais char:
            São representados entre ‘ ’.
            Um literal char pode ser qualquer caracter Unicode.
            Exemplos:
                 char c = ‘z’;
                 char c2 = ‘n’;
                 char c3 = ‘t’;
                 char c1 = ‘u0041’; // equivale ao caracter ‘A’
                 ‘u????’: substituir ???? pelos 4 dígitos hexadecimais
                 correspondentes ao caracter na tabela Unicode.

Fundamentos do Java                 ©2012 Ludimila Monjardim Casagrande    4
Literais

      Literais do tipo String:
            String não é um tipo primitivo e sim uma classe.
            A classe String pertence à package java.lang.
            Literais do tipo String são representados entre “ ”.
            Exemplo:
                 String str = “Olá!”;
            Uso incorreto:
                 String str = ‘Olá!’; // erro de compilação


Fundamentos do Java           ©2012 Ludimila Monjardim Casagrande   5
Literais

      Literais inteiros:
            Podem ser expressos em decimal, octal e
             hexadecimal. O default é a base decimal.
            O prefixo 0 indica a base octal.
            O prefixo 0x ou 0X indica a base hexadecimal.
            Exemplos:
                 int i = 28;
                 int i = 034;
                 int i = 0x1C;
                 int i = 0X1c;

Fundamentos do Java               ©2012 Ludimila Monjardim Casagrande   6
Literais

      Literais ponto-flutuante:
            Um literal ponto-fluante deve conter casas
             decimais (ex.: 1.0) ou:
                 a letra E ou e, indicando notação científica: 4.3E+21
                 o sufixo F ou f, indicando um literal float: 1.83f
                 o sufixo D ou d, indicando um literal double: 123d

                 Um número com casas decimais sem o prefixo f ou
                 d é considerado por default double.


Fundamentos do Java           ©2012 Ludimila Monjardim Casagrande         7
Intervalos de Valores dos Primitivos

      Intervalos de valores dos tipos primitivos inteiros
           do Java:


       *

       *




           * byte: -128 a 127 e short: -32768 a 32767, por exemplo

Fundamentos do Java               ©2012 Ludimila Monjardim Casagrande   8
Considerações sobre Tipos Primitivos
  public class Primitivos {
      public static void main(String[ ] args) {
          byte b = 1;
          short s = 1;
          int i1 = 1;
          int i2 = 2147483647;
          int i3 = 2147483648;    //erro de compilação

          long l1 = 2147483648; //erro de compilação, inteiro muito longo
          long l2 = 2147483648l;

          float f1 = 1.0;         //erro de compilação
          float f2 = 1.0f;

          double d1 = 1.0;
                                                                        As demais linhas não
          double d2 = 1.0f;
                                                                        geram erros.
      }
  }
Fundamentos do Java               ©2012 Ludimila Monjardim Casagrande                          9
Operadores da Linguagem Java

      Os principais operadores da linguagem Java
         são os:
            Unários
            Aritméticos
            de Comparação
            Lógicos (ou Booleanos)
            de Atribuição
            Condicionais

Fundamentos do Java          ©2012 Ludimila Monjardim Casagrande   10
Operador de Atribuição

      Após uma variável ser declarada, ela pode ser
         inicializada com diferentes valores. Para isso,
         usamos o operador de atribuição =.
      Exemplos:
            int x = 10;
            boolean condicao = false;
            char c = ‘A’;
            long l = 1234L;
            float f = 1.23f;
            double d = 1.23d;


Fundamentos do Java             ©2012 Ludimila Monjardim Casagrande   11
Operador de Atribuição

           A ordem de avaliação dos operandos em uma
            expressão é sempre da esquerda para a direita.
           A ordem de execução da operação de atribuição é
            sempre da direita para a esquerda.
           A avaliação dos operandos sempre antecede a
            execução das operações.
           Sendo assim, qual é o resultado do código abaixo?
           1. int[ ] a = {4, 4};                          Resultado:
           2. int b = 1;                                  a[1] = 0;
           3. a[b] = b = 0;                               então a = {4, 0}



Fundamentos do Java            ©2012 Ludimila Monjardim Casagrande           12
Operadores Unários

      Os principais operadores unários do Java
         são:
            Operadores de incremento e decremento: ++ , --

            Operadores mais e menos: + , -

            Operador de negação: !




Fundamentos do Java      ©2012 Ludimila Monjardim Casagrande   13
Operadores de Incremento e Decremento

      Os operadores para incremento e decremento
         são, respectivamente, ++ e --.
      Tais operadores podem ser usados na forma
         pós-fixada (x++) ou pré-fixada (++x).
      A diferença só existe quando o operador
         aparece em expressões. A forma pré-fixada faz
         a adição/subtração primeiro; a pós-fixada avalia
         o valor antigo, depois incrementa/decrementa a
         variável.

Fundamentos do Java    ©2012 Ludimila Monjardim Casagrande   14
Operadores de Incremento e Decremento

      Valor inicial de x   Expressão            Valor final de y   Valor final de x


                5           y = x++;                      5               6


                5           y = ++x;                      6               6


                5           y = x--;                      5               4


                5           y = --x;                      4               4


Fundamentos do Java          ©2012 Ludimila Monjardim Casagrande                      15
Operadores Unários Mais e Menos

      Os operadores unários + e – somente indicam se
         o valor é positivo ou negativo, respectivamente.
      Tais operadores não se aplicam a booleanos.
      Podem ser aplicados a expressões e a variáveis
         do tipo char.
      Exemplos:
            char c = 10;
            int i = -c;
            int j = - (i + 6);

Fundamentos do Java           ©2012 Ludimila Monjardim Casagrande   16
Operadores Unários Mais e Menos

      Os operadores unários + e – promovem a
            expressão para int.
      Sendo assim, o trecho de código abaixo
            apresentaria um erro na linha 3:
           1. byte b1 = 1;
           2. byte b2 = 127;
           3. byte b3 = -b1; //erro: o operador – promoveu a
                             //expressão para int


Fundamentos do Java      ©2012 Ludimila Monjardim Casagrande   17
Operador de Negação

      O operador unário ! causa a negação de uma
         expressão booleana.
      Sendo assim, só se aplica a variáveis e
         expressões booleanas.
      Exemplo:
           boolean a, b, c;
           a = true;                                        Resultado:
                                                            c = true
           b = !a;
           c = !(a && b);

Fundamentos do Java           ©2012 Ludimila Monjardim Casagrande        18
Operadores Aritméticos

      Os operadores aritméticos habituais: +, -, * e /,
         são usados para adição, subtração,
         multiplicação e divisão, respectivamente.

      O operador / denota divisão inteira, se os dois
         argumentos forem inteiros, e divisão de ponto
         flutuante, caso contrário.

      Existe ainda o operador % usado para se obter
         o resto da divisão inteira entre dois números.

Fundamentos do Java     ©2012 Ludimila Monjardim Casagrande   19
Operadores Aritméticos

      Os operadores aritméticos aplicam-se a todos
         os tipos primitivos numéricos e ao tipo char.
      A divisão inteira por zero (incluindo a operação
         de módulo) gera uma ArithmeticException.
      Divisões por zero incluindo tipos ponto-flutuante
         não geram exceções.
      O uso dos operadores aritméticos promovem a
         expressão para, no mínimo, int.

Fundamentos do Java     ©2012 Ludimila Monjardim Casagrande   20
Operadores de Comparação

      Os operadores de igualdade e desigualdade em
         Java são, respectivamente, == e !=.

      Exemplos:
            (3 == 4) resulta em false
            (3 != 4) resulta em true

      Observe que esses operadores também podem
         ser aplicados a operandos booleanos.

Fundamentos do Java       ©2012 Ludimila Monjardim Casagrande   21
Operadores de Comparação

      Os outros operadores de comparação são:
            >        maior que
            >=       maior ou igual que
            <        menor que
            <=       menor ou igual que
      Observe que não faz sentido aplicar tais
         operadores a operandos booleanos.
      O resultado de uma comparação em Java é
         sempre um valor booleano.
Fundamentos do Java         ©2012 Ludimila Monjardim Casagrande   22
Operadores Lógicos

      Os operadores lógicos em Java são:
            &&       e lógico
            ||       ou lógico

      Esses operadores são aplicáveis somente a
         operandos ou expressões booleanas e o
         resultado também é sempre booleano.




Fundamentos do Java        ©2012 Ludimila Monjardim Casagrande   23
Operadores Lógicos

      Com o uso dos operadores && e I I é possível
         obter o resultado sem que a expressão
         completa tenha sido avaliada, isto é, fazendo
         somente uma avaliação parcial.
      Exemplo:
           (a && b)
         Se a for avaliado como falso, então b não precisa e
         não será avaliado, pois se a é falso já é possível
         afirmar que a && b é falso.


Fundamentos do Java     ©2012 Ludimila Monjardim Casagrande    24
Operador Condicional

      Existe um operador condicional em Java que
         sintetiza a função do comando if/else.
      Esse operador é ? :, que é considerado um
         operador ternário por necessitar de três operandos.
      Exemplo:
            a ? b : c;
                 o primeiro operando, no caso a, deve ser um valor
                  ou expressão booleana
                 se a for verdadeiro, o resultado será b
                 caso contrário, o resultado será c

Fundamentos do Java          ©2012 Ludimila Monjardim Casagrande      25
Operador Condicional

      Exemplo:
           if (Character.isUpperCase(aChar)) {
               System.out.println(“O caractere " + aChar + " é upper case.");
           } else {
               System.out.println(" O caractere " + aChar + " é lower case.");
           }


           Usando o operador condicional o código ficaria assim:
           System.out.println(" O caractere " + aChar + " é " +
             (Character.isUpperCase(aChar) ? "upper" : "lower") + "case.");



Fundamentos do Java             ©2012 Ludimila Monjardim Casagrande              26
Precedência de Operadores em Java

      Ordem descendente de precedência:
                           Categoria                         Operador

                      Unários                    ++ -- + - !
                                                 * / %
                      Aritméticos
                                                 + -
                      Comparação                 < <= > >=
                                                 == !=
                      Lógicos                    && | |

                      Condicional                ?:
                      Atribuição                 =

Fundamentos do Java                 ©2012 Ludimila Monjardim Casagrande   27
Escopo de um Bloco

      O controle de fluxo de aplicações Java é organizado em
         blocos. Um bloco ou conjunto de instruções/comandos em
         Java é delimitado por { e }.
      Uma variável declarada dentro de um bloco é visível somente
         dentro do bloco.
      Exemplo:
           ...
           {
                 int i = 0;
                 i = i + x;
                 ...
           }
           x = i;             // erro, pois i foi declarada dentro do bloco anterior a
                              // essa linha, e não é visível fora do bloco.


Fundamentos do Java                   ©2012 Ludimila Monjardim Casagrande                28
Estrutura Condicional

      A estrutura condicional mais simples em Java é:
              if (condição)
                  instrução;

      Quando for necessário executar um conjunto de
         instruções, dada uma condição, usamos um bloco
         de instruções ou bloco de código.
              if (condição) {
                  instrução 1;
                  instrução 2;
                  ...
                  instrução n;
              }
Fundamentos do Java              ©2012 Ludimila Monjardim Casagrande   29
Estrutura Condicional

      Assim como a maioria das linguagens, Java
         também possui a construção if com o else
         associado.
              if (condição)
                  instrução; //se a condição for verdadeira
              else
                  instrução; //se a condição for falsa

      O else é sempre uma parte opcional neste
         comando.

Fundamentos do Java        ©2012 Ludimila Monjardim Casagrande   30
Estrutura Condicional

      Exemplo:
         double nota;
         nota = 6.0;
         if (nota < 0.0) {
               System.out.println(“Erro: A nota não pode ser negativa.”);
         } else if (nota >= 6.0) {
                System.out.println(“Aluno aprovado.”);
         } else {
               System.out.println(“Aluno reprovado.”);
         }

Fundamentos do Java           ©2012 Ludimila Monjardim Casagrande           31
Estrutura para Seleção Múltipla

      Há casos em que vários                  Sintaxe:
         testes têm que ser feitos                  switch(variável){
         em sequência, e vários                         case 1:
         comandos if podem ser                                   ...
         substituídos pelo comando                               break;
                                                        case 2:
         switch.                                                 ...
      O comando switch também                                   break;
         expressa alternativas de                       ...
                                                        case n:
         execução, mas nesse caso                                ...
         as condições estão restritas                            break;
         à comparação de uma                            default:
         variável inteira com valores                            ...
         constantes.                                }

Fundamentos do Java        ©2012 Ludimila Monjardim Casagrande            32
Estrutura para Seleção Múltipla

      Exemplo:
           int x = 0;
           switch(x){
                case 1:
                      System.out.println(“Obteve um 1.”);
                      break;
                case 2:
                case 3:
                      System.out.println(“Obteve um 2 ou 3.”);
                      break;
                default:
                      System.out.println(“Não obteve 1 nem 2 nem 3.”);
           }
Fundamentos do Java                ©2012 Ludimila Monjardim Casagrande   33
Estrutura para Seleção Múltipla

      O switch faz a avaliação da variável inteira
         procurando por um case que coincida com o seu
         valor. Uma vez encontrado um case, todos os
         demais comandos case serão executados a menos
         que um comando break seja encontrado.

      A cláusula default é opcional e suas instruções são
         executadas caso nenhuma opção de case tenha
         sido executada.

      O comando switch pode ser executado com
         operando do tipo char, byte, short ou int.

Fundamentos do Java      ©2012 Ludimila Monjardim Casagrande   34
Estruturas Iterativas (laços)

      Java possui três comandos iterativos:
            while,

            do-while e

            for




Fundamentos do Java       ©2012 Ludimila Monjardim Casagrande   35
Estruturas Iterativas

      Sintaxe do comando while:
              while (condição)
                instrução;

      Nesse caso, a instrução é executada se e
         enquanto a condição for verdadeira.
            Exemplo:
             int x = 0;
             while (x < 10) {
                System.out.println(x++);
             }
Fundamentos do Java       ©2012 Ludimila Monjardim Casagrande   36
Estruturas Iterativas

      Sintaxe do comando do-while:
           do {
               instrução;
           } while (condição);

      Semelhante ao while, a diferença é que nesse caso
         a instrução sempre será executada pelo menos uma
         vez.
            Exemplo:
             int x = 0;
             do {
               System.out.println(x++);
             } while (x < 10);
Fundamentos do Java          ©2012 Ludimila Monjardim Casagrande   37
Estruturas Iterativas

      Sintaxe básica do comando for:
           for (inicialização; condição; incremento)
               instrução;

      Exemplo:
              for (int i = 0; i < 10; i++){
                      System.out.println(i);
              }



Fundamentos do Java              ©2012 Ludimila Monjardim Casagrande   38
Estruturas Iterativas

      Exemplo:
              for (int i = 0; i < 10; i++){
                 System.out.println(i);
              }
            Observe que a variável i é declarada dentro do
             for, sendo assim essa variável só é acessível
             dentro do bloco definido para o for.
            Uma variável de nome i pode até ser declarada
             depois do for que não haverá problema.


Fundamentos do Java          ©2012 Ludimila Monjardim Casagrande   39
Estruturas Iterativas

      Os comandos continue e break permitem
         expressar a quebra de um fluxo de execução.
      O uso de break já foi utilizado juntamente com
         switch para delimitar bloco de comandos de
         cada case.
      No corpo de uma iteração, a ocorrência do
         comando break interrompe a iteração, passando
         o controle para o próximo comando após o
         comando de iteração.

Fundamentos do Java    ©2012 Ludimila Monjardim Casagrande   40
Estruturas Iterativas

      O comando continue também interrompe a
         execução da iteração, mas apenas da iteração
         corrente.
      Como efeito da execução de continue, a
         condição de iteração é reavaliada e, se for
         verdadeira, o comando de iteração continua
         executando.




Fundamentos do Java    ©2012 Ludimila Monjardim Casagrande   41
Estruturas Iterativas

      Exemplo:
              for (int i = 0; i < 10; i++){
                 if( i % 3 == 0) {
                    System.out.println(i + “ é múltiplo de 3”);
                    continue;
                 }
                 System.out.println(i);
              }



Fundamentos do Java         ©2012 Ludimila Monjardim Casagrande   42
Tutoriais do Java

      The Java Tutorials
            Getting Started
                 http://java.sun.com/docs/books/tutorial/getStarted/
            Learning the Java Language
                 http://java.sun.com/docs/books/tutorial/java/




Fundamentos do Java          ©2012 Ludimila Monjardim Casagrande        43
Referências

      Complete Java 2 Certification
         Study Guide
         Sybex

      Java: Como programar
         Autores: H. M. Deitel e P. J. Deitel
         Editora: Pearson – 6ª Edição




Fundamentos do Java     ©2012 Ludimila Monjardim Casagrande   44

Más contenido relacionado

La actualidad más candente

Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismoArthur Emanuel
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Core java concepts
Core java  conceptsCore java  concepts
Core java conceptsRam132
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesOziel Moreira Neto
 
Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoRegis Magalhães
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 

La actualidad más candente (20)

JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
POO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em JavaPOO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em Java
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Core java concepts
Core java  conceptsCore java  concepts
Core java concepts
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
POO - Aula 09 - Herança
POO - Aula 09 - HerançaPOO - Aula 09 - Herança
POO - Aula 09 - Herança
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
POO - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
 
Java 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita PolimorfismoJava 09 Heranca Reescrita Polimorfismo
Java 09 Heranca Reescrita Polimorfismo
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 

Destacado

Instruções de iteração e atribuição composta
Instruções de iteração e atribuição compostaInstruções de iteração e atribuição composta
Instruções de iteração e atribuição compostaDaniel Araújo
 
Seguranca da Informação -Práticas de segurança
Seguranca da Informação -Práticas de segurançaSeguranca da Informação -Práticas de segurança
Seguranca da Informação -Práticas de segurançaLuiz Arthur
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de SoftwareVagner Santana
 
Segurança da Informação - Firewall
Segurança da Informação - FirewallSegurança da Informação - Firewall
Segurança da Informação - FirewallLuiz Arthur
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência JavaMario Jorge Pereira
 
[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) Loiane Groner
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoMarconi Rodrigues
 
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVAProgramação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVACristiano Almeida
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasBreno Vitorino
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 

Destacado (16)

Introdução ao Java
Introdução ao JavaIntrodução ao Java
Introdução ao Java
 
Instruções de iteração e atribuição composta
Instruções de iteração e atribuição compostaInstruções de iteração e atribuição composta
Instruções de iteração e atribuição composta
 
Seguranca da Informação -Práticas de segurança
Seguranca da Informação -Práticas de segurançaSeguranca da Informação -Práticas de segurança
Seguranca da Informação -Práticas de segurança
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de Software
 
Segurança da Informação - Firewall
Segurança da Informação - FirewallSegurança da Informação - Firewall
Segurança da Informação - Firewall
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
Aula 3.ppt
Aula 3.pptAula 3.ppt
Aula 3.ppt
 
Operadores Java
Operadores JavaOperadores Java
Operadores Java
 
[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)
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVAProgramação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 

Similar a POO - 07 - Operadores do Java (20)

Apostila c++
Apostila c++Apostila c++
Apostila c++
 
Resumo tipo primitivo_java
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_java
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
 
Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados Operadores
 
Aula 2
Aula 2Aula 2
Aula 2
 
Tipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxo
 
Tipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxo
 
Java
JavaJava
Java
 
Java - Aula 08
Java - Aula 08Java - Aula 08
Java - Aula 08
 
Unidade06
Unidade06Unidade06
Unidade06
 
7194099-Manual-de-Java
7194099-Manual-de-Java7194099-Manual-de-Java
7194099-Manual-de-Java
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Guia rapido java v2
Guia rapido java v2Guia rapido java v2
Guia rapido java v2
 
Logica java ate slide 30
Logica java   ate slide 30Logica java   ate slide 30
Logica java ate slide 30
 
Fundamentos do java
Fundamentos do javaFundamentos do java
Fundamentos do java
 
POO - 04 - Variávies em Java
POO - 04 - Variávies em JavaPOO - 04 - Variávies em Java
POO - 04 - Variávies em Java
 
Java2
Java2Java2
Java2
 
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1
 
02 controle de fluxo
02   controle de fluxo02   controle de fluxo
02 controle de fluxo
 
Java 05
Java 05Java 05
Java 05
 

Más de Ludimila Monjardim Casagrande

Más de Ludimila Monjardim Casagrande (16)

Gerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com ScrumGerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com Scrum
 
POO - 23 - Coleções da API do Java
POO -  23 - Coleções da API do Java POO -  23 - Coleções da API do Java
POO - 23 - Coleções da API do Java
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
POO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de DadosPOO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de Dados
 
POO - 19 - Elementos Estáticos
POO - 19 - Elementos EstáticosPOO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de ArgumentosPOO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
POO - 12 - A Classe Object
POO - 12 - A Classe ObjectPOO - 12 - A Classe Object
POO - 12 - A Classe Object
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em JavaPOO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
 
POO - 08 - Prática de Encapsulamento
POO - 08 - Prática de EncapsulamentoPOO - 08 - Prática de Encapsulamento
POO - 08 - Prática de Encapsulamento
 
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de DesenvolvimentoPOO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 
POO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - DatasPOO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - Datas
 

POO - 07 - Operadores do Java

  • 1. Programação Orientada a Objetos Fundamentos da Linguagem Java Operadores, literais, estruturas de decisão e de controle. Ludimila Monjardim Casagrande 2012
  • 2. Literais  Um literal é um valor definido no código-fonte, ao contrário de um valor definido em tempo de execução.  Literais podem representar strings (arrays de caracteres) ou tipos primitivos.  Literais aparecem do lado direito de uma atribuição ou em chamadas de métodos. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 2
  • 3. Literais  Literais boolean:  Os únicos literais válidos para o tipo boolean são true e false.  Exemplo:  boolean isEmpty = true;  boolean isEmpty = false;  Uso incorreto:  boolean isEmpty = “true”; // erro de compilação Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 3
  • 4. Literais  Literais char:  São representados entre ‘ ’.  Um literal char pode ser qualquer caracter Unicode.  Exemplos:  char c = ‘z’;  char c2 = ‘n’;  char c3 = ‘t’;  char c1 = ‘u0041’; // equivale ao caracter ‘A’  ‘u????’: substituir ???? pelos 4 dígitos hexadecimais correspondentes ao caracter na tabela Unicode. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 4
  • 5. Literais  Literais do tipo String:  String não é um tipo primitivo e sim uma classe.  A classe String pertence à package java.lang.  Literais do tipo String são representados entre “ ”.  Exemplo:  String str = “Olá!”;  Uso incorreto:  String str = ‘Olá!’; // erro de compilação Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 5
  • 6. Literais  Literais inteiros:  Podem ser expressos em decimal, octal e hexadecimal. O default é a base decimal.  O prefixo 0 indica a base octal.  O prefixo 0x ou 0X indica a base hexadecimal.  Exemplos:  int i = 28;  int i = 034;  int i = 0x1C;  int i = 0X1c; Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 6
  • 7. Literais  Literais ponto-flutuante:  Um literal ponto-fluante deve conter casas decimais (ex.: 1.0) ou:  a letra E ou e, indicando notação científica: 4.3E+21  o sufixo F ou f, indicando um literal float: 1.83f  o sufixo D ou d, indicando um literal double: 123d  Um número com casas decimais sem o prefixo f ou d é considerado por default double. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 7
  • 8. Intervalos de Valores dos Primitivos  Intervalos de valores dos tipos primitivos inteiros do Java: * * * byte: -128 a 127 e short: -32768 a 32767, por exemplo Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 8
  • 9. Considerações sobre Tipos Primitivos public class Primitivos { public static void main(String[ ] args) { byte b = 1; short s = 1; int i1 = 1; int i2 = 2147483647; int i3 = 2147483648; //erro de compilação long l1 = 2147483648; //erro de compilação, inteiro muito longo long l2 = 2147483648l; float f1 = 1.0; //erro de compilação float f2 = 1.0f; double d1 = 1.0; As demais linhas não double d2 = 1.0f; geram erros. } } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 9
  • 10. Operadores da Linguagem Java  Os principais operadores da linguagem Java são os:  Unários  Aritméticos  de Comparação  Lógicos (ou Booleanos)  de Atribuição  Condicionais Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 10
  • 11. Operador de Atribuição  Após uma variável ser declarada, ela pode ser inicializada com diferentes valores. Para isso, usamos o operador de atribuição =.  Exemplos:  int x = 10;  boolean condicao = false;  char c = ‘A’;  long l = 1234L;  float f = 1.23f;  double d = 1.23d; Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 11
  • 12. Operador de Atribuição  A ordem de avaliação dos operandos em uma expressão é sempre da esquerda para a direita.  A ordem de execução da operação de atribuição é sempre da direita para a esquerda.  A avaliação dos operandos sempre antecede a execução das operações.  Sendo assim, qual é o resultado do código abaixo? 1. int[ ] a = {4, 4}; Resultado: 2. int b = 1; a[1] = 0; 3. a[b] = b = 0; então a = {4, 0} Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 12
  • 13. Operadores Unários  Os principais operadores unários do Java são:  Operadores de incremento e decremento: ++ , --  Operadores mais e menos: + , -  Operador de negação: ! Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 13
  • 14. Operadores de Incremento e Decremento  Os operadores para incremento e decremento são, respectivamente, ++ e --.  Tais operadores podem ser usados na forma pós-fixada (x++) ou pré-fixada (++x).  A diferença só existe quando o operador aparece em expressões. A forma pré-fixada faz a adição/subtração primeiro; a pós-fixada avalia o valor antigo, depois incrementa/decrementa a variável. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 14
  • 15. Operadores de Incremento e Decremento Valor inicial de x Expressão Valor final de y Valor final de x 5 y = x++; 5 6 5 y = ++x; 6 6 5 y = x--; 5 4 5 y = --x; 4 4 Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 15
  • 16. Operadores Unários Mais e Menos  Os operadores unários + e – somente indicam se o valor é positivo ou negativo, respectivamente.  Tais operadores não se aplicam a booleanos.  Podem ser aplicados a expressões e a variáveis do tipo char.  Exemplos:  char c = 10;  int i = -c;  int j = - (i + 6); Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 16
  • 17. Operadores Unários Mais e Menos  Os operadores unários + e – promovem a expressão para int.  Sendo assim, o trecho de código abaixo apresentaria um erro na linha 3: 1. byte b1 = 1; 2. byte b2 = 127; 3. byte b3 = -b1; //erro: o operador – promoveu a //expressão para int Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 17
  • 18. Operador de Negação  O operador unário ! causa a negação de uma expressão booleana.  Sendo assim, só se aplica a variáveis e expressões booleanas.  Exemplo: boolean a, b, c; a = true; Resultado: c = true b = !a; c = !(a && b); Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 18
  • 19. Operadores Aritméticos  Os operadores aritméticos habituais: +, -, * e /, são usados para adição, subtração, multiplicação e divisão, respectivamente.  O operador / denota divisão inteira, se os dois argumentos forem inteiros, e divisão de ponto flutuante, caso contrário.  Existe ainda o operador % usado para se obter o resto da divisão inteira entre dois números. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 19
  • 20. Operadores Aritméticos  Os operadores aritméticos aplicam-se a todos os tipos primitivos numéricos e ao tipo char.  A divisão inteira por zero (incluindo a operação de módulo) gera uma ArithmeticException.  Divisões por zero incluindo tipos ponto-flutuante não geram exceções.  O uso dos operadores aritméticos promovem a expressão para, no mínimo, int. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 20
  • 21. Operadores de Comparação  Os operadores de igualdade e desigualdade em Java são, respectivamente, == e !=.  Exemplos:  (3 == 4) resulta em false  (3 != 4) resulta em true  Observe que esses operadores também podem ser aplicados a operandos booleanos. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 21
  • 22. Operadores de Comparação  Os outros operadores de comparação são:  > maior que  >= maior ou igual que  < menor que  <= menor ou igual que  Observe que não faz sentido aplicar tais operadores a operandos booleanos.  O resultado de uma comparação em Java é sempre um valor booleano. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 22
  • 23. Operadores Lógicos  Os operadores lógicos em Java são:  && e lógico  || ou lógico  Esses operadores são aplicáveis somente a operandos ou expressões booleanas e o resultado também é sempre booleano. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 23
  • 24. Operadores Lógicos  Com o uso dos operadores && e I I é possível obter o resultado sem que a expressão completa tenha sido avaliada, isto é, fazendo somente uma avaliação parcial.  Exemplo: (a && b) Se a for avaliado como falso, então b não precisa e não será avaliado, pois se a é falso já é possível afirmar que a && b é falso. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 24
  • 25. Operador Condicional  Existe um operador condicional em Java que sintetiza a função do comando if/else.  Esse operador é ? :, que é considerado um operador ternário por necessitar de três operandos.  Exemplo:  a ? b : c;  o primeiro operando, no caso a, deve ser um valor ou expressão booleana  se a for verdadeiro, o resultado será b  caso contrário, o resultado será c Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 25
  • 26. Operador Condicional  Exemplo: if (Character.isUpperCase(aChar)) { System.out.println(“O caractere " + aChar + " é upper case."); } else { System.out.println(" O caractere " + aChar + " é lower case."); } Usando o operador condicional o código ficaria assim: System.out.println(" O caractere " + aChar + " é " + (Character.isUpperCase(aChar) ? "upper" : "lower") + "case."); Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 26
  • 27. Precedência de Operadores em Java  Ordem descendente de precedência: Categoria Operador Unários ++ -- + - ! * / % Aritméticos + - Comparação < <= > >= == != Lógicos && | | Condicional ?: Atribuição = Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 27
  • 28. Escopo de um Bloco  O controle de fluxo de aplicações Java é organizado em blocos. Um bloco ou conjunto de instruções/comandos em Java é delimitado por { e }.  Uma variável declarada dentro de um bloco é visível somente dentro do bloco.  Exemplo: ... { int i = 0; i = i + x; ... } x = i; // erro, pois i foi declarada dentro do bloco anterior a // essa linha, e não é visível fora do bloco. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 28
  • 29. Estrutura Condicional  A estrutura condicional mais simples em Java é: if (condição) instrução;  Quando for necessário executar um conjunto de instruções, dada uma condição, usamos um bloco de instruções ou bloco de código. if (condição) { instrução 1; instrução 2; ... instrução n; } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 29
  • 30. Estrutura Condicional  Assim como a maioria das linguagens, Java também possui a construção if com o else associado. if (condição) instrução; //se a condição for verdadeira else instrução; //se a condição for falsa  O else é sempre uma parte opcional neste comando. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 30
  • 31. Estrutura Condicional  Exemplo: double nota; nota = 6.0; if (nota < 0.0) { System.out.println(“Erro: A nota não pode ser negativa.”); } else if (nota >= 6.0) { System.out.println(“Aluno aprovado.”); } else { System.out.println(“Aluno reprovado.”); } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 31
  • 32. Estrutura para Seleção Múltipla  Há casos em que vários  Sintaxe: testes têm que ser feitos switch(variável){ em sequência, e vários case 1: comandos if podem ser ... substituídos pelo comando break; case 2: switch. ...  O comando switch também break; expressa alternativas de ... case n: execução, mas nesse caso ... as condições estão restritas break; à comparação de uma default: variável inteira com valores ... constantes. } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 32
  • 33. Estrutura para Seleção Múltipla  Exemplo: int x = 0; switch(x){ case 1: System.out.println(“Obteve um 1.”); break; case 2: case 3: System.out.println(“Obteve um 2 ou 3.”); break; default: System.out.println(“Não obteve 1 nem 2 nem 3.”); } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 33
  • 34. Estrutura para Seleção Múltipla  O switch faz a avaliação da variável inteira procurando por um case que coincida com o seu valor. Uma vez encontrado um case, todos os demais comandos case serão executados a menos que um comando break seja encontrado.  A cláusula default é opcional e suas instruções são executadas caso nenhuma opção de case tenha sido executada.  O comando switch pode ser executado com operando do tipo char, byte, short ou int. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 34
  • 35. Estruturas Iterativas (laços)  Java possui três comandos iterativos:  while,  do-while e  for Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 35
  • 36. Estruturas Iterativas  Sintaxe do comando while: while (condição) instrução;  Nesse caso, a instrução é executada se e enquanto a condição for verdadeira.  Exemplo: int x = 0; while (x < 10) { System.out.println(x++); } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 36
  • 37. Estruturas Iterativas  Sintaxe do comando do-while: do { instrução; } while (condição);  Semelhante ao while, a diferença é que nesse caso a instrução sempre será executada pelo menos uma vez.  Exemplo: int x = 0; do { System.out.println(x++); } while (x < 10); Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 37
  • 38. Estruturas Iterativas  Sintaxe básica do comando for: for (inicialização; condição; incremento) instrução;  Exemplo: for (int i = 0; i < 10; i++){ System.out.println(i); } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 38
  • 39. Estruturas Iterativas  Exemplo: for (int i = 0; i < 10; i++){ System.out.println(i); }  Observe que a variável i é declarada dentro do for, sendo assim essa variável só é acessível dentro do bloco definido para o for.  Uma variável de nome i pode até ser declarada depois do for que não haverá problema. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 39
  • 40. Estruturas Iterativas  Os comandos continue e break permitem expressar a quebra de um fluxo de execução.  O uso de break já foi utilizado juntamente com switch para delimitar bloco de comandos de cada case.  No corpo de uma iteração, a ocorrência do comando break interrompe a iteração, passando o controle para o próximo comando após o comando de iteração. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 40
  • 41. Estruturas Iterativas  O comando continue também interrompe a execução da iteração, mas apenas da iteração corrente.  Como efeito da execução de continue, a condição de iteração é reavaliada e, se for verdadeira, o comando de iteração continua executando. Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 41
  • 42. Estruturas Iterativas  Exemplo: for (int i = 0; i < 10; i++){ if( i % 3 == 0) { System.out.println(i + “ é múltiplo de 3”); continue; } System.out.println(i); } Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 42
  • 43. Tutoriais do Java  The Java Tutorials  Getting Started  http://java.sun.com/docs/books/tutorial/getStarted/  Learning the Java Language  http://java.sun.com/docs/books/tutorial/java/ Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 43
  • 44. Referências  Complete Java 2 Certification Study Guide Sybex  Java: Como programar Autores: H. M. Deitel e P. J. Deitel Editora: Pearson – 6ª Edição Fundamentos do Java ©2012 Ludimila Monjardim Casagrande 44