Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação de Computadores II
TCC-00.174
Introdução
Para isso:
atribuímos nomes
classificamos em grupos – classes.
29/04/2013 Programação de Computadores II 2
1
29/04/2013
Introdução
Conceitos
Orientação a Objetos
Estado & Comportamento
Aluno
Nome
Matrícula
Nota Média
João Maria
193.31.098-7 195.31.022-5
7,6 8,7
2
29/04/2013
Orientação a Objetos
Estado & Comportamento
Exemplos:
Cachorros
estado: nome, cor, raça
comportamento: latir, correr
Bicicletas
estado: marcha atual, velocidade atual
comportamento: trocar marcha, aplicar freios
29/04/2013 Programação de Computadores II 5
Orientação a Objetos
Estado & Comportamento
3
29/04/2013
Orientação a Objetos
Classes
Classes contém:
Atributos: determinam o estado do objeto;
Orientação a Objetos
Classes
Classe Instâncias
Aluno João
Nome 193.31.098-7
atributos Matrícula 7,6
Nota Média
setNome(nome) Maria
métodos getNome() 195.31.022-5
... 8,7
4
29/04/2013
Orientação a Objetos
Objetos
Objetos
Orientação a Objetos
Objetos
Objetos
Objetos de software são conceitualmente similares a objetos do mundo real:
consistem do estado e do comportamento relacionado.
Encapsulamento:
princípio pelo qual cada componente de um programa deve agregar toda a informação
relevante para sua manipulação.
Ocultação da Informação:
princípio pelo qual cada componente deve manter oculta sob sua guarda uma decisão
de projeto única. Para a utilização desse componente, apenas o mínimo necessário para
sua operação deve ser revelado (tornado público).
5
29/04/2013
Orientação a Objetos
Objetos
Classe Instâncias
Bicicleta Bicicleta A
Marcha 3ª
campos 20 km/h
Velocidade
(atributos)
mudarMarcha() Bicicleta B
métodos mudarVelocidade() 7ª
... 35 km/h
Orientação a Objetos
Objetos
6
29/04/2013
Orientação a Objetos
Classes Vs. Objetos
CLASSE Documento
Autor
DataDeChegada
Atributos
Imprimir
Funções Editar
Orientação a Objetos
Classes em Java
7
29/04/2013
Orientação a Objetos
Criando Objetos em Java
Para instanciarmos um novo objeto devemos utilizar o operador new, como nos
exemplos abaixo:
Orientação a Objetos
Resumindo ...
Ex. Bicicleta:
ESTADO – valores dos atributos velocidade e marcha;
COMPORTAMENTO – exposto pelos métodos mudarMarcha,
aumentarVelocidade.
8
29/04/2013
Orientação a Objetos
Resumindo ...
Orientação a Objetos
Encapsulamento de Dados
Pessoa
9
29/04/2013
Orientação a Objetos
Herança
– Superclasse
– Subclasse
– Ancestral
– Descendente
Orientação a Objetos
Herança
Pessoa
Nome
Idade
Professor Aluno
Formação Curso
Área de interesse Matrícula
Departamento Nota Média
10
29/04/2013
Orientação a Objetos
Herança
Professor Aluno
- nome: String - nome: String
- idade: int - idade: int
- formação: String - curso: String
+definirNome(nome: Sting): void +definirNome(nome: Sting): void
+retornarNome(): String +retornarNome(): String
+definirIdade(idade: int): void +definirIdade(idade: int): void
+retornarIdade(): int +retornarIdade(): int
+definirFormacao(f: Sting): void +definirCurso(c: Sting): void
+retornarFormacao(): String +retornarCurso(): String
... ...
Orientação a Objetos
Herança
Professor Aluno
- nome: String - nome: String
- idade: int - idade: int
- formação: String - curso: String
+definirNome(nome: Sting): void +definirNome(nome: Sting): void
+retornarNome(): String +retornarNome(): String
+definirIdade(idade: int): void +definirIdade(idade: int): void
+retornarIdade(): int +retornarIdade(): int
+definirFormacao(f: Sting): void +definirCurso(c: Sting): void
+retornarFormacao(): String +retornarCurso(): String
... ...
11
29/04/2013
Orientação a Objetos
Herança
Pessoa
- nome: String
- idade: int
Professor Aluno
- formação: String - curso: String
+definirFormacao(f: Sting): void +definirCurso(f: Sting): void
+retornarFormacao(): String +retornarCurso(): String
Orientação a Objetos
Herança
Pessoa
- nome: String
- idade: int Instâncias de Aluno
+definirNome(nome: Sting): void João
+retornarNome(): String
25
+definirIdade(idade: int): void
Sistemas de Informação
+retornarIdade(): int
Maria
20
Aluno Sistemas de Informação
- curso: String
+definirCurso(f: Sting): void
+retornarCurso(): String
12
29/04/2013
Orientação a Objetos
Herança
//SuperClass.java
public class SuperClass {
// Atributos e métodos
}
//SubClass.java
public class SubClass extends SuperClass {
// Atributos e métodos
}
Orientação a Objetos
Herança
int retornarIdade() {
return idade;
}
}
13
29/04/2013
Orientação a Objetos
Herança
Orientação a Objetos
Herança
Eletrodoméstico Liquidificador
Voltagem Fabricante
Garantia Cor
14
29/04/2013
Orientação a Objetos
Herança
Orientação a Objetos
Herança
15
29/04/2013
Orientação a Objetos
Herança
Orientação a Objetos
Polimorfismo
16
29/04/2013
Orientação a Objetos
Polimorfismo
Pessoa
Aluno Professor
Orientação a Objetos
Polimorfismo
Exemplo 01
public static main(String[] args) {
17
29/04/2013
Orientação a Objetos
Polimorfismo
Orientação a Objetos
Polimorfismo
18
29/04/2013
Orientação a Objetos
Polimorfismo
Exemplo 02
public static main(String[] args){
Aluno objetoAluno = new Aluno();
Professor objetoProfessor = new Professor();
printInfo(objetoAluno);
printInfo(objetoProfessor);
}
Orientação a Objetos
Polimorfismo
printInfo(objetoAluno);
printInfo(objetoProfessor);
}
19
29/04/2013
Orientação a Objetos
Modificadores de Acesso
public (público)
private (privado)
protected (protegido)
Orientação a Objetos
Modificadores de Acesso
public
acessada por qualquer outra classe.
nenhum modificador (package-private)
acessada somente dentro do seu pacote.
20
29/04/2013
Orientação a Objetos
Modificadores de Acesso
public
acessados por qualquer outra classe.
nenhum modificador (package-private)
acessados somente dentro do seu pacote.
private
acessados somente dentro de suas próprias classes.
protected
acessados somente dentro do seus pacotes e por suas subclasses.
Orientação a Objetos
Modificadores de Acesso
Classe/
modificador Atributos ou pacote subclasse todos
métodos
public
Sim Sim Sim Sim
protected
Sim Sim Sim Não
nenhum
Sim Sim Não Não
private
Sim Não Não Não
21
29/04/2013
Orientação a Objetos
Modificadores de Acesso
Pacote A Pacote B
SubClass
Alpha AlphaSub
Beta Gamma
public
Sim Sim Sim Sim
protected
Sim Sim Sim Não
nenhum
Sim Sim Não Não
private
Sim Não Não Não
29/04/2013 Programação de Computadores II 43
Orientação a Objetos
Construtores
class Pessoa {
String nome;
int idade;
public Pessoa(String nome, int idade) Pessoa maria =
{ new Pessoa(“Maria”, 20);
this.nome = nome;
this.idade = idade; Pessoa joao = new Pessoa();
}
public Pessoa()
{
this.nome = “João”;
this.idade = 25;
}
}
22
29/04/2013
Orientação a Objetos
Construtores
Orientação a Objetos
Construtores
public AloMundo() {
Date data = new Date();
Construtores mensagem = "Alô, Mundo” + data.toString() ;
}
public void mostrarMensagem() {
Métodos
System.out.println(mensagem);
}
}
23
29/04/2013
Orientação a Objetos
Construtores
String retornarNome() {
return nome; Pessoa p2 = new Pessoa();
} p2.definirNome(“Maria”);
p2.definirIdade(20);
void definirIdade(int valor) { System.out.println(p2.retornarNome() +
idade = valor;
“ “ + p2.retornarIdade());
}
}
int retornarIdade() {
return idade; } // fim da classe Pessoa
}
24