Fundamentos do java

Nécio de Lima Veras
Nécio de Lima VerasNécio de Lima Veras
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
1 de 23

Recomendados

Testes Automatizados de Software por
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de SoftwareMaurício Aniche
5.7K visualizações42 slides
Metodologia Ágil por
Metodologia ÁgilMetodologia Ágil
Metodologia ÁgilAlex Vieira, MBA
650 visualizações21 slides
Aula 2 - POO: Fundamentos da linguagem Java por
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
2.7K visualizações56 slides
Scrum por
ScrumScrum
ScrumRenata Frota
1.4K visualizações55 slides
Introdução a Gerenciamento de Projetos por
Introdução a Gerenciamento de ProjetosIntrodução a Gerenciamento de Projetos
Introdução a Gerenciamento de ProjetosWilker Bueno de Freitas Rosa
1.1K visualizações22 slides
Aula - Metodologias Ágeis por
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias ÁgeisMauricio Cesar Santos da Purificação
2.3K visualizações90 slides

Mais conteúdo relacionado

Mais procurados

Introdução ao Design Thinking por
Introdução ao Design Thinking   Introdução ao Design Thinking
Introdução ao Design Thinking Priscila Machado
3.6K visualizações13 slides
Métodos Ágeis e Scrum - Introdução por
Métodos Ágeis e Scrum - IntroduçãoMétodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - IntroduçãoYuri Morais
227 visualizações65 slides
Introdução a php por
Introdução a phpIntrodução a php
Introdução a phpAllen Gomes Vidal
6.8K visualizações65 slides
Teste de software - aula 01 (motivação) por
Teste de software - aula 01 (motivação)Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)Elmano Cavalcanti
179 visualizações66 slides
Scrum - Fundamentos, teorias e práticas! por
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Annelise Gripp
4.2K visualizações19 slides
Extreme programming (xp) - Resumo por
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - ResumoDaniel Brandão
11.4K visualizações14 slides

Mais procurados(20)

Introdução ao Design Thinking por Priscila Machado
Introdução ao Design Thinking   Introdução ao Design Thinking
Introdução ao Design Thinking
Priscila Machado3.6K visualizações
Métodos Ágeis e Scrum - Introdução por Yuri Morais
Métodos Ágeis e Scrum - IntroduçãoMétodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - Introdução
Yuri Morais227 visualizações
Introdução a php por Allen Gomes Vidal
Introdução a phpIntrodução a php
Introdução a php
Allen Gomes Vidal6.8K visualizações
Teste de software - aula 01 (motivação) por Elmano Cavalcanti
Teste de software - aula 01 (motivação)Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)
Elmano Cavalcanti179 visualizações
Scrum - Fundamentos, teorias e práticas! por Annelise Gripp
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!
Annelise Gripp4.2K visualizações
Extreme programming (xp) - Resumo por Daniel Brandão
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
Daniel Brandão11.4K visualizações
Desenvolvendo Apps Nativos com Flutter por Paulo Henrique
Desenvolvendo Apps Nativos com FlutterDesenvolvendo Apps Nativos com Flutter
Desenvolvendo Apps Nativos com Flutter
Paulo Henrique3K visualizações
Introdução a JavaScript por Bruno Catão
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
Bruno Catão6.7K visualizações
Java: Excecoes e Tratamento de Erros por Arthur Emanuel
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de Erros
Arthur Emanuel270 visualizações
Metodologias de Desenvolvimento de Software por Álvaro Farias Pinheiro
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
Álvaro Farias Pinheiro3.6K visualizações
Introdução ao desenvolvimento Web por Sérgio Souza Costa
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
Sérgio Souza Costa3.9K visualizações
POO - Aula 10 - Polimorfismo por Felipe J. R. Vieira
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
Felipe J. R. Vieira6K visualizações
Programação orientada a objetos por Cleyton Ferrari
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari25K visualizações
Lógica de programação { para iniciantes } por Mariana Camargo
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
Mariana Camargo2K visualizações
Introdução a estruturas de dados em python por Alvaro Oliveira
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
Alvaro Oliveira4.1K visualizações
Aula01 - Logica de Programação por Jorge Ávila Miranda
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
Jorge Ávila Miranda3.5K visualizações
Metodologia SCRUM por Rafael Pinheiro
Metodologia SCRUMMetodologia SCRUM
Metodologia SCRUM
Rafael Pinheiro3.2K visualizações

Destaque

Semana 3: Introdução à linguagem de programação Java por
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
1.3K visualizações27 slides
Introdução a java por
Introdução a javaIntrodução a java
Introdução a javaCarlos Cavalcanti
2.5K visualizações136 slides
Java introdução ao java por
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
2.2K visualizações34 slides
Logica de Programacao por
Logica de ProgramacaoLogica de Programacao
Logica de ProgramacaoRogério Fernandes da Costa
2.8K visualizações71 slides
Aula de Introdução - JAVA por
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
6.4K visualizações46 slides
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO por
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
14.1K visualizações48 slides

Destaque(6)

Semana 3: Introdução à linguagem de programação Java por Manuel Menezes de Sequeira
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 Sequeira1.3K visualizações
Introdução a java por Carlos Cavalcanti
Introdução a javaIntrodução a java
Introdução a java
Carlos Cavalcanti2.5K visualizações
Java introdução ao java por Armando Daniel
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
Armando Daniel2.2K visualizações
Aula de Introdução - JAVA por Moises Omena
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
Moises Omena6.4K visualizações
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO por Microsoft
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
Microsoft14.1K visualizações

Similar a Fundamentos do java

Java - Aula 08 por
Java - Aula 08Java - Aula 08
Java - Aula 08Tiago da Silva Ramos
558 visualizações32 slides
Java por
JavaJava
JavaTiago da Silva Ramos
633 visualizações32 slides
Java 03 Tipos Dados Operadores por
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados OperadoresRegis Magalhães
1.4K visualizações25 slides
Apostila c++ por
Apostila c++Apostila c++
Apostila c++Sergio Finamore
808 visualizações11 slides
Java 05 por
Java 05Java 05
Java 05samuelthiago
538 visualizações34 slides
Aula 03 - Definições da linguagem Java por
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem JavaDaniel Brandão
383 visualizações24 slides

Similar a Fundamentos do java(20)

Java 03 Tipos Dados Operadores por Regis Magalhães
Java 03 Tipos Dados OperadoresJava 03 Tipos Dados Operadores
Java 03 Tipos Dados Operadores
Regis Magalhães1.4K visualizações
Apostila c++ por Sergio Finamore
Apostila c++Apostila c++
Apostila c++
Sergio Finamore808 visualizações
Java 05 por samuelthiago
Java 05Java 05
Java 05
samuelthiago538 visualizações
Aula 03 - Definições da linguagem Java por Daniel Brandão
Aula 03 - Definições da linguagem JavaAula 03 - Definições da linguagem Java
Aula 03 - Definições da linguagem Java
Daniel Brandão383 visualizações
Tipos, literais, operadoes e controle de fluxo por Denis L Presciliano
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxo
Denis L Presciliano738 visualizações
Tipos, literais, operadoes e controle de fluxo por Denis L Presciliano
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxo
Denis L Presciliano424 visualizações
Guia rapido java v2 por Mario Jorge Pereira
Guia rapido java v2Guia rapido java v2
Guia rapido java v2
Mario Jorge Pereira1.2K visualizações
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição por Adriano Teixeira de Souza
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
Adriano Teixeira de Souza4.3K visualizações
Resumo tipo primitivo_java por Marcos Souza
Resumo tipo primitivo_javaResumo tipo primitivo_java
Resumo tipo primitivo_java
Marcos Souza304 visualizações
Javascript para CSharpers 1 - Comparando por Wesley Lemos
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - Comparando
Wesley Lemos369 visualizações
Estrutura de dados - Introdução a linguagem C por Adriano Teixeira de Souza
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
Adriano Teixeira de Souza5.4K visualizações
Algoritmos e LP - Aula 03 - Expressões Aritméticas.pdf por Enio Filho
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
Enio Filho3 visualizações
Estrutura de Dados - Características da linguagem C - 1 por Adriano Teixeira de Souza
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
Adriano Teixeira de Souza2.7K visualizações
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos por Adriano Teixeira de Souza
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
Adriano Teixeira de Souza6.2K visualizações
Mini Curso Java Day(Eliane Raquel) por raquelcarsi
Mini Curso Java Day(Eliane Raquel)Mini Curso Java Day(Eliane Raquel)
Mini Curso Java Day(Eliane Raquel)
raquelcarsi1.5K visualizações
Unidade7 1 por Ialis Cavalcante
Unidade7 1Unidade7 1
Unidade7 1
Ialis Cavalcante602 visualizações
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf por Enio Filho
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdfAlgoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Algoritmos e LP - Aula 09 - Linguagem C - p2.pdf
Enio Filho4 visualizações

Mais de Nécio de Lima Veras

Introdução ao JavaFX por
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFXNécio de Lima Veras
515 visualizações42 slides
Introdução à analise e complexidade de algoritmos por
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
3.2K visualizações49 slides
Teste de software por
Teste de softwareTeste de software
Teste de softwareNécio de Lima Veras
801 visualizações25 slides
Versionamento com git por
Versionamento com gitVersionamento com git
Versionamento com gitNécio de Lima Veras
686 visualizações27 slides
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço... por
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
692 visualizações55 slides
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo por
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
2.2K visualizações111 slides

Mais de Nécio de Lima Veras(20)

Introdução à analise e complexidade de algoritmos por Nécio de Lima Veras
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
Nécio de Lima Veras3.2K visualizações
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço... por Né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...
Nécio de Lima Veras692 visualizações
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo por Nécio de Lima Veras
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
Nécio de Lima Veras2.2K visualizações
Jason: Componentes personalizados por Nécio de Lima Veras
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados
Nécio de Lima Veras817 visualizações
Agentes inteligentes com jason por Nécio de Lima Veras
Agentes inteligentes com jasonAgentes inteligentes com jason
Agentes inteligentes com jason
Nécio de Lima Veras2.8K visualizações
Ambientes em Sistemas Multi-agentes por Nécio de Lima Veras
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentes
Nécio de Lima Veras1.2K visualizações
Arquiteturas concretas de agentes inteligentes - bdi agents por Nécio de Lima Veras
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agents
Nécio de Lima Veras1.1K visualizações
Especificações iniciais de agentes inteligentes por Nécio de Lima Veras
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentes
Nécio de Lima Veras914 visualizações
Notas sobre agentes inteligentes por Nécio de Lima Veras
Notas sobre agentes inteligentesNotas sobre agentes inteligentes
Notas sobre agentes inteligentes
Nécio de Lima Veras1.3K visualizações
Anotações do mapeamento OR por Nécio de Lima Veras
Anotações do mapeamento ORAnotações do mapeamento OR
Anotações do mapeamento OR
Nécio de Lima Veras726 visualizações
Mapeamento de herança OR por Nécio de Lima Veras
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
Nécio de Lima Veras1.3K visualizações
Relacionamentos do mapeamento OR por Nécio de Lima Veras
Relacionamentos do mapeamento ORRelacionamentos do mapeamento OR
Relacionamentos do mapeamento OR
Nécio de Lima Veras1.6K visualizações
Processos iniciais do mapeamento OR por Nécio de Lima Veras
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
Nécio de Lima Veras954 visualizações
Introdução à linguagem UML por Nécio de Lima Veras
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
Nécio de Lima Veras2.9K visualizações

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