50
Capítulo 4 Capítulo 4 Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Variáveis e Constantes Variáveis e Constantes

Li Rui Pcj 2ed Cap04

Embed Size (px)

DESCRIPTION

Java 4

Citation preview

  • Captulo 4Captulo 4

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Variveis e ConstantesVariveis e Constantes

  • Objetivos do Captulo

    Apresentar os tipos primitivos disponveis no Java.

    Analisar a forma de uso dos tipos primitivos para a declarao de variveis capazes de armazenar nmeros inteiros, nmeros fracionrios, caracteres e valores booleanos.

    Explorar as tcnicas que devem ser empregadas para a

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Explorar as tcnicas que devem ser empregadas para a transferncia de dados entre variveis de diferentes tipos.

    Indicar a sintaxe a ser observada para a declarao e uso de constantes.

  • Tipos de Dados

    Tipos primitivos

    So os tipos bsicos de dados da linguagem

    Capazes de armazenar um nico valor

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Tipos de Dados

    Nmeros inteiros

    Tipo Tamanho Mnimo Mximobyte 1 byte -128 127

    short 2 bytes -32768 32767

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    short 2 bytes -32768 32767

    int 4 bytes -2147483648 2147483647

    long 8 bytes -9.223.372.036.854.775.808 9.223.372.036.854.775.807

  • Tipos de Dados

    Nmeros decimais

    Tipo Tamanho Mnimo Mximo Precisofloat 4 bytes -3,4028E+38 3,4028E+38 6-7 dgitos

    double 8 bytes -1,7976E+308 1,7976E+308 15 dgitos

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    double 8 bytes -1,7976E+308 1,7976E+308 15 dgitos

  • Tipos de Dados

    Caracteres solitrios

    Tipo char

    Padro unicode

    2 bytes

    Representa at 65536 (216)

    Cdigo decimal de 0 a 65536

    Cdigo hexadecimal de \u0000 a \uFFFF

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Tipos de Dados

    Caracteres: dgitos

    Dgito Cdigo0 481 492 503 514 52

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    4 525 536 547 558 569 57

  • Tipos de Dados

    Caracteres: alfabeto

    Letra Cdigo Letra Cdigo Letra Cdigo Letra CdigoA 65 N 78 a 97 n 110B 66 O 79 b 98 o 111C 67 P 80 c 99 p 112D 68 Q 81 d 100 q 113E 69 R 82 e 101 r 114

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    E 69 R 82 e 101 r 114F 70 S 83 f 102 s 115G 71 T 84 g 103 t 116H 72 U 85 h 104 u 117I 73 V 86 i 105 v 118J 74 W 87 j 106 w 119K 75 X 88 k 107 x 120L 76 Y 89 l 108 y 121M 77 Z 90 m 109 z 122

  • Tipos de Dados

    Caracteres especiais

    Descrio Decimal Hexadecimal AtalhoAvano de linha 10 \u000a \nAvano de pargrafo (tabulao) 9 \u0009 \tRetorno de linha 13 \u000d \r

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Retorno de um espao 11 \u0008 \bApstrofe 39 \u0027 \Aspas duplas 34 \u0022 \Barra invertida 92 \u005c \\

  • Tipos de Dados

    Tipo lgico

    Tipo boolean

    Valores possveis: {true, false}

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Variveis

    Conceito: unidades bsicas de armazenamento temporrio de dados.

    Composio:

    Tipo

    Identificador

    Escopo

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Quantidade de memria ocupada: depende do tipo

  • Variveis

    Declarao:

    Local: qualquer parte do corpo de uma classe

    Escopo: definido pelo local

    Sintaxe:

    ;

    Exemplos:

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Exemplos:

    byte bt;

    short sh;

    int it;

    long lg;

    float fl;

    double db;

    char ch;

    boolean bl;

  • Variveis

    Inicializao

    Conceito: atribuio de um valor a uma varivel.

    O smbolo de igualdade o operador de atribuio.

    Sintaxe:

    = ;

    Exemplos:

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Exemplos:

    it = 123;

    db = 45.7;

    ch = 'C';

    bl = false;

  • Variveis

    Declarao e inicializao

    Sintaxe:

    = ;

    Exemplos:

    int it = 123;

    double db = 45.7;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    double db = 45.7;

    char ch = 'C';

    boolean bl = false;

  • Variveis

    Mltiplas declaraes em instruo nica

    Sintaxe:

    , , , [];

    Exemplos:

    double valor_inicial, desconto, liquido;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    double valor_inicial, desconto, liquido;

    char enter, tab;

  • Variveis

    Mltiplas declaraes e inicializaes em instruo nica

    Sintaxe:

    = ,

    = ,

    = ,

    [] = [];

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Exemplos:

    double valor_inicial = 47.8, desconto = 0.8, liquido = 47;

    char enter = (char)10, tab = (char)9;

  • Variveis

    Transferncia de dado entre variveis de mesmo tipo

    Sintaxe:

    = ;

    Exemplos:

    int primeiro_inteiro, segundo_inteiro;

    primeiro_inteiro = 10;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    primeiro_inteiro = 10;

    segundo_inteiro = primeiro_inteiro;

  • Variveis

    Cdigo 4.1 NumerosInteiros.java.1 public class NumerosInteiros {2 public static void main(String[] args) {3 byte bt;4 short sh;5 int it;6 long lg;78 bt = 127;9 sh = 32767;10 it = 2147483647;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    10 it = 2147483647;11 lg = 9223372036854775807L;1213 System.out.println("\nLimite superior:");14 System.out.println("byte:\t" + bt);15 System.out.println("short:\t" + sh);16 System.out.println("int:\t" + it);17 System.out.println("long:\t" + lg);1819 bt = -128;20 sh = -32768;

  • Variveis

    Cdigo 4.1 NumerosInteiros.java.21 it = -2147483648;22 lg = -9223372036854775808L;2324 System.out.println("\nLimite inferior:");25 System.out.println("byte:\t" + bt);26 System.out.println("short:\t" + sh);27 System.out.println("int:\t" + it);28 System.out.println("long:\t" + lg);29 }30 }

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    30 }

  • Variveis

    Cdigo 4.2 NumerosDecimais.java.1 import javax.swing.JOptionPane;23 public class NumerosDecimais {4 public static void main(String[] args) {5 float float_1,float_2;6 double double_1 = 5.123456789,double_2 = 10.0;78 float_1 = 1.02F;9 float_2 = 2.0F;10

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    1011 String mensagem = "Contedo das variveis:" +12 "\nfloat_1 = " + float_1 + "\nfloat_2 = " + float_2 +13 "\ndouble_1 = " + double_1 + "\ndouble_2 = " + double_2;1415 JOptionPane.showMessageDialog(null,mensagem);16 System.exit(0);17 }18 }

  • Variveis

    Cdigo 4.2 NumerosDecimais.java.

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Converses Entre Tipos Numricos

    Promoo automtica

    Tipo de destino > Tipo de origem

    byte short int long float double

    char int

    Exemplos:

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    byte bt = 127;

    double db = bt;

  • Converses Entre Tipos Numricos

    Converso explcita

    Tipo de destino < Tipo de origem

    byte short int long float double

    char int

    Exemplos:

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    int it = 55;

    byte bt = (byte)it;

  • Converses Entre Tipos Numricos

    Ajuste circular

    Capacidade do destino < valor de origem

    Exemplos:

    int it = 130;

    byte bt = (byte)it;//bt recebe -126

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Limite do byte: 127

    Valor excedente: 130 127 = 3

    127 + 1 = -128

    -128 + 1 = -127

    -127 + 1 = -126

  • Converses Entre Tipos NumricosCdigo 4.3 ConversaoNumeros.java.1 import javax.swing.JOptionPane;23 public class ConversaoNumeros {4 public static void main(String[] args) {5 int it1 = 15635;6 long lg = it1;7 float fl = it1;8 short sh = (short)it1;910 double db = 24.75;11 int it2 = (int)db;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    11 int it2 = (int)db;12 int it3 = (int)Math.round(db);1314 String st = "Contedo das variveis:\n" +15 "it1 = " + it1 + "\n" + "lg = " + lg + "\n" + 16 "fl = " + fl + "\n" + "sh = " + sh + "\n\n" +17 "db = " + db + "\n" + "it2 = " + it2 + "\n" +18 "it3 = " + it3;1920 JOptionPane.showMessageDialog(null,st);21 System.exit(0);22 }23 }

  • Converses Entre Tipos Numricos

    Cdigo 4.3 ConversaoNumeros.java.

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Converses de Textos para Tipos Numricos

    Tome a string abaixo:

    String texto = 15;

    Converso para int (4 bytes)

    int it = Integer.parseInt(texto);

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Converso para long (8 bytes)

    long lg = Long.parseLong(texto);

  • Converses de Textos para Tipos Numricos

    Converso para short (2 bytes)

    short sh = Short.parseShort(texto);

    Converso para byte (1 byte)

    byte bt = Byte.parseByte(texto);

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Converso para char (2 bytes)

    char ch = (char)Integer.parseInt(st);

  • Converses de Textos para Tipos Numricos

    Converso para float

    float fl = Float.parseFloat(texto);

    Converso para double

    double db = Double.parseDouble(texto);

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Converses de Textos para Tipos NumricosCdigo 4.4 ConversaoTextoNumeros.java.1 import java.util.Scanner;23 public class ConversaoTextoNumeros {4 public static void main(String[] args) {5 System.out.print("\nInforme um nmero: ");6 Scanner scan = new Scanner(System.in);7 String texto = scan.nextLine();89 double db = Double.parseDouble(texto);10 float fl = Float.parseFloat(texto);11 long lg = Integer.parseInt(texto);

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    11 long lg = Integer.parseInt(texto);12 int it = Integer.parseInt(texto);13 short sh = (short)Integer.parseInt(texto);14 byte bt = (byte)Integer.parseInt(texto);15 char ch = (char)Integer.parseInt(texto);1617 System.out.printf("\nContedo das variveis:" +18 "\n db = \t %f \n fl = \t %f \n lg = \t %d \n it = \t %d" +19 "\n sh = \t %d \n bt = \t %d \n ch = \t %c \n\n",20 db,fl,lg,it,sh,bt,ch);21 }22 }

  • Converses de Textos para Tipos Numricos

    Cdigo 4.4 ConversaoTextoNumeros.java.

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Converses de Tipos Numricos para Textos

    Sintaxe

    String = String.valueOf();

    Exemplos:

    byte inteiro = 127;

    float decimal = 4.55f;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    float decimal = 4.55f;

    String st_byte = String.valueOf(inteiro);

    String st_float = String.valueOf(decimal);

  • Converses de Tipos Numricos para TextosCdigo 4.5 ConversaoNumerosTexto.java.1 import java.util.Scanner;23 public class ConversaoNumerosTexto {4 public static void main(String[] args) {5 Scanner scan = new Scanner(System.in);6 String string_inteiro, string_decimal;7 double numero_decimal;8 int numero_inteiro;910 System.out.print("\nInforme um nmero inteiro: ");11 numero_inteiro = scan.nextInt();12

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    1213 System.out.print("Informe um nmero decimal: ");14 numero_decimal = scan.nextDouble();1516 string_inteiro = String.valueOf(numero_inteiro);17 string_decimal = String.valueOf(numero_decimal);1819 System.out.println("\nContedo das strings:" +20 "\n string_inteiro = \t" + string_inteiro +21 "\n string_decimal = \t" + string_decimal);22 System.out.println();23 }24 }

  • Converses de Tipos Numricos para Textos

    Cdigo 4.5 ConversaoNumerosTexto.java.

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Obtendo o Cdigo de um Caractere

    Receita

    Transferi-lo para um int

    Exemplo:

    char caractere = A;

    int codigo = caractere;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    int codigo = caractere;

  • Obtendo o Cdigo de um Caractere

    Cdigo 4.6 ConversaoCaractereNumero.java.1 import java.util.Scanner;23 public class ConversaoCaractereNumero {4 public static void main(String[] args) {5 Scanner scan = new Scanner(System.in);67 System.out.print("\nInforme um caractere:\t");8 String texto = scan.nextLine();9 char caractere = texto.charAt(0);10 int codigo = (int)caractere;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    10 int codigo = (int)caractere;1112 System.out.println("Cdigo do caractere:\t" + codigo);13 System.out.println();14 }15 }

  • Obtendo o Caractere Correspondente a um Nmero

    Receita

    Transferi-lo para um char

    Converso requerida

    Exemplo:

    int numero = 65;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    int numero = 65;

    char caractere = (char)numero;

  • Obtendo o Caractere Correspondente a um NmeroCdigo 4.7 ConversaoNumeroCaractere.java.1 import java.util.Scanner;23 public class ConversaoNumeroCaractere {4 public static void main(String[] args) {5 Scanner scan = new Scanner(System.in);67 System.out.print("\nInforme um nmero inteiro:\t");8 String texto = scan.nextLine();9 int numero = Integer.parseInt(texto);10 char caractere = (char)numero;11

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    1112 System.out.println("Caractere correspondente:\t" + caractere);13 System.out.println();14 }15 }

  • Constantes

    Conceito

    Unidades bsicas de armazenamento de dados

    Contedo fixo

    Sintaxe:

    final = ;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    final = ;

    Exemplos:

    final int VALOR_PI = 3,1416

  • Constantes

    Cdigo 4.8 Constantes.java.1 public class Constantes {2 static final double COFINS = 3.0;3 static final double PIS = 0.65;4 }

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • ConstantesCdigo 4.9 CalculoImpostos.java.1 import java.util.Scanner;2 import java.text.NumberFormat;34 public class CalculoImpostos {5 public static void main(String[] args) {6 Scanner scan = new Scanner(System.in);7 NumberFormat nf = NumberFormat.getCurrencyInstance();89 System.out.print("\nInforme o valor do faturamento:\t");10 double faturamento = scan.nextDouble();11 double valor_cofins = faturamento * Constantes.COFINS / 100;

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    11 double valor_cofins = faturamento * Constantes.COFINS / 100;12 double valor_pis = faturamento * Constantes.PIS / 100;13 double total_impostos = valor_cofins + valor_pis;1415 System.out.println("COFINS (3%):\t" + nf.format(valor_cofins));16 System.out.println("PIS (0,65%):\t" + nf.format(valor_pis));17 System.out.println("TOTAL:\t\t" + nf.format(total_impostos));18 System.out.println();19 }20 }

  • Constantes

    Cdigo 4.9 CalculoImpostos.java.

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Exerccio 1

    Crie um novo aplicativo, chamado Exercicio0401, que solicite trs dados ao seu usurio: seu nome completo, seu sexo e sua renda familiar. Todos estes dados devem ser captados na prpria janela de comando e, para isso, voc deve utilizar a classe java.util.Scanner. O nome deve ser armazenado em um objeto do tipo String, o sexo deve ser armazenado em uma varivel do tipo char e a renda familiar deve ser armazenada em uma varivel do tipo double. Ao final, o aplicativo deve imprimir os trs dados informados no mesmo formato em que se apresentam na figura abaixo.

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    abaixo.

  • Exerccio 2

    Crie um novo aplicativo, chamado Exercicio0402, que solicite trs dados ao seu usurio: seu nome completo, seu sexo e sua renda familiar. Todos estes dados devem ser captados atravs de dilogos grficos e, para isso, voc deve utilizar a classe javax.swing.JOptionPane. O nome deve ser armazenado em um objeto do tipo String, o sexo deve ser armazenado em uma varivel do tipo char e a renda familiar deve ser armazenada em uma varivel do tipo double. Ao final, o aplicativo deve exibir uma mensagem atravs de um dilogo grfico. Esta mensagem deve apresentar os trs dados informados no mesmo formato em que se

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    apresentar os trs dados informados no mesmo formato em que se apresentam nas figuras abaixo.

  • Exerccio 3

    Crie um novo aplicativo, chamado Exercicio0403, que solicite um nmero inteiro e calcule o seu quadrado. Tanto a captao do nmero quanto a exibio do resultado devem ser feitas na prpria janela de comando. A figura abaixo ilustra as sadas que devem ser produzidas por este aplicativo.

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Exerccio 4

    Crie um novo aplicativo, chamado Exercicio0404, que solicite um nmero inteiro e calcule o seu cubo. Tanto a captao do nmero quanto a exibio do resultado devem ser feitas atravs de dilogos grficos. A figura abaixo ilustra os dilogos que devero ser produzidas por este aplicativo.

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Exerccio 5

    Crie um novo aplicativo, chamado Exercicio0405, que solicite trs dados: o nome de um vendedor, o valor de vendas realizado por ele em um determinado ms e o percentual de comisso a que ele tem direito. Todos estes dados devem ser captados na prpria janela de comando. O nome deve ser armazenado em um objeto do tipo String e os outros dois dados devem ser armazenados em variveis do tipo double. A tarefa do aplicativo calcular e exibir o valor que deve ser pago a este vendedor a ttulo de comisso. A figura abaixo ilustra as sadas que devem ser produzidas por este aplicativo.

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Exerccio 6

    Crie um novo aplicativo, chamado Exercicio0406, que solicite dois dados ao seu usurio: o seu peso e a sua altura. Estes dados devem ser captados na prpria janela de comando. Tanto o peso quanto a altura devem ser armazenados em variveis do tipo double. A tarefa do aplicativo calcular o IMC (ndice de Massa Corporal) do usurio. A frmula que deve ser utilizada para este clculo a seguinte:

    IMC = P A2

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

  • Exerccio 7

    Crie um novo aplicativo, chamado Exercicio0407, que solicite um nico caractere e informe qual o caractere seguinte na tabela Unicode. As figuras abaixo ilustram qual dever ser o resultado quando for informada letra C. Voc tambm pode observar uma tabela com algumas entradas possveis para este aplicativo e as sadas correspondentes que so esperadas.

    Entrada Sada

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Entrada SadaA Ba bE F2 39 :Z [z {!

  • Contato

    Com o autor:

    Rui Rossi dos Santos

    E-mail: [email protected]

    Web Site: http://www.ruirossi.pro.br

    Com a editora:

    Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

    Com a editora:

    Editora NovaTerra

    E-mail Geral: [email protected]

    E-mail Comercial: [email protected]

    Web Site: http://www.editoranovaterra.com.br