Академический Документы
Профессиональный Документы
Культура Документы
3ª parte
int[] v;
float[] notas;
Isso significa dizer que, ao declarar um vetor, o Java NÃO aloca espaço na
memória para o vetor.
2 Programação OO
Vetores
Em C/C++:
float nota[10];
0 1 2 3 4 5 6 7 8 9
Em Java:
float[] nota;
NULO
3 Programação OO
Vetores
0 1 2 3 4 5 6 7 8 9
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 Programação OO
Vetores
5 Programação OO
Vetores
6 Programação OO
Vetores
float[] nota;
nota = new float[10];
Erro de execução:
nota[-1] = 7.5;
ArrayIndexOutOfBoundsException
nota[10] = 8.0;
7 Programação OO
Vetores
onde:
lista de valores é uma lista cujos elementos são separados por vírgula.
Cria automaticamente um
Exemplos: vetor de 5 posições
Cria automaticamente um
vetor de 7 posições
8 Programação OO
Vetores
9 Programação OO
Vetores
Existe uma outra sintaxe do comando for para percorrer vetores. Essa
forma é usada apenas para ler os dados do vetor, mas não serve para
alterar o vetor.
for (int n : v)
System.out.println(n);
}
}
10 Programação OO
Vetores
for (int n : v)
System.out.println(n);
}
} A cada iteração, a variável n
recebe os valores armazenados
no vetor v, do primeiro até o
último.
11 Programação OO
Exercícios
12 Programação OO
Exercícios
13 Programação OO
Métodos Estáticos
14 Programação OO
Métodos Estáticos
15 Programação OO
Métodos Estáticos
16 Programação OO
Métodos Estáticos
Exemplos:
double x = 12.2;
double y = Math.sqrt(x); // calcula a raiz quadrada de x
long z = Math.round(y); // arredonda o valor de y
17 Programação OO
Métodos Estáticos – Classe Math
Método Descrição
abs(x) Retorna o valor absoluto de x. x pode ser do tipo int, long, float ou double.
double acos(double x) Retorna o arco coseno do parâmetro x
double asin(double x) Retorna o arco seno do parâmetro x
double atan(double x) Retorna o arco tangente do parâmetro x
double ceil(double x) Retorna o menor inteiro maior que x
double cos(double x) Retorna o coseno de x
double exp(double x) Retorna a constante de Euller e elevada a x
double floor(double x) Retorna o maior inteiro menor que x
double log(double x) Retorna o logaritmo natural de x
max(x, y) Retorna o maior valor entre x e y. x e y podem ser do tipo int, long, float ou double.
min(x, y) Retorna o menor valor entre x e y. x e y podem ser do tipo int, long, float ou double.
double pow(double x, double y) Retorna xy
double random() Retorna um número aleatório maior ou igual a ZERO e menor que UM
long round(double x) Retorna o inteiro mais próximo de x
double sin(double x) Retorna o seno de x
18 Programação OO
Exercícios
d xb xa 2 yb ya 2
d
d'
19 Programação OO
Exercícios
20 Programação OO
Atributos Estáticos
21 Programação OO
Atributos Estáticos
23 Programação OO
Atributos Estáticos
24 Programação OO
Atributos Estáticos
25 Programação OO
Atributos Estáticos
26 Programação OO
Atributos Estáticos
Exemplo (continuação):
27 Programação OO
Métodos e Atributos Estáticos
28 Programação OO
Atributos Estáticos
29 Programação OO
Strings
Java não possui um tipo primitivo string como em algumas outras linguagens
(VB, Delphi).
Repare que não precisamos do operador new para criar o objeto String. O
Java chama implicitamente esse operador.
30 Programação OO
Strings
31 Programação OO
Strings
Método Descrição
Exemplos:
c = str.charAt(2);
c = str.charAt(7);
ok = str.endsWith("tos");
ok = str.endsWith("objeto");
33 Programação OO
Strings
Exemplos:
0123456789012345678901234567890
String str = "Programação Orientada a Objetos";
String nome = " João da Silva ";
int p;
char c;
boolean ok;
34 Programação OO
Strings
Exemplos:
p = str.indexOf('a');
p = str.indexOf('O');
p = str.indexOf('x');
p = str.lastIndexOf('a');
p = str.length();
35 Programação OO
Strings
Exemplos:
0123456789012345678901234567890
String str = "Programação Orientada a Objetos";
String nome = " João da Silva ";
int p;
char c;
boolean ok;
p = str.indexOf('a'); -> 5
p = str.indexOf('O'); -> 12
p = str.indexOf('x'); -> -1
p = str.lastIndexOf('a'); -> 22
p = str.length(); -> 31
36 Programação OO
Strings
Exemplos:
ok = str.startsWith('Progra');
ok = str.startsWith('grama');
System.out.println(str.toUpperCase());
System.out.println(str.substring(0, 6));
System.out.println(str.substring(3, 8));
37 Programação OO
Strings
Exemplos:
System.out.println(str.toUpperCase());
-> "PROGRAMAÇÃO ORIENTADA A OBJETOS"
38 Programação OO
Strings
Exemplos:
System.out.println(nome.trim());
System.out.println(nome.trim().toUpperCase());
39 Programação OO
Strings
Exemplos:
System.out.println(nome.trim().toUpperCase());
-> "JOÃO DA SILVA"
40 Programação OO
Strings
Isso significa dizer que, uma vez criadas, não podemos alterar o conteúdo de
uma string.
41 Programação OO
Strings
42 Programação OO
Strings
43 Programação OO
Strings
44 Programação OO
Strings
A JVM irá descartar
Outro exemplo: " Programação" automaticamente
esses objetos
quando necessário.
String disciplina = "Programação";
" Programação Orientada"
Ou seja, se alteramos com muita frequência uma string, temos uma perda de
desempenho relacionada à cópia dessa string para um novo objeto. E quanto
maior a string, pior o desempenho.
Por isso, para programas que trabalham intensamente com strings use a classe
StringBuilder.
45 Programação OO
Strings
Como strings são objetos, se usarmos os operadores relacionais (==, !=, >, <,
>= ou <=) estaremos comparando as referências para as strings e não o
conteúdo das strings.
Por isso não podemos usar os operadores relacionais (==, !=, >, <, >= ou
<=) para comparar strings.
46 Programação OO
Strings
Exemplo 1:
Quando comparamos
if (nome1 == nome2) nome1 == nome2
System.out.println("Igual"); estamos comparando se a área de
else memória referenciada é a mesma e
System.out.println("Diferente"); não se o conteúdo é o mesmo.
Nesse caso vai imprimir "Diferente"
47 Programação OO
Strings
Exemplo 2:
48 Programação OO
Strings
Exemplo 3:
if (nome1.compareTo(nome2) == 0)
System.out.println("Igual"); O método compareTo() retorna:
else
• um valor < 0 se nome1 < nome2
System.out.println("Diferente");
• um valor > 0 se nome1 > nome2
• um valor = 0 se nome1 = nome2
49 Programação OO
Strings
S1 S2 Resultado Descrição
"a" "b" <0 "a" < "b"
"A" "a" <0 "A" < "a"
Letras maiúsculas vem ANTES de letras minúsculas
"JOAO" "joao" <0 "JOAO" < "joao"
Letras maiúsculas vem ANTES de letras minúsculas
"joao" "ana" >0 "joao" > "ana"
"joao" "Pedro" >0 "joao" > "Pedro"
P maiúsculo vem ANTES do j minúsculo
"123" "joao" <0 "123" < "joao"
Dígitos vem ANTES de letras maiúsculas ou
minúsculas
"11" "2" <0 "11" < "2"
A comparação é feita como string e não como
número
50 Programação OO
Strings
if (nome1.compareTo("Jose") < 0)
System.out.println(nome1 + " vem antes de Jose");
else if (nome1.compareTo("Jose") > 0)
System.out.println(nome1 + " vem depois de Jose");
if (nome2.equalsIgnoreCase("JOAO"))
System.out.println("Igual");
else
System.out.println("Diferente");
51 Programação OO
Strings
52 Programação OO