Escolar Documentos
Profissional Documentos
Cultura Documentos
3ª parte
Jobson Massollar
jobson.silva@uva.br
Métodos Estáticos
2 Programação OO
Métodos Estáticos
3 Programação OO
Métodos Estáticos
4 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
5 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
6 Programação OO
Exercícios
d xb xa 2 yb ya 2
7 Programação OO
Atributos Estáticos
8 Programação OO
Atributos Estáticos
Exemplo (continuação):
Será impresso:
public class Concessionaria { Ano de c1 = 2008
public static void main(String args[]) { Ano de c2 = 2011
Carro c1 = new Carro(2008); Ano de c3 = 2012
Carro c2 = new Carro(2011); Ano de c4 = 2010
Qtde de carros = 4
Carro c3 = new Carro(2012);
Carro c4 = new Carro(2010);
10 Programação OO
Atributos Estáticos
11 Programação OO
Métodos e Atributos Estáticos
12 Programação OO
Atributos Estáticos
13 Programação OO
Strings
Java não possui um tipo primitivo string como em algumas outras linguagens
(VB, Delphi).
Exemplo:
É equivalente a:
15 Programação OO
Strings
16 Programação OO
Strings
Método Descrição
Isso significa dizer que, uma vez criadas, não podemos alterar o conteúdo de
uma string.
18 Programação OO
Strings
19 Programação OO
Strings
20 Programação OO
Strings
21 Programação OO
Strings
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.
22 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.
23 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"
24 Programação OO
Strings
Exemplo 2:
25 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
26 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
27 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");
28 Programação OO
Strings
29 Programação OO
Vetores
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.
30 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
31 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
32 Programação OO
Vetores
33 Programação OO
Vetores
34 Programação OO
Vetores
float[] nota;
nota = new float[10];
Erro de execução:
nota[-1] = 7.5;
ArrayIndexOutOfBoundsException
nota[10] = 8.0;
35 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
36 Programação OO
Vetores
38 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);
}
}
39 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.
40 Programação OO
Exercícios
41 Programação OO
Exercícios
42 Programação OO
Vetores de Objetos
Além do vetor, cada objeto deve ser criado com o operador new.
retangulos
indefinido !
44 Programação OO
Vetores de Objetos
public class EditorGrafico{
Ao criarmos um vetor com
public static void main(String[] args) { 3 posições, alocamos
Retangulo[] retangulos; espaço para referenciar 3
retângulos. Essas
retangulos = new Retangulo[3]; referências são inicializadas
com null.
retangulos[0] = new Retangulo(0, 0, 40, 20);
retangulos[1] = new Retangulo(10, 10, 20, 20);
Atenção: ainda não
retangulos[2] = new Retangulo(5, 10, 30);
temos os retângulos !
}
retangulos
0 1 2
45 Programação OO
Vetores de Objetos
public class EditorGrafico{
public static void main(String[] args) {
Retangulo[] retangulos;
retangulos
0 1 2
null null
x=0
y=0
largura = 40
altura = 20
46 Programação OO
Vetores de Objetos
public class EditorGrafico{
public static void main(String[] args) {
Retangulo[] retangulos;
retangulos
0 1 2
x=5
y = 10
largura = 30
altura = 30
x=0
y=0 x = 10
largura = 40 y = 10
altura = 20 largura = 20
altura = 20
47 Programação OO