Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
-
Upload
manuel-menezes-de-sequeira -
Category
Technology
-
view
1.671 -
download
11
description
Transcript of Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Aula 5
Manipulação de caracteresRelação entre os tipos char e intTipos de valor vs. tipos de referência
Introdução à Programação - DCTI - ISCTE-IUL 2
Da aula anterior…
Atribuições especiais
Matrizes em Java
Tipos de ciclos (ciclo for)
Classes pacote
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 3
Tipo primitivo char
Cada variável char guarda um caractere
Valores literais entre plicas
Exemplo char letter = 'k';
2010/2011
k
letter
k
letter : char ou
Introdução à Programação - DCTI - ISCTE-IUL 4
Caracteres: códigos
Cada caractere tem código único
Códigos de letras latinas Consecutivos Ordem alfabética Minúsculas e
maiúsculas separadas
Caractere Código
… …
A 65
… …
Z 90
… …
a 97
… …
z 122
… …
2010/2011
Sem marcas
diacríticas!
Introdução à Programação - DCTI - ISCTE-IUL 5
Conversão entre char e int
Caracteres convertíveis para códigos
Códigos convertíveis para caracteres
Exemplo char original = 'b'; int code = (int) original; char recovered = (char) code;
2010/2011
b
original
98
code
b
recovered
Introdução à Programação - DCTI - ISCTE-IUL 6
Caracteres: operadores aritméticos
char letter1 = 'c';letter1++;
char letter2 = 'b';letter2--;
int difference = letter1 – letter2;
2010/2011
100 - 97
c
letter1
b
letter2
3
difference
d
letter1
a
letter2
Introdução à Programação - DCTI - ISCTE-IUL 7
Caracteres: operadores relacionais
Comparam códigos!
Exemplos c > 'a' – Caractere em c tem código
superior ao de “a” c1 <= c2 – Caractere em c1 tem código
não superior ao caractere em c2
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 8
Exemplo: matriz com minúsculas por ordem alfabética
final int numberOfLetters = 'z' – 'a' + 1; // 26
final char[] letters = new char[numberOfLetters];
for(int i = 0; i != letters.length; i++)
letters[i] = (char) ('a' + i);
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 9
Variáveis que guardam
referências.
Atribuição: valor vs. referênciaTipos primitivos (int, boolean, etc.)int a = 7;int b = a;int c;
Tipos de referência (matrizes, classes)int[] a = {1, 2, 3};int[] b = a;int[] c;
2010/2011
7
a
7
b
0
c
Excepto no caso de
variáveis locais.
Variáveis locais têm sempre de
ser inicializadas
explicitamente.
a
b
null
c
Excepto no caso de
variáveis locais.
Variáveis locais têm sempre de
ser inicializadas
explicitamente.
1 2 3
0 1 2
Variáveis que guardam valores.
Invocação: passagem por valorpublic static void increment(int value) { value++;}
… main(…) { int number = 3;
increment(number);
out.println(number);}
19-10-2010 Introdução à Programação 10
value = number
3
number
3
value
4
value
Que aparece?
Invocação: passagem por valor de uma referência
public static void incrementFirstOf(final int[] values) { values[0]++;}
… main(…) { int[] numbers = {1, 2, 3, 4};
incrementFirstOf(numbers);
out.println(numbers[0]);}
19-10-2010 Introdução à Programação 11
values = numbers
numbers
values
Que aparece?
2 1 0
0 1 2 3
43
Introdução à Programação - DCTI - ISCTE-IUL 12
Problema: Cifra de César
2010/2011
Saiba mais na Wikipédia.
Cifra com deslocação
de 2.
a b c x y z…
a b c d e z…
a t a c a r
c v c e c t
cifra
Introdução à Programação - DCTI - ISCTE-IUL 13
A reter
Manipulação de caracteres
Relação entre os tipos char e int
Tipos de valor vs. tipos de referência
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 14
A ler...
Capítulos 1 a 4 do livro:
Y. Daniel Liang, Introduction to Java Programming, 8.ª edição, Prentice-Hall, 2010. ISBN: 978-0-13-213080-6
2010/2011
Introdução à Programação - DCTI - ISCTE-IUL 15
Sumário
Manipulação de caracteres
Relação entre os tipos char e int
Tipos de valor vs. tipos de referência
2010/2011