li rui pcj 2ed cap04
Post on 06-Nov-2015
260 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
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: livros@ruirossi.pro.br
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: contato@editoranovaterra.com.br
E-mail Comercial: comercial@editoranovaterra.com.br
Web Site: http://www.editoranovaterra.com.br
top related