A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PROGRAMANDO SEM POO EM JAVA Dilvan Moreira (baseado no livro Big Java)

Apresentações semelhantes


Apresentação em tema: "PROGRAMANDO SEM POO EM JAVA Dilvan Moreira (baseado no livro Big Java)"— Transcrição da apresentação:

1 PROGRAMANDO SEM POO EM JAVA Dilvan Moreira (baseado no livro Big Java)

2 Lembrando...  Variável: nome de um local na memória onde dados são armazenados  Evita ter que lembrar um endereço numérico  Como variáveis de um expressão matemática  Nomes de variáveis começam com letras minúscula  Convenção do Java, não é um requisito do compilador

3 Lembrando...  Java requer que declaremos o tipo de dados que estamos trabalhando  Para cada variável temos que declarar um tipo de dado  Java prove 8 tipos de dados primitivos  ou seja, simples e fundamentais

4 Lembrando … public class Test3 { public static void main (String[] args) { int a; //these int b; //are int c; //variable declarations b = 3; c = 5; a = b + c; System.out.println ("The answer is " + a); }

5 Tipos de Dados Primitivos: Números  6 primitivos para números  Inteiros vs. ponto flutuante (Reais)  Tamanhos finitos  capacidade númerica finita TypeSizeMinMax byte 1 byte-128127 short 2 bytes-32,76832,767 int 4 bytes-2,147,483,6482,147,483,647 long 8 bytes -9,223,372,036,854,775,8089,223,372,036,854,775,807 float 4 bytes approx -3.4E38 (7 sig.digits)approx 3.4E38 (7 sig.digits) double 8 bytes approx -1.7E308 (15 sig. digits)approx 1.7E308 (15 sig. digits)

6 Primitive Data Types: Non-numeric  Tipo caracter  nome char  Java usa o conjunto de caracteres Unicode, assim cada char ocupa 2 bytes de memória.  Tipo boleano  nome boolean  Valores válidos True e false  Representa yes/no, on/off

7 Tipos de Dados Primitivos: Números  Por agora vamos usar int e double TypeSizeMinMax byte 1 byte-128127 short 2 bytes-32,76832,767 int 4 bytes-2,147,483,6482,147,483,647 long 8 bytes -9,223,372,036,854,775,8089,223,372,036,854,775,807 float 4 bytes approx -3.4E38 (7 sig.digits)approx 3.4E38 (7 sig.digits) double 8 bytes approx -1.7E308 (15 sig. digits)approx 1.7E308 (15 sig. digits)

8 Declaração de Variáveis  Declaração de variável diz ao compilador  reserve um bloco de memória grande o suficiente para armazenar dados do tamanho do tipo especificado  O nome da variável é especificado pelo identificador  Sintaxe:  nomeTipo nomeVariavel;

9 Tipos int e double  Lembrando: tamanho fixo, capacidade finita TypeSizeMinMax int 4 bytes-2,147,483,6482,147,483,647 double 8 bytes approx -1.7E308 (15 sig. digits) approx 1.7E308 (15 sig. digits) 5802 5803 5804 5805 5806 5807 10110101 10000101 11110001 00010100 Address Data one integer

10 Atribuição public class Test3 { public static void main (String[] args) { int a; int b; int c; b = 3; // these c = 5; // are a = b + c; // assignment statements System.out.println ("The answer is " + a); }

11 Atribuição  Operador: =  = não significa uma afirmação de igualdade  = é usado para mudar o valor de uma variável 1. int luckyNumber = 13; 2. luckyNumber = 12;

12 Atribuição  Errado, a variável tem de ser inicializada: int luckyNumber; System.out.println(luckyNumber); // ERROR - uninitialized variable Diferente de C

13 Atribuição  E agora? Esse é um exemplo de possível confusão: a = 7; // what’s in a? b = a; // what’s in b? // what’s in a now???

14 Atribuição  E agora? Esse é um exemplo de possível confusão:  Quando em dúvida: experimente! É fácil tentar qualquer coisa em Java a = 7; // what’s in a? b = a; // what’s in b? // what’s in a now??? System.out.println(“a is “ + a + “b is “ +b);

15 Atribuição  E agora? Esse é um exemplo de possível confusão:  Quando em dúvida: experimente! É fácil tentar qualquer coisa em Java b= 7 a = 7; // what’s in a? b = a; // what’s in b? // what’s in a now??? System.out.println(“a is “ + a + “b is “ +b);

16 Atribuição  E agora? Quais os valores de a e b? a = 7; // what’s in a? b = a; // what’s in b? // what’s in a now??? System.out.println(“a is “ + a + “b is “ +b); a = 8; System.out.println(“a is “ + a + “b is “ +b);

17 Atribuição  E agora? Quais os valores de a e b?  Os locais de memória de a e b são distintos: a= 8 b= 7 a = 7; // what’s in a? b = a; // what’s in b? // what’s in a now??? System.out.println(“a is “ + a + “b is “ +b); a = 8; System.out.println(“a is “ + a + “b is “ +b);

18 Expressões  expressões são a combinação de  um ou mais operadores ou operandos  exemplos de operadores: +, *, /,...  exemplos de operandos: números, variáveis,...  exemplos: 3 7 + 2 7 + 2 * 5 (7 + 2) * 5

19 Operadores  Basicamente o mesmo conjunto da linguagem C  Descrição no sitesite

20 Precedencia de Operadores  Qual o resultado dessa expressão? 7 + 2 * 5

21 Precedência de Operadores  Qual o resultado dessa expressão? 7 + 2 * 5  Multiplicação tem mais precedência que adição (como em matemática) precedenceoperatoroperation 1 higher+ -unary plus and minus 2* / %multiply, divide, remainder 3 lower+ -add, subtract

22 Precedência de Operadores  Qual o resultado dessa expressão? 7 + 2 * 5  Multiplicação tem mais precedência que adição (como em matemática)  Parenteses podem ser usados para mudar precedência: (7 + 2) * 5 ou para tronar mais claro 7 + (2 * 5) precedenceoperatoroperation 1 higher+ -unary plus and minus 2* / %multiply, divide, remainder 3 lower+ -add, subtract

23 Constantes  Coisas que nunca mudam  Syntax:  final typeName variableName;  final typeName variableName = value;  Nomes de constantes devem ser em maiúsculas  final int SECONDS_PER_YEAR = 60*60*24*365;

24 Evite Números Mágicos  números mágicos: constantes numéricas diretemente em código  Má idéia! código fica difícil de entender difícil de fazer mudanças fácil de errar, se a mesma constante é usada em diferentes lugares

25 Sintaxe do If  Sintaxe  Palavra reservada if  seguida de expressão booleana entre parenteses  seguida de comando if (x == y) System.out.println("x equals y! ");  Resultado  se expressão booleana é verdadeira, comando é executado  se não, execução pula comando

26 Sintaxe do If-Else  Opção do else:  palavra reservada else  seguida por comando if (x == y) System.out.println("x equals y!"); else System.out.println("x is not equal to y!");  Resultado  se expressão booleana é verdadeira, primeiro comando é executado  se não, segundo comando é executado

27 Uso de Blocos de Comandos  Quando se quer executar mais de um comando, baseado numa condição  Substitui um comando por muitos dentro de {} if (x == y) { System.out.println("x equals y!"); System.out.println("I'm happy"); } else { System.out.println("x is not equal to y"); System.out.println("I'm depressed"); System.out.println("How about you?"); }

28 Uso de Blocos de Comandos  Se você se esquecer dos {} num else? if (x == y) { System.out.println("x equals y!"); System.out.println("I'm happy"); } else System.out.println("x is not equal to y"); System.out.println("I'm depressed"); System.out.println("How about you?");

29 Sintaxe de If Aninhados  Comandos dentro de comandos if-else podem ser também comandos if-else public class NestTest { public static void main (String[] args) { int x = 1; int y = 3; int z = 2; if (x == y) if (y == z) { System.out.println("all three values the same"); } else { System.out.println("y is not equal to z"); } else System.out.println("x is not equal to y"); }

30 Sintaxe de If Aninhados  Multiplos comandos else são também legais: if( Boolean expression 1 ) { // statements } else if( Boolean expression 2 ) { // statements } else if( Boolean expression 3 ) { // statements } else { // statements }

31 Cuidado: Comparando Floats/Doubles  Erros de arredonamento podem atrapalhar testes de igualdade para números float ou double if (.3 == 1.0/10.0 + 1.0/10.0 + 1.0/10.0)) System.out.println("Beware roundoff error");  Para comparar, cheque se a diferença é próxima de 0 if (Math.abs(f1 - f2) < TOLERANCE) System.out.println (“Essentially equal.”);

32 Sintaxe do Switch  Usado para seguir caminhos diferentes baseado num valor switch (finalMark) { case 4: System.out.println("You get an A"); break; case 3: System.out.println("You get a B"); break; case 2: System.out.println("You get a C"); break; default: System.out.println("See you next year"); }

33 Sintaxe do Switch  Expressão deve ser int, char (ou enumerated type) switch (finalMark) { case 4: System.out.println("You get an A"); break; case 3: System.out.println("You get a B"); break; case 2: System.out.println("You get a C"); break; default: System.out.println("See you next year"); }

34 Sintaxe do Switch  Os valores do case não podem ser variáveis switch (finalMark) { case 4: System.out.println("You get an A"); break; case 3: System.out.println("You get a B"); break; case 2: System.out.println("You get a C"); break; default: System.out.println("See you next year"); }

35 Sintaxe do Switch  O comando default é opcional switch (finalMark) { case 4 : System.out.println("You get an A"); break; case 3 : System.out.println("You get a B"); break; case 2 : System.out.println("You get a C"); break; default: System.out.println("See you next year"); }

36 Sintaxe do Switch  Comandos break são muito importantes switch (finalMark) { case 4 : System.out.println("You get an A"); break; case 3 : System.out.println("You get a B"); break; case 2 : System.out.println("You get a C"); break; default: System.out.println("See you next year"); }

37 Usando o comando while public class WhileDemo { public static void main (String[] args) { int limit = 3; int counter = 1; while (counter <= limit) { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } System.out.println("End of demonstration"); }  comando while

38 public class ForDemo { public static void main (String[] args) { for (int counter = 1; counter <= 3; counter = counter + 1) { System.out.println("The square of " + counter + " is " + (counter * counter)); } System.out.println("End of demonstration"); } Comando For

39 Comando For Versus While boolean expression statement truefalse boolean expression statement truefalse initialization increment FOR WHILE

40 public class DoDemo { public static void main (String[] args) { int limit = 3; int counter = 1; do { System.out.println("The square of " + counter + " is " + (counter * counter)); counter = counter + 1; } while (counter <= limit); System.out.println("End of demonstration"); } Comando Do  teste de término feito no fim, corpo é sempre executado pelo menos uma vêz

41 Checando 1. 12 = 12 é uma expressão válida em Java? 2. Como voce mudaria o valor da variável greeting para 10? int greeting = 300;

42 Perguntas?


Carregar ppt "PROGRAMANDO SEM POO EM JAVA Dilvan Moreira (baseado no livro Big Java)"

Apresentações semelhantes


Anúncios Google