SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Fundamentos da Linguagem Java




                   
                                     Prof. Nécio de Lima Veras
                      http://lattes.cnpq.br/8284657916723590
Royalties




Estes slides foram inicialmente criados pelo prof.
Régis Pires (IFPI-Parnaíba) que gentilmente cedeu
para que algumas adaptações fossem feitas.




Ass. Nécio de Lima Veras (IFCE-Tianguá).



                                       Prof. Nécio Veras
Tipos de Dados e Operadores



Identificadores
➔
       Por convenção:
            Nomes de variaveis iniciam com minúsculas e as palavras
             subsequentes devem iniciar com maiúsculas.
              • Ex: nome, nomeComposto, etc...
            Nomes de classes iniciam com maiúsculas e as palavras
             subsequentes também.
              • Ex: Classe, ClasseComposta, etc...
            Nomes de constantes são escritos em caixa alta e os
             nomes compostos separados pelo caracter '_'.
              • Ex: CONSTANTE, OUTRA_CONSTANTE


                                                    Prof. Nécio Veras
Comentários


➔ Comentário de linha (// ...)
➔ Comentário de Bloco (/* ... */)


    ...
    /* comentário daqui,
    ate aqui */
    // declara a idade
    int idade;
    idade = 15;
    // imprime a idade
    System.out.println(idade);
    ...
                                      Prof. Nécio Veras
Declaração e uso de variáveis


➔   Declaração
    tipoDaVaríavel nomeDaVariável;
    int idade;
Uso
    idade = 15;




                                        Prof. Nécio Veras
Inicialização de variáveis


...
//gera uma idade no ano seguinte
int idade = 15;
int idadeNoAnoQueVem;
idadeNoAnoQueVem = idade + 1;
...




                                   Prof. Nécio Veras
Operadores Aritméticos


➔ +, -, / e *
➔ % (módulo)
       Resto da divisão inteira.

...
int quatro = 2 + 2;
int tres = 5 – 2;
int oito = 4 * 2;
int dezesseis = 64 / 4;
int um = 5 % 2; // 5 dividido por 2 dá 2 e tem resto 1;
// o operador % pega o resto da divisão inteira
...


                                               Prof. Nécio Veras
Tipos de Dados e Operadores


➔   Operadores
       Aritméticos
            adição (+), subtração (-)
            multiplicação (*), divisão (/), resto (%)
            incremento (++), decremento (--)
              • a++; a--; ++a; --a
            comparação (==, !=, <, <=, >, >=) produz boolean
       Bit-a-bit (tipos inteiros e booleanos)
            and (&), or (|), not (~)
            deslocamento à esquerda (<<), à direita (>>)
            Deslocamento à direita sem sinal (>>>)



                                                         Prof. Nécio Veras
Tipos de Dados e Operadores


➔   Operadores
       Teste condicional (&& e ||)
            Operam somente em expressões booleanas
            Avaliados da esquerda para a direita
            Implementam a técnica de curto-circuito
            Exemplo
               • a < b && c > d || e == f
                    Se “a < b” avalia para false, a subexpressão “&&” é false e a
                     avaliação de “c > d” não é realizada
                    Se ambos, “a < b” e “c > d” avaliam para true, a expressão
                     toda é true e a avaliação de “e == f” não é realizada




                                                               Prof. Nécio Veras
Tipos de Dados e Operadores


➔   Operadores
       Atribuição (=)
          Usado para atribuir um valor a uma variável

          Pode ser usado em combinação com outros

           operadores.
          Se possível, a expressão do lado direito é convertida

           para o tipo do operando do lado esquerdo.
          Não faz conversões implícitas que resultam em perda

           de dados.
             • Tais conversões devem ser feitas via cast (conversão)
             explícito.


                                                   Prof. Nécio Veras
Tipos de Dados e Operadores


➔   Operadores:
       Atribuição com operação:
            Um tipo especial de atribuição é feito juntando-se o operador
             de atribuição com um dos operadores aritméticos e bit-a-bit.
       Exemplo:

                         a += 1     // a = a + 1
                         a *= b     // a = a * b
                         a |= b     // a = a | b
                         ...




                                                         Prof. Nécio Veras
Tipos de Dados e Operadores


➔   Operador ternário(if-else)
       Operador que usa três argumentos:
            boolean-exp ? value0 : value1
            Se boolean-exp avaliar para true, a expressão value0 será o
             resultado da expressão.
            Se boolean-exp avaliar para false, a expressão value1 será o
             resultado da expressão.
       Exemplo:
                                   int x, y;
                                   String s, str;
                                   ...

                                   x = y > 0 ? x / y : 0;
                                   str = "Teste";
                                   s = str != null ? s + str : s;
                                   ...
                                                            Prof. Nécio Veras
Tipos Primitivos


➔   double
       Número com ponto flutuante.
    double d = 3.14;
    double x = 5 * 10;
➔   boolean
       Verdadeiro ou falso.
    boolean verdade = true;
➔   char
       Um e apenas um caractere.
       Caractere deve estar entre aspas simples.
    char letra = 'a';
    System.out.println(letra);
                                                    Prof. Nécio Veras
Tipos primitivos e valores


➔ Tipos primitivos guardam o real conteúdo da
  variável.
➔ Ao usar o operador de atribuição =, o valor será

  copiado.

int i = 5; // i recebe uma cópia do valor 5
int j = i; // j recebe uma cópia do valor de i
i = i + 1; // i vira 6, j continua 5




                                        Prof. Nécio Veras
Tipos Primitivos


➔   Armazenam valores e não referências.
➔   Não necessitam de instanciação.
➔   Outros tipos primitivos:
      byte, short, long e float.
➔   O tipo boolean tem 2 valores possíveis: true e false.




                                                 Prof. Nécio Veras
Casting e promoção


➔   Problema
int i;
double d, d2;
d = 3.1415;
i = d; // não compila
i = 3.14; // não compila
d = 5; // ok, double pode conter um inteiro
i = d; // não compila
// Quando há possibilidade de perda, a conversão
// não pode ser feita.
i = 5; // ok, pois não há perda de dados.
d2 = i; // ok


                                           Prof. Nécio Veras
Tipos de Dados e Operadores


➔   Conversão de tipos
       Java converterá um tipo de dados em outro sempre que
        apropriado.
       As conversões ocorrerão automaticamente quando houver
        garantia de não haver perda de informação:
            Tipos menores em tipos maiores;
            Tipos de menor precisão em tipos de maior precisão;
            Inteiros em ponto-flutuante.
       Exemplo:
                                          byte b = 10;
                                          short s = b;
                                          int i = s;
                                          long l = i;
                                          float f = l;
                                          double b = f;
                                                      Prof. Nécio Veras
Casting


   É o processo em que um tipo mais abrangente é moldado
    (casted) para outro tipo menos abrangente, podendo haver algum
    tipo de perda.
   O cast não é feito automaticamente. O programador precisa defini-
    lo explicitamente, assumindo os riscos de perda de informação.
   É feito colocando-se o tipo desejado entre parênteses na frente da
    expressão.
      double d3 = 3.14;
      int i = (int) d3;
   No exemplo acima, d3 foi moldado como um int. O valor de i
    agora é 3.




                                                   Prof. Nécio Veras
Casting


   De long para int:
     long x = 10000;
     int i = x; // Não ok, pois pode perder dados.
   Com o casting:
     long x = 10000;
     int i = (int) x;




                                          Prof. Nécio Veras
Tipos de Dados e Operadores


➔   Promoção
       Qualquer operação com dois ou mais operadores de tipos
        diferentes sofrerá promoção, isto é, conversão automática
        para o tipo mais abrangente
            O maior ou mais preciso tipo da expressão
            O tipo int (char, byte ou short)
       Exemplo
                        int a = 10;
                        double d = a + 45F + 12D;
                        float e = (float) (a + 45F + 12D);

                        byte a = 9, b = 6;
                        short c = 7;
                        byte d = (byte) (a + b + c);
                                                         Prof. Nécio Veras
Casting


float x = 0.0; // Não compila
float x = 0.0f; // Ok.
// A letra f indica que o literal deve ser
// tratado como float.
long l = 0.0L;
// A letra L indica que o literal deve ser
// tratado como long.
double d = 5;
float f = 3;
float x = (float) d + f;
/* O Java faz as contas e vai armazenando sempre
 no maior tipo que apareceu durante as operações.
 No mínimo, o Java armazena um int,para fazer as
 contas. Boolean não pode ser convertido para outro tipo.
  */                                       Prof. Nécio Veras
Exercício


➔   Quais dos identificadores abaixo são permitidos pela linguagem Java?
               a.    R a io X            b.     X P TO 123               c.   V a lo r d a v e n d a
               d.    1 P a u lo          e.     R 2D 2_                  f.   V e to r1 5
               g.    ZZZZZZ              h.     _3M                      i.   _10V

               j.    _3B b               k.     R a io x                 l.   1_0_V

               m . N /4                  n.     #M                       o.   !s o m a



➔   Classifique os valores abaixo em double, int, char, String, boolean ou inválido:
          a.        12        b.   1 2 .1         c.       1 2 ,0   d.        V e rd a d e         e.     “ N é c io ”
          f.        '1 '      g.   8+4            h.       -3 .7    i.        M e n t ir a         j.     ‘N é c io ’
          k.        3 .7 --   l.   + + 1 ,3 7     m .      172F     n.        V e r d a d e ir o   o.     ‘N é c io ’+ ’V e r a s ’
          p.        “r”       q.   ‘C a s a ’     r.       2A       s.        F a ls o             t.     “ N é c io ” + ” V e r a s ”
          u.        .0 0 1    v.   c in c o       w .      1 /2 L   x.        1 2 v e rd a d e s   y.     1 + ’N ’




                                                                                                        Prof. Nécio Veras
Exercício


➔        Sobre os Comandos de Atribuição, marque V para Verdadeiro e F para Falso nos seguintes comandos
         de atribuição:
                        In t A , b , C , d , E ;
                        f lo a t R , M , S ;
                        char ch;
                        S t r in g T X T ;
                        ( ) A = 1 0 .4 ;           ( ) A = M ;                       ( ) B = C / 2 + D – E ;           ( ) b = (B / 4 ) *S ;   ( ) c := “N ”;
                        ( ) A = 1 0 ,3 ;           ( ) M = s *(b m o d 3 );          ( ) B = C / 2 – E ;               ( ) b = (B / 4 ) *S ;   ( ) c = “N E ”;
                        ( ) c = ‘ b ’;             ( ) A = R = d = 103;              ( ) M = E ;                       ( ) TX T = c + 32;      ( ) C h = c + ‘A ’;
                        ( ) T = S;                 ( ) T X T := “ O la ” ;           ( ) T = 10 m od 2;                ( ) T X T = T + ‘A ’;   ( ) c h = C * “1 ”;
                        ( ) T = ‘S ’;              ( ) T X T = O la ;                ( ) T = (1 0 m o d 2 );           ( ) T X T = T + ‘A ’;   ( ) C = “2 ”;


➔        Suponha que Numero é do tipo int, xCol e yCol são do tipo float, Classe é do tipo char e Achado do tipo
         boolean. Determine quais das atribuições abaixo são válidas em Java e, se não forem válidas, explique
         o porquê.
    a . x C o l = 2 .1 7 8 ;                             b . 3 = N u m e ro ;                          c . C la s s e = 'B + + ' ;
    d . N u m e ro = N u m e ro / 2                      e . C la s s e = A ;                          f.      A c h a d o = C la s s e ;
    g . x C o l = y C o l + N u m e ro ;                 h . A c h a d o = tru e ;                     i.      N u m e r o = x C o l;
    j.     x C o l = y c o l + x C o l;                  k . A c h a d o = ‘0 ’ ;                      l.      C la s s e = “ C ” ;
                                                                                                                                        Prof. Nécio Veras

Mais conteúdo relacionado

Mais procurados

Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoAdriano Teixeira de Souza
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Raspberry pi – primeiros passos
Raspberry pi – primeiros passosRaspberry pi – primeiros passos
Raspberry pi – primeiros passosFelipe Meganha
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmosAdilio Tavares
 
Revisão para a prova de Introdução a Informática - ifro - Vilhena - Turma: T...
Revisão para a prova de Introdução a Informática -  ifro - Vilhena - Turma: T...Revisão para a prova de Introdução a Informática -  ifro - Vilhena - Turma: T...
Revisão para a prova de Introdução a Informática - ifro - Vilhena - Turma: T...Lohraine Ifro Oliveira
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareÁlvaro Farias Pinheiro
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScriptThiago Poiani
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoLeinylson Fontinele
 
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
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesFabio Souza
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresMauro Pereira
 
Aula 01 fundamentos da informática
Aula 01   fundamentos da informáticaAula 01   fundamentos da informática
Aula 01 fundamentos da informáticaGilberto Campos
 
Material Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos AlexandrukMaterial Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos AlexandrukHebert Alquimim
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 

Mais procurados (20)

Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Visualg
VisualgVisualg
Visualg
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Raspberry pi – primeiros passos
Raspberry pi – primeiros passosRaspberry pi – primeiros passos
Raspberry pi – primeiros passos
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmos
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Revisão para a prova de Introdução a Informática - ifro - Vilhena - Turma: T...
Revisão para a prova de Introdução a Informática -  ifro - Vilhena - Turma: T...Revisão para a prova de Introdução a Informática -  ifro - Vilhena - Turma: T...
Revisão para a prova de Introdução a Informática - ifro - Vilhena - Turma: T...
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
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
 
Etapas da programação
Etapas da programaçãoEtapas da programação
Etapas da programação
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicações
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
Aula 01 fundamentos da informática
Aula 01   fundamentos da informáticaAula 01   fundamentos da informática
Aula 01 fundamentos da informática
 
Material Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos AlexandrukMaterial Modelagem - Prof. Marcos Alexandruk
Material Modelagem - Prof. Marcos Alexandruk
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 

Destaque

Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java Manuel Menezes de Sequeira
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem JavaUFPA
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOMicrosoft
 

Destaque (7)

Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
Introdução a java
Introdução a javaIntrodução a java
Introdução a java
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Introdução a Linguagem Java
Introdução a Linguagem JavaIntrodução a Linguagem Java
Introdução a Linguagem Java
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 

Semelhante a Fundamentos do java

Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresRegis Magalhães
 
Aula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaDaniel Brandão
 
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 fluxoDenis L Presciliano
 
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 fluxoDenis L Presciliano
 
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çãoAdriano Teixeira de Souza
 
Resumo tipo primitivo_java
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_javaMarcos Souza
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - ComparandoWesley Lemos
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CAdriano Teixeira de Souza
 
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfAlgoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfEnio Filho
 
Estrutura de Dados - Características da linguagem C - 1
Estrutura de Dados - Características da linguagem C - 1Estrutura de Dados - Características da linguagem C - 1
Estrutura de Dados - Características da linguagem C - 1Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosAdriano Teixeira de Souza
 
Mini Curso Java Day(Eliane Raquel)
Mini Curso Java Day(Eliane Raquel)Mini Curso Java Day(Eliane Raquel)
Mini Curso Java Day(Eliane Raquel)raquelcarsi
 

Semelhante a Fundamentos do java (20)

Java
JavaJava
Java
 
Java - Aula 08
Java - Aula 08Java - Aula 08
Java - Aula 08
 
Java 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados Operadores
 
Apostila c++
Apostila c++Apostila c++
Apostila c++
 
Java 05
Java 05Java 05
Java 05
 
Aula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem Java
 
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
 
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
 
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
 
Resumo tipo primitivo_java
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_java
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - Comparando
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
 
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdfAlgoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdf
 
Estrutura de Dados - Características da linguagem C - 1
Estrutura de Dados - Características da linguagem C - 1Estrutura de Dados - Características da linguagem C - 1
Estrutura de Dados - Características da linguagem C - 1
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
 
Mini Curso Java Day(Eliane Raquel)
Mini Curso Java Day(Eliane Raquel)Mini Curso Java Day(Eliane Raquel)
Mini Curso Java Day(Eliane Raquel)
 
Unidade7 1
Unidade7 1Unidade7 1
Unidade7 1
 

Mais de Nécio de Lima Veras

Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Nécio de Lima Veras
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoNécio de Lima Veras
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados Nécio de Lima Veras
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesNécio de Lima Veras
 
Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsNécio de Lima Veras
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesNécio de Lima Veras
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 

Mais de Nécio de Lima Veras (20)

Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Versionamento com git
Versionamento com gitVersionamento com git
Versionamento com git
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados
 
Agentes inteligentes com jason
Agentes inteligentes com jasonAgentes inteligentes com jason
Agentes inteligentes com jason
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentes
 
Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agents
 
Revisão de matemática
Revisão de matemáticaRevisão de matemática
Revisão de matemática
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentes
 
Notas sobre agentes inteligentes
Notas sobre agentes inteligentesNotas sobre agentes inteligentes
Notas sobre agentes inteligentes
 
Anotações do mapeamento OR
Anotações do mapeamento ORAnotações do mapeamento OR
Anotações do mapeamento OR
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
 
Relacionamentos do mapeamento OR
Relacionamentos do mapeamento ORRelacionamentos do mapeamento OR
Relacionamentos do mapeamento OR
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Java swing
Java swingJava swing
Java swing
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 

Fundamentos do java

  • 1. Fundamentos da Linguagem Java     Prof. Nécio de Lima Veras http://lattes.cnpq.br/8284657916723590
  • 2. Royalties Estes slides foram inicialmente criados pelo prof. Régis Pires (IFPI-Parnaíba) que gentilmente cedeu para que algumas adaptações fossem feitas. Ass. Nécio de Lima Veras (IFCE-Tianguá). Prof. Nécio Veras
  • 3. Tipos de Dados e Operadores Identificadores ➔  Por convenção:  Nomes de variaveis iniciam com minúsculas e as palavras subsequentes devem iniciar com maiúsculas. • Ex: nome, nomeComposto, etc...  Nomes de classes iniciam com maiúsculas e as palavras subsequentes também. • Ex: Classe, ClasseComposta, etc...  Nomes de constantes são escritos em caixa alta e os nomes compostos separados pelo caracter '_'. • Ex: CONSTANTE, OUTRA_CONSTANTE Prof. Nécio Veras
  • 4. Comentários ➔ Comentário de linha (// ...) ➔ Comentário de Bloco (/* ... */) ... /* comentário daqui, ate aqui */ // declara a idade int idade; idade = 15; // imprime a idade System.out.println(idade); ... Prof. Nécio Veras
  • 5. Declaração e uso de variáveis ➔ Declaração tipoDaVaríavel nomeDaVariável; int idade; Uso idade = 15; Prof. Nécio Veras
  • 6. Inicialização de variáveis ... //gera uma idade no ano seguinte int idade = 15; int idadeNoAnoQueVem; idadeNoAnoQueVem = idade + 1; ... Prof. Nécio Veras
  • 7. Operadores Aritméticos ➔ +, -, / e * ➔ % (módulo)  Resto da divisão inteira. ... int quatro = 2 + 2; int tres = 5 – 2; int oito = 4 * 2; int dezesseis = 64 / 4; int um = 5 % 2; // 5 dividido por 2 dá 2 e tem resto 1; // o operador % pega o resto da divisão inteira ... Prof. Nécio Veras
  • 8. Tipos de Dados e Operadores ➔ Operadores  Aritméticos  adição (+), subtração (-)  multiplicação (*), divisão (/), resto (%)  incremento (++), decremento (--) • a++; a--; ++a; --a  comparação (==, !=, <, <=, >, >=) produz boolean  Bit-a-bit (tipos inteiros e booleanos)  and (&), or (|), not (~)  deslocamento à esquerda (<<), à direita (>>)  Deslocamento à direita sem sinal (>>>) Prof. Nécio Veras
  • 9. Tipos de Dados e Operadores ➔ Operadores  Teste condicional (&& e ||)  Operam somente em expressões booleanas  Avaliados da esquerda para a direita  Implementam a técnica de curto-circuito  Exemplo • a < b && c > d || e == f  Se “a < b” avalia para false, a subexpressão “&&” é false e a avaliação de “c > d” não é realizada  Se ambos, “a < b” e “c > d” avaliam para true, a expressão toda é true e a avaliação de “e == f” não é realizada Prof. Nécio Veras
  • 10. Tipos de Dados e Operadores ➔ Operadores  Atribuição (=)  Usado para atribuir um valor a uma variável  Pode ser usado em combinação com outros operadores.  Se possível, a expressão do lado direito é convertida para o tipo do operando do lado esquerdo.  Não faz conversões implícitas que resultam em perda de dados. • Tais conversões devem ser feitas via cast (conversão) explícito. Prof. Nécio Veras
  • 11. Tipos de Dados e Operadores ➔ Operadores:  Atribuição com operação:  Um tipo especial de atribuição é feito juntando-se o operador de atribuição com um dos operadores aritméticos e bit-a-bit.  Exemplo: a += 1 // a = a + 1 a *= b // a = a * b a |= b // a = a | b ... Prof. Nécio Veras
  • 12. Tipos de Dados e Operadores ➔ Operador ternário(if-else)  Operador que usa três argumentos:  boolean-exp ? value0 : value1  Se boolean-exp avaliar para true, a expressão value0 será o resultado da expressão.  Se boolean-exp avaliar para false, a expressão value1 será o resultado da expressão.  Exemplo: int x, y; String s, str; ... x = y > 0 ? x / y : 0; str = "Teste"; s = str != null ? s + str : s; ... Prof. Nécio Veras
  • 13. Tipos Primitivos ➔ double  Número com ponto flutuante. double d = 3.14; double x = 5 * 10; ➔ boolean  Verdadeiro ou falso. boolean verdade = true; ➔ char  Um e apenas um caractere.  Caractere deve estar entre aspas simples. char letra = 'a'; System.out.println(letra); Prof. Nécio Veras
  • 14. Tipos primitivos e valores ➔ Tipos primitivos guardam o real conteúdo da variável. ➔ Ao usar o operador de atribuição =, o valor será copiado. int i = 5; // i recebe uma cópia do valor 5 int j = i; // j recebe uma cópia do valor de i i = i + 1; // i vira 6, j continua 5 Prof. Nécio Veras
  • 15. Tipos Primitivos ➔ Armazenam valores e não referências. ➔ Não necessitam de instanciação. ➔ Outros tipos primitivos:  byte, short, long e float. ➔ O tipo boolean tem 2 valores possíveis: true e false. Prof. Nécio Veras
  • 16. Casting e promoção ➔ Problema int i; double d, d2; d = 3.1415; i = d; // não compila i = 3.14; // não compila d = 5; // ok, double pode conter um inteiro i = d; // não compila // Quando há possibilidade de perda, a conversão // não pode ser feita. i = 5; // ok, pois não há perda de dados. d2 = i; // ok Prof. Nécio Veras
  • 17. Tipos de Dados e Operadores ➔ Conversão de tipos  Java converterá um tipo de dados em outro sempre que apropriado.  As conversões ocorrerão automaticamente quando houver garantia de não haver perda de informação:  Tipos menores em tipos maiores;  Tipos de menor precisão em tipos de maior precisão;  Inteiros em ponto-flutuante.  Exemplo: byte b = 10; short s = b; int i = s; long l = i; float f = l; double b = f; Prof. Nécio Veras
  • 18. Casting  É o processo em que um tipo mais abrangente é moldado (casted) para outro tipo menos abrangente, podendo haver algum tipo de perda.  O cast não é feito automaticamente. O programador precisa defini- lo explicitamente, assumindo os riscos de perda de informação.  É feito colocando-se o tipo desejado entre parênteses na frente da expressão. double d3 = 3.14; int i = (int) d3;  No exemplo acima, d3 foi moldado como um int. O valor de i agora é 3. Prof. Nécio Veras
  • 19. Casting  De long para int: long x = 10000; int i = x; // Não ok, pois pode perder dados.  Com o casting: long x = 10000; int i = (int) x; Prof. Nécio Veras
  • 20. Tipos de Dados e Operadores ➔ Promoção  Qualquer operação com dois ou mais operadores de tipos diferentes sofrerá promoção, isto é, conversão automática para o tipo mais abrangente  O maior ou mais preciso tipo da expressão  O tipo int (char, byte ou short)  Exemplo int a = 10; double d = a + 45F + 12D; float e = (float) (a + 45F + 12D); byte a = 9, b = 6; short c = 7; byte d = (byte) (a + b + c); Prof. Nécio Veras
  • 21. Casting float x = 0.0; // Não compila float x = 0.0f; // Ok. // A letra f indica que o literal deve ser // tratado como float. long l = 0.0L; // A letra L indica que o literal deve ser // tratado como long. double d = 5; float f = 3; float x = (float) d + f; /* O Java faz as contas e vai armazenando sempre no maior tipo que apareceu durante as operações. No mínimo, o Java armazena um int,para fazer as contas. Boolean não pode ser convertido para outro tipo. */ Prof. Nécio Veras
  • 22. Exercício ➔ Quais dos identificadores abaixo são permitidos pela linguagem Java? a. R a io X b. X P TO 123 c. V a lo r d a v e n d a d. 1 P a u lo e. R 2D 2_ f. V e to r1 5 g. ZZZZZZ h. _3M i. _10V j. _3B b k. R a io x l. 1_0_V m . N /4 n. #M o. !s o m a ➔ Classifique os valores abaixo em double, int, char, String, boolean ou inválido: a. 12 b. 1 2 .1 c. 1 2 ,0 d. V e rd a d e e. “ N é c io ” f. '1 ' g. 8+4 h. -3 .7 i. M e n t ir a j. ‘N é c io ’ k. 3 .7 -- l. + + 1 ,3 7 m . 172F n. V e r d a d e ir o o. ‘N é c io ’+ ’V e r a s ’ p. “r” q. ‘C a s a ’ r. 2A s. F a ls o t. “ N é c io ” + ” V e r a s ” u. .0 0 1 v. c in c o w . 1 /2 L x. 1 2 v e rd a d e s y. 1 + ’N ’ Prof. Nécio Veras
  • 23. Exercício ➔ Sobre os Comandos de Atribuição, marque V para Verdadeiro e F para Falso nos seguintes comandos de atribuição: In t A , b , C , d , E ; f lo a t R , M , S ; char ch; S t r in g T X T ; ( ) A = 1 0 .4 ; ( ) A = M ; ( ) B = C / 2 + D – E ; ( ) b = (B / 4 ) *S ; ( ) c := “N ”; ( ) A = 1 0 ,3 ; ( ) M = s *(b m o d 3 ); ( ) B = C / 2 – E ; ( ) b = (B / 4 ) *S ; ( ) c = “N E ”; ( ) c = ‘ b ’; ( ) A = R = d = 103; ( ) M = E ; ( ) TX T = c + 32; ( ) C h = c + ‘A ’; ( ) T = S; ( ) T X T := “ O la ” ; ( ) T = 10 m od 2; ( ) T X T = T + ‘A ’; ( ) c h = C * “1 ”; ( ) T = ‘S ’; ( ) T X T = O la ; ( ) T = (1 0 m o d 2 ); ( ) T X T = T + ‘A ’; ( ) C = “2 ”; ➔ Suponha que Numero é do tipo int, xCol e yCol são do tipo float, Classe é do tipo char e Achado do tipo boolean. Determine quais das atribuições abaixo são válidas em Java e, se não forem válidas, explique o porquê. a . x C o l = 2 .1 7 8 ; b . 3 = N u m e ro ; c . C la s s e = 'B + + ' ; d . N u m e ro = N u m e ro / 2 e . C la s s e = A ; f. A c h a d o = C la s s e ; g . x C o l = y C o l + N u m e ro ; h . A c h a d o = tru e ; i. N u m e r o = x C o l; j. x C o l = y c o l + x C o l; k . A c h a d o = ‘0 ’ ; l. C la s s e = “ C ” ; Prof. Nécio Veras