Escolar Documentos
Profissional Documentos
Cultura Documentos
2ª parte
Jobson Massollar
jobson.silva@uva.br
Orientação à Objetos
Diferentes paradigmas
para realizar essa tarefa.
2 Programação OO
Orientação à Objetos
Estruturado
Orientado a Objetos
3 Programação OO
Orientação à Objetos
Sistema da
Biblioteca
4 Programação OO
Orientação à Objetos
5 Programação OO
Objeto
6 Programação OO
Exemplos de Objetos
7 Programação OO
Características dos Objetos
Por exemplo: a cor da moto pode ser vermelha, azul, verde, etc.
8 Programação OO
Comportamento dos Objetos
9 Programação OO
Mapeamento de Objetos
Características Atributos
Comportamento Métodos
10 Programação OO
Principais Características de OO
Classificação
Abstração
Encapsulamento
Relacionamentos
Herança
Polimorfismo
11 Programação OO
Classificação
Classificação
12 Programação OO
Classificação
13 Programação OO
Classificação
14 Programação OO
Classificação
abstrair em
Carro
Placa
Cor
Ano
Andar
Parar
Estacionar
15 Programação OO
Classificação
16 Programação OO
Classificação
17 Programação OO
Classificação
Matricular
O estado de um objeto
Cursar é definido pelos valores
dos seus atributos.
18 Programação OO
Classificação
19 Programação OO
Métodos Especiais
20 Programação OO
Principais Características de OO
Classificação
Abstração
Encapsulamento
Relacionamentos
Herança
Polimorfismo
21 Programação OO
Abstração
Abstração
22 Programação OO
Abstração
número de matrícula,
cpf,
nome do curso, ...
23 Programação OO
Principais Características de OO
Classificação
Abstração
Encapsulamento
Relacionamentos
Herança
Polimorfismo
24 Programação OO
Encapsulamento
Encapsulamento
25 Programação OO
Encapsulamento
Pedido de Serviço
Implementação
26 Programação OO
Encapsulamento
27 Programação OO
Encapsulamento
Atributos e Métodos:
28 Programação OO
Classes
29 Programação OO
Classes
30 Programação OO
Classes
31 Programação OO
Classes
32 Programação OO
Classes
33 Programação OO
Classes
34 Programação OO
Classes
Para criar uma classe precisamos definir o lugar onde iremos colocar
essa classe.
Pelo padrão do Java, os nomes dos pacotes devem ter somente letras
minúsculas.
35 Programação OO
Classes
java.mhs.unitri.javapos
36 Programação OO
Classes
37 Programação OO
Classes
Visibilidade da classe:
38 Programação OO
Classes
}
Por ser pública, a classe
Retangulo é visualizada por
todas as classes de todos
os pacotes do sistema.
39 Programação OO
Atributos
40 Programação OO
Atributos
41 Programação OO
Atributos
Princípio do Encapsulamento:
Atributos não devem ser visíveis por nenhum objeto que não seja
instância da própria classe ou de uma classe descendente
(herança).
42 Programação OO
Atributos
package principal;
43 Programação OO
Atributos
Inicialização de atributos:
44 Programação OO
Classes
Objetos Classe
45 Programação OO
Classes
46 Programação OO
Classes
r = new Retangulo();
47 Programação OO
Classes
Retangulo r;
r
r = new Retangulo();
largura = 0
• Cria uma nova instância da classe altura = 0
Retangulo. x=0
• A variável r passa a referenciar esse y=0
objeto.
• Os valores dos atributos são inicializados
48 Programação OO
Construtores
49 Programação OO
Construtores
Observe que:
Construtores devem ter, obrigatoriamente, o mesmo nome da
classe.
Construtores não tem nenhum tipo de retorno.
Construtores podem receber parâmetros que serão usados na
inicialização do objeto.
50 Programação OO
Construtores
51 Programação OO
Construtores
52 Programação OO
Construtores
53 Programação OO
Construtores
r2
54 Programação OO
Construtores
r1
largura = 0
altura = 0
x=0
y=0
55 Programação OO
Construtores
r1
this
56 Programação OO
Construtores
r1
public Retangulo(int x, int y, int largura, int altura) {
this.x = x;
this.y = y;
this.largura = largura;
this.altura = altura;
largura = 100
}
altura = 200
x = 10
y = 20
57 Programação OO
Construtores
58 Programação OO
Construtores
60 Programação OO
Construtores
61 Programação OO
Métodos de Acesso
62 Programação OO
Métodos de Acesso
63 Programação OO
Métodos de Acesso
64 Programação OO
Métodos de Acesso
65 Programação OO
Métodos de Acesso
package principal; Os atributos são privados,
então precisamos dos
public class Retangulo { métodos de acesso para
permitir que estes sejam
private int largura, altura, x, y;
lidos ou alterados.
67 Programação OO
Métodos
68 Programação OO
Métodos
Método mover():
package Principal;
69 Programação OO
Métodos
Método deslocar():
package Principal;
70 Programação OO
Métodos
Método redimensionar():
package Principal;
71 Programação OO
Métodos
Método desenhar():
package Principal;
}
Imprime os dados do
retângulo
72 Programação OO
Exercícios
73 Programação OO
Exercícios
74 Programação OO
Construtor Cópia
int a, b;
a b
a = 10;
10 10
b = a;
75 Programação OO
Construtor Cópia
76 Programação OO
Construtor Cópia
r2.setLargura(300);
largura = 300
altura = 200
Quando alteramos o objeto x = 10
referenciado por r2, estamos y = 20
alterando o mesmo objeto
referenciado por r1.
77 Programação OO
Construtor Cópia
78 Programação OO
Construtor Cópia
79 Programação OO
Construtor Cópia
Para usar o construtor cópia, basta passar o objeto que será copiado:
80 Programação OO
Sobrecarga de Métodos
81 Programação OO
Sobrecarga de Métodos
Exemplo:
public class Retangulo {
82 Programação OO
Sobrecarga de Métodos
83 Programação OO
Exercícios
Exercício 20: crie uma classe que imprime uma sequência de números
inteiros de n a m. A classe pode imprimir a sequência saltando de 1
em 1 (valor default) ou de p em p. Exemplos:
a) Sequência de 2 a 6: 2 3 4 5 6
b) Sequência de 2 a 10 com salto 2: 2 4 6 8 10
c) Sequência de 0 a 15 com salto 3: 0 3 6 9 12 15
d) Sequência de 0 a 10 com salto 4: 0 4 8
84 Programação OO
Exercícios
85 Programação OO
Exercícios
Exercício 22: crie uma classe Data para representar uma data. Para
criar uma data é obrigatório informar dia, mês e ano. Crie, também,
três métodos:
a) ehValida() que deverá retornar true se a data for válida ou false
caso contrário.
b) ehBissexto() que deverá retornar true se a data for válida e o ano
for bissexto ou false caso contrário.
c) imprime() que deverá imprimir a data com o separador default "/"
ou com um separador definido pelo usuário. Caso a data seja
inválida, o método deverá imprimir "INVÁLIDA".
86 Programação OO