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

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

Tipos primitivos, Strings, e Console I/O

Apresentações semelhantes


Apresentação em tema: "Tipos primitivos, Strings, e Console I/O"— Transcrição da apresentação:

1 Tipos primitivos, Strings, e Console I/O
Capítulo 2 Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

2 Objectivos Conhecer os tipos primitivos do Java (números, caracteres, etc.). Perceber a instrução de afectação e expressões. Saber ler dados introduzidos através do teclado (keyboard) e escrever resultados no ecrã (screen). Familiarização com os conceitos de classe, método e objecto. Conhecer as diferenças entre variáveis de tipos primitivos e tipos classe (referência). Saber usar os tipos classe String, Scanner e Math Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

3 Conceitos básicos Variáveis e valores Identificadores Java
Tipos Primitivos Expressões Literais Instrução de afectação Conversão de tipos implícita e explícita (type casting) Escrita no ecrã – output Tipos classe – String,Scanner e Math Leitura dos valores inseridos através do teclado – input Constantes com nome Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

4 Variáveis e Valores Variáveis armazenam dados.
Têm que ser declaradas antes de serem usadas. Quando se declara uma variável, tem que se dar um nome e o tipo de dados que a variável vai armazenar. Os dados armazenados pelas variáveis são denominados valores O valor contido pode ser alterado através da operação de afectação. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

5 Identificadores Um identificador é um nome, duma variável, dum tipo, ou dum método. Identificadores só podem conter letras dígitos (0 a 9) carácter underscore ( _ ) e o símbolo do dólar ($) em ocasiões especiais. mas o primeiro não pode ser dígito. O Java é case sensitive, nome, Nome, e NOME são identificadores diferentes. Palavras chave (keywords) são palavras reservadas, que não podem ser usadas como identificadores. Identificadores podem ser arbitrariamente grandes. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

6 Tipos em Java Tipo primitivo é usado em valores simples que não permitem decomposição, tais como um número ou um carácter. 1, 1.0, e 'a' são valores de tipo primitivo, int, double, e char respectivamente. Tipo classe (ou referência) é usado em objectos que contêm dados e sobre os quais se pode executar acções (métodos). "Pensa antes de falares." - é um valor do tipo classe String Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

7 Tipos primitivos Quatro tipos inteiro (byte, short, int, e long)
int é o mais comum Dois tipos em vírgula flutuante (float e double) double é o mais comum O tipo carácter (char) O tipo boolean (boolean) Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

8 Tipos primitivos Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

9 Formato de floating-points IEEE-754
[sinal] 1.[fracção] * 10[expoente] Sinal Expoente Fracção float (Precisão simples) 1 [31] 8 [30-23] 23 [22-00] double (Precisão dupla) 1 [63] 11 [62-52] 52 [51-00] Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

10 Literais ou constantes
Expressões como 2, 3.7, ou 'y' são denominadas literais ou constantes. Literais de caracteres encontram-se delimitados pelos carácter plica ('). Literais em vírgula flutuante (floating-point) podem ser escritos: com dígitos depois do ponto decimal ou usando notação cientifica (E notation). Exemplo: pode ser escrito 8.65e8 pode ser escrito 4.83e-4 Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

11 Exemplo de valores primitivos
Inteiros // literais de tipo int Número em virgula flutuante (floating-point) // literais de tipo double 23.45f 2.45e23f // literais de tipo float Carácter 'a' 'A' '#' ' ‘ // literais de tipo char Boolean true false // literais de tipo boolean Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

12 Unicode Muitas linguagens de programação usam o código de caracteres ASCII. Java usa o código de caracteres Unicode que inclui o conjunto de caracteres ASCII. O Unicode inclui os códigos para diferentes alfabetos. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

13 Declaração e iniciação de variáveis
Sintaxe: Declaração_de_variável ::= <tipo> <nome_de_variável> [ = <expressão> ] {, <variável> [ = <expressão> ] }*; Exemplos: int contador = 0; char letra = 'A', sinal = ','; Uma variável declarada, mas que não foi atribuído valor diz-se que não está iniciada (uninitialized). Variáveis do tipo classe devem ser iniciadas com o valor null. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

14 Expressões Com variáveis e operadores, constroem-se expressões às quais fica associado um valor. Uma expressão pode ser uma variável um literal, ou uma combinação de variáveis e literais usando operadores. Numa expressão, o tipo dos operandos determina como deve ser interpretada e executada a operação. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

15 Expressões simples Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

16 Instrução de afectação
Uma instrução de afectação é usada para atribuir um valor a uma variável. temperatura = 36; O “sinal de igual” é denominado o operador afectação. Diz-se: “A variável de nome temperatura é afectada com o valor 36”, ou de uma forma abreviada: “temperatura é afectada com 36.” Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

17 Instrução de afectação
Sintaxe Instrução_de_afectação ::= <nome_de_variável> = <expressão>; A expressão que se encontra do lado direito do operador afectação é avaliada primeiro. O resultado da expressão é usado para ficar como valor da variável que se encontra do lado esquerdo do operador afectação . score = numeroDeCartas + desvantagem; contador = contador - 2; letra = 'a'; euros = 6; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

18 Output escreve no ecrã a string literal “Olá”
System.out.println("Olá"); escreve no ecrã a string literal “Olá” System.out.println("O contador é " + contador); escreve no ecrã a string literal "O contador é " seguido do valor corrente da variável contador. System.out.println(euros + " euros"); escreve no ecrã o valor corrente da variável euros seguido da string literal " euros". Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

19 Input Leitura de dados inseridos através do teclado requer que:
import java.util.*; seja colocado no início do ficheiro. Os dados são lidos usando: Scanner keyboard = new Scanner(System.in); seguido, por exemplo, de: euros = keyboard.nextInt(); que lê um valor do tipo int e afecta a variável euros. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

20 Conversões O Java diz-se uma linguagem fortemente tipificada (strongly typed). Não se pode, por exemplo, afectar uma variável declarada como inteiro com um valor numérico em vírgula flutuante. Embora algumas conversões entre números sejam possíveis, como por exemplo : double variavel = 7; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

21 Conversão implícita Valores de um tipo podem ser convertidos quando necessário em valores doutro tipo na seguinte direcção: byte --> short --> int --> long --> float --> double ou char --> int Exemplo: double media; int notaTeste, notaTrab; media = notaTeste * notaTrab * 0.5; int codigo; char ponto= ‘A’; codigo = ponto; // codigo contem o código // Unicode do caracter ponto (65) Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

22 Conversão explícita Uma conversão explícita (type casting) converte um valor de um tipo para outro. Exemplo: double distancia; ... int ponto = (int)distancia; int codigo; char caracter = (char)codigo; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

23 Operadores Operadores aritméticos (binários: +, -, *, / e % e unários: +, -) Associatividade e regras de precedência Operadores incremento e decremento. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

24 Operações Aritméticas
Nas expressões aritméticas as operações são binárias, isto é, têm dois operandos e um operador (+, -,*, /). Quando os dois operandos são do mesmo tipo, o resultado é desse tipo. Quando um dos operandos é um tipo em virgula flutuante e o outro um inteiro, o resultado é do tipo virgula flutuante. Expressões com mais do que um operador são executadas numa sucessão de passos, em que cada passo envolve uma operação com dois operando. O resultado de um passo produz o operando para o passo seguinte. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

25 Imprecisão dos números em virgula flutuante
Os números em virgula flutuante frequentemente são aproximados pois são armazenados com um número finito de bits. Por isso 1.0/3.0 é um pouco menor que 1/3. 1.0/ / /3.0 é menor do que 1. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

26 Operador Divisão O operador divisão (/) comporta-se como se espera se um dos operandos é um número em virgula flutuante. Quando os dois operandos são números inteiros, o resultado é a divisão inteira, isto é, o valor é truncado e não arredondado. Assim, 99/100 tem o valor 0. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

27 Operador resto O operador resto (%) é usado com operandos inteiros e obtém-se o resto da divisão inteira. 14 a dividir por 4 é 3 com resto 2. Assim, 14 % 4 é igual a 2. O operador resto tem muitos usos, tal como: Determinar se um número inteiro é par ou impar Determinar se um número inteiro é divisível por outro número inteiro. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

28 Parênteses e Precedência
Os parênteses comunicam a ordem pela qual as operações aritméticas devem ser executadas Sem parênteses, as expressões são avaliadas de acordo com as regras de precedência. Exemplos: (custo + taxa) * desconto custo + (taxa * desconto) Mesmo quando os parênteses não são necessários, podem ser usados para tornar a expressão mais clara. saldo + (taxa * saldo) Os espaços podem tornar o código mais legível saldo + taxa*saldo mas os espaços não ditam a precedência. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

29 Precedência mais baixa
Regras de Precedência Precedência mais alta 1º: Operadores unários: +, -, ++, --, e ! 2º: Operadores aritméticos binários: *, /, e % 3º: Operadores aritméticos binários: + e – Precedência mais baixa Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

30 Regras de Precedência Os operadores aritméticos binários *, /, e %, têm menor precedência que os unários +, -, ++, --, e !, mas têm maior precedência que os operadores aritméticos binários + e -. Quando os operadores binários têm igual precedência, a avaliação é da esquerda para a direita. Quando um operador unário tem igual precedência, o operador à direita actua antes do operador da esquerda. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

31 Estudar um caso: enunciado
O utilizador entra com a importância entre 1 e 9 cêntimos. O programa determina a mínima combinação de moedas da importância. Por exemplo, 7 cêntimos pode ser uma moeda de 5 cêntimos e uma moeda de 2 cêntimos. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

32 Estudar um caso– diálogo
Pergunta Introduza a importância em cêntimos (1 a 9) Resposta do utilizador 9 A máquina determina e escreve a combinação de moedas: 9 cêntimos: Para obter os 9 cêntimos é necessário no mínimo: 1 de 5 cêntimos 2 de 2 cêntimos 0 de 1 cêntimo Variáveis necessárias int centimos, centimos5, centimos2, centimos1; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

33 Estudar um caso - algoritmo
Algoritmo - primeira versão Escrever a pergunta. Ler a importância para centimos. Determinar quantos 5 cêntimos existem na importância para centimos5. Subtrair o valor em 5 cêntimos a centimos. Repetir os últimos dois passos para os 2 cêntimos (centimos2) e para os 1 cêntimo (centimos1) Escrever a importância lida (centimos) e o número de moedas de cada moeda (centimos5, centimos2, centimos1) . Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

34 Estudar um caso– algoritmo final
O algoritmo não trabalha correctamente, porque a importância original foi alterada nos passos intermédios - a importância original centimos perdeu-se. Modificar as variáveis iniciais para int centimos, centimosIniciais, centimos5, centimos2; Actualizar o algoritmo: Escrever pergunta e ler os cêntimos Guardar a importância original em centimosIniciais Calcular quantos 5 cêntimos existem em centimos. Subtrair o valor em 5 cêntimos aos centimos. Repetir os últimos dois passos para os 2 cêntimos Em centimos estão o número de moedas de 1 cêntimo. Escrever os cêntimos iniciais e a quantidade de cada moeda Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

35 Estudar um caso - implementação
Escrever em Java o código que implementa o algoritmo escrito em pseudo-code. Como determinar o número de moedas na importância? Por exemplo, de 5 cêntimos existe 1 em 6 e 9 cêntimos. Isto porque: 6 / 5 = 1 e 9 / 5 = 1. Como determinar o resto dos cêntimos? Para obter o resto da importância usa-se o operador resto 6 % 5 = 1 e 9 % 5 = 4 Para as restantes moedas é similar. As moedas de 1 cêntimo são simplesmente o resto da divisão (%) por 2. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

36 Estudar um caso - implementação
import java.util.*; public class Moedas { public static void main(String[] args) { // Declarar as variáveis int centimos, centimosIniciais, centimos5, centimos2; // Escrever pergunta System.out.print("Introduza a importância em cêntimos (1 a 9)?"); Scanner keyboard = new Scanner(System.in); centimos = keyboard.nextInt(); // Ler os cêntimos centimosIniciais = centimos; // Guardar a importância original centimos5 = centimos / 5; // Obter o número de moedas de 5 cêntimos centimos = centimos % 5; centimos2 = centimos / 2; // Obter o número de moedas de 2 cêntimos centimos = centimos % 2; // Escrever os cêntimos iniciais e a quantidade de cada moeda System.out.println("Para obter os " + centimosIniciais + " cêntimos é necessário no mínimo:"); System.out.println(" "+ centimos5 + " moeda(s) de 5 centimos"); System.out.println(" "+ centimos2 + " moeda(s) de 2 centimos"); System.out.println(" "+ centimos + " moeda(s) de 1 centimos"); } Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

37 Estudar um caso - teste O programa deve ser testado com diferentes importâncias. Testar com valores que dêem zero para cada uma das moedas. Testar com importâncias limites tais como extremos 0 e 9 Das moedas, tais como 4, 5 e 6. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

38 Operadores Incremento e Decremento
Usados para aumentar, ou diminuir, o valor de uma variável de 1 Fácil de usar, importante reconhecer O operador incremento contador++ ou ++contador O operador decremento contador-- ou –-contador Operações equivalentes: contador++; ++contador; contador--; --contador; contador = contador + 1; contador = contador - 1; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

39 Operadores Incremento e Decremento em Expressões
Depois de executar int m = 4; int result = 3 * ( ++m ) result tem o valor 15 e m tem o valor 5 int result = 3 * ( m++ ) result tem o valor 12 e m tem o valor 5 Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

40 Classes Uma classe é um tipo usado para produzir objectos.
Um objecto é uma entidade que armazena dados e pode executar as acções definidas nos métodos. Objectos duma mesma classe Têm os mesmos métodos Têm o mesmo tipo de dados mas contêm dados com diferentes valores. Tipos primitivos têm valores, mas não têm métodos. Um objecto do tipo String armazena uma sequência de caracteres. O método length() retorna o número de caracteres contidos no objecto do tipo String. int quantosCaracteres = nome.length(); Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

41 Classe String O valor do tipo String é uma sequência de caracteres que se comporta como um único item. Tem-se usado o tipo String em: Literais: "Introduza um valor de 1 a 99." Declarações: String saudar; ou String saudar = "Hello!"; String saudar = new String("Hello!"); Instruções de afectação: saudar = "Hello!"; saudar = new String("Hello!"); Escrita: System.out.println( saudar ); Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

42 Classe String Uma string pode ter qualquer número de caracteres, inclusive zero. Uma string com zero caracteres é denominada string vazia (empty). A string vazia pode ser criada: String s3 = ""; Duas strings são concatenadas usando o operador +: String saudar = "Hello"; String frase; frase = saudar + " alunos"; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

43 Concatenação de Strings
O operador concatenação (+) é útil sempre que a string não cabe numa linha: System.out.println("Quando a frase " + " não cabe numa linha, tem que se usar o " + " operador concatenação "); Podem ser concatenadas qualquer número de strings usando o operador +. Concatenação de strings com inteiros String resultado; resultado = "A temperatura é " + 72; System.out.println ( resultado ); é escrito: “A temperatura é 72” Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

44 Métodos da String Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

45 Métodos da String Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

46 Métodos da String Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

47 Métodos da String Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

48 Posições na String A posição é referida como índice.
O 'd' na string “Java é divertido.” está no índice 7. A posição começa em 0, não em 1. O 'J' na string “Java é divertido. ” está no índice 0. O método charAt() retorna o carácter que está na posição passada como parâmetro. Os 17 caracteres da string “Java é divertido.” têm índices de 0 a 16. O índice de cada carácter é: Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

49 Não se modifica objectos String
Nenhum método permite que se modifique o valor de um objecto do tipo String. Mas é possível modificar o valor da variável do tipo String. valor da pausa String pausa = " Hmm "; pausa Hmm pausa = pausa.trim() pausa Hmm pausa = pausa + "mmm! "; pausa Hmmmmm pausa = "Ahhh"; pausa Ahhh Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

50 Caracteres de Escape Como é que se escreve
Linguagem "Java".? O compilador necessita de saber que a aspa (") não é a marca de fim de string, mas sim para ser escrita. System.out.println("Linguagem \"Java\"."); Outros exemplos: System.out.println("abc\\def"); abc\def System.out.println("new\nline"); new line char singleQuote = '\''; System.out.println(singleQuote); ' Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

51 Caracteres de Escape Cada sequência de escape é um único carácter embora seja escrito com dois símbolos. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

52 Strings vazias e longas
Uma string pode ter qualquer número de caracteres, inclusive zero, mas não pode ser quebrada por uma mudança de linha. Uma string com zero caracteres é denominada string vazia (empty). A string vazia pode ser criada: String s3 = ""; O operador concatenação (+) é útil sempre que a string não cabe numa linha. System.out.println("Quando a frase " + "não cabe numa linha, use o" + " operador concatenação"); Em alternativa, usar o método print() System.out.print("Quando a frase "); System.out.print("não cabe numa linha, use o "); System.out.println("método \"print\" "); terminando com o println(). Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

53 Classe Scanner Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

54 Classe Scanner Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

55 Método nextLine() ATENÇÂO
O método nextLine() lê o que resta da linha corrente, mesmo que ela esteja vazia. Exemplo int n; String s1, s2; n = keyboard.nextInt(); s1 = keyboard.nextLine(); s2 = keyboard.nextLine(); 5440 ou dois n é afectado com 5440 e s1 é afectado com a string vazia. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

56 A classe Math A classe predefinida Math providencia vários métodos matemáticos standard. Não é necessário criar objectos para invocar os métodos da classe Math. Estes métodos são invocados usando o nome da classe (Math) seguida do operador ponto e do nome do método. valor = Math.nome_método(parâmetros); Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

57 Métodos da classe Math Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

58 Métodos da classe Math O método round retorna o número mais próximo do número. Se o argumento é do tipo double, retorna um número do tipo long. O método floor (ou o ceil) retorna o número mais próximo que é menor (ou maior) ou igual ao argumento. Para armazenar o valor retornado pelos métodos anteriores numa variável do tipo inteiro, é necessário usar uma conversão explícita (cast). double valor = 3.56; int maisProximo = (int)Math.round(valor); //4 int limiteInferior = (int)Math.floor(valor); //3 int limiteSuperior = (int)Math.ceil(valor); //4 Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

59 Constantes da classe Math
A classe Math tem duas constantes predefinidas, o E e o PI. Exemplo area = Math.PI * raio * raio; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

60 Documentação e Estilo Muitos programas são modificados algumas vezes para responder a novos requisitos. Programas que são fáceis de ler e de compreender são fáceis de modificar. Mesmo que um programa seja usado só uma vez, é necessário lê-lo de forma a conseguir fazer o debug. Os melhores programas são auto-documentados. Claros no estilo Nomes bem escolhidos Programas bem comentados explicam o programa. Os comentários são úteis para o programador, mas são ignorados pelo compilador. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

61 Construção dos nomes O nome de uma variável deve sugerir o seu uso.
Convenções para os nomes. Usar só letras e dígitos. Usar letras maiúsculas para separar palavras (e.g. corDeFundo). Começar variáveis com letras minúsculas. Começar classes com letras maiúsculas. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

62 Comentários Um comentário pode começar com //.
Tudo depois destes símbolos e até ao fim da linha é tratado como comentário e ignorado pelo compilador. double raio; //em centímetros Um comentário pode começar com /* e terminar */ Tudo entre estes símbolos e até ao fim da linha é tratado como comentário e ignorado pelo compilador. /* O método perimetroTriangulo é usado para calcular o perímetro de um triangulo dados os lados */ Um comentário javadoc, começa com /** e termina com */. Pode ser extraído automaticamente por software Java. /** Método que calcula o perímetro de um triangulo dados os lados */ Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

63 Quando usar Comentários?
No início do ficheiro com uma explicação O que o programa faz O nome do autor Contactos do autor Data da última modificação. Ao longo do programa providenciar comentários de forma a possibilitar a sua compreensão. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

64 Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

65 Indentation A indentation permite clarificar o alinhamento das instruções. É boa escolha 4 espaços por cada nível de indentação. indentation deve ser consistente. indentation deve ser utilizada nas linhas seguintes das instruções aninhadas. indentation não modifica o comportamento do programa. indentation impróprias podem provocar erros no comportamento do programa. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

66 Constantes com nome Para clarificar, devem ser dados nomes às constantes (e variáveis). area = PI * radius * radius; é mais claro do que area = * radius * radius; Colocar as constantes perto do início do programa. Uma vez afectado o valor da constante, pode ser usada (e reflectida) do princípio ao fim do programa. double MAX = 6.65; Se o literal em uso (tal como 6.65), necessitar de ser modificado, corre-se o risco de outro literal com o mesmo valor ser alterado sem que fosse essa a intenção. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

67 Declarar Constantes Sintaxe Exemplos
[public] [static] final <tipo> <variável> = <constante>; Exemplos public static final double PI = ; public static final String MOTTO = "O cliente está sempre certo."; Por convenção são utilizadas unicamente letras maiúsculas para os nomes das constantes. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education

68 Sumário Familiarizamo-nos com os tipos primitivos em Java (números, caracteres e booleanos). Aprendemos expressões e a instrução de afectação. Aprendemos strings. Familiarizamo-nos com classes, métodos, e objectos. Aprendemos a usar o teclado como input e o ecrã como output. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005 Pearson Education


Carregar ppt "Tipos primitivos, Strings, e Console I/O"

Apresentações semelhantes


Anúncios Google