Escolar Documentos
Profissional Documentos
Cultura Documentos
ABSTRAÇÃO
Classes e Objetos
Programação Orientada a Objetos
Abstração
●Habilidade de se concentrar nos aspectos essenciais de um
contexto qualquer, ignorando características menos importantes
ou acidentais;
Classificando
Classificando
- Alunos
- Carteiras
- Cadeiras
- Quadros
- Professores
- Pessoas
Programação Orientada a Objetos
Classificando
Nome X
Cor do cabelo
Idade
Sexo
Programação Orientada a Objetos
Classificando
Classificando
- calças
- casacos
- camisas
- saias
- bolsas
- sapatos
- vestidos
Classificando
Tamanho
Modelo
Marca
Programação Orientada a Objetos
Classe
A classe é a unidade básica de trabalho em um programa
●
orientado a objetos;
dados;
Classe Pessoa
●Exemplos de Características / Atributos:
–Nome
–Idade
–Sexo
–Nacionalidade
–Raça
–etc
Programação Orientada a Objetos
Classe Pessoa
●Exemplos de Comportamentos / Métodos:
–Respirar
–Dormir
–Andar
–Comer
–etc
Programação Orientada a Objetos
Objeto
objetos;
Programação Orientada a Objetos
Atributos
–Sãoos dados (simples ou compostos) que caracterizam os objetos
daquela classe;
–São armazenadas em variáveis;
–Constituem o estado do objeto.
Métodos
–São as operações (procedimentos ou funções) que manipulam os
Programação Orientada a Objetos
Exercícios
–Cite 3 atributos e 3 métodos de cães
Exercícios
–Cite 3 atributos e 3 métodos de Cães
Atributos
●
–Raça Estado
–Nome
–Peso
Métodos
●
–Latir
–Andar
–Comer
Programação Orientada a Objetos
Exercícios
–Cite 3 atributos e 3 métodos de motos
Atributos
●
–Ano Estado
–Modelo
–Potência
Métodos
●
–Frear
–Acelerar
–Abastecer
Programação Orientada a Objetos
Orientação a Objetos
Objeto 1 Objeto 2
Objeto 3 Objeto 4
Programação Orientada a Objetos
–Idade
–CPF
–Identidade
–Sexo
–Andar
–Comer
Programação Orientada a Objetos
Representação UML
Classe Objetos
Pessoa p1
----------------------------------
Pessoa nome = Maria
-------------------------- Idade = 10
String nome cpf = 96678556923
int idade Identidade = 0788654567
Atributos String cpf sexo = F
String identidade
char sexo
-------------------------- Pessoa p2
andar ----------------------------------
comer nome = João
Métodos acordar Idade = 22
…. cpf = 95670954311
Identidade = 123456789
sexo = M
Programação Orientada a Objetos
Abstraindo Contextos
●Exemplos de uma Pessoa:
Exercício:
Pessoa
Tente abstrair modelos de pessoas para
diferentes situações:
●Um aluno de uma universidade;
●Cliente de uma livraria
●O operador new...
Pessoa cliente;
cliente = new Pessoa();
}
Aloca Memória e devolve um valor de
referência para o Objeto do tipo Pessoa
Programação Orientada a Objetos
class Programa {
public static void main (String[] args) {
Usar o ponto “.” para acessar os d
Pessoa cliente;
cliente = new Pessoa();
cliente.nome = “Maria”;
Pessoa p1
----------------------------------
Pessoa nome = Maria
-------------------------- Idade = 10
String nome cpf = 96678556923
int idade Identidade = 0788654567
Atributos String cpf sexo = F
String identidade
char sexo
-------------------------- Pessoa p2
andar ----------------------------------
comer nome = João
Métodos acordar Idade = 22
…. cpf = 95670954311
Identidade = 123456789
sexo = M
Programação Orientada a Objetos
Referência null
a nenhum objeto;
Programação Orientada a Objetos
Exercício
com 4 atributos.
Laboratório :
●
–Conta ● Gerente
● Conta corrente ● Caixa
● Conta poupança –Agência
–Investimento –Financiamento
–Contrato –Etc.
–Convênio
–Boleto Bancário
–Cheque
Programação Orientada a Objetos
Representação UML
Classe Objetos
Conta c1
--------------------------
Conta numero = 1122
-------------------------- nome = Maria
int numero tipo = corrente
String nome saldo = 1540.00
Atributos String tipo limite = 2000.00
double saldo
double limite
-------------------------- Conta c2
saca --------------------------
deposita numero = 3344
Métodos transfere nome = Pedro
…. tipo = poupança
Saldo = 5600.00
Limite = 0.00
Programação Orientada a Objetos
Classe em Java
Conta
● Atributos : O que toda conta deve ter?
●
● class Conta {
int numero;
String nome;
String tipo;
double saldo;
double limite;
…
Programação Orientada a Objetos
Classe em Java
Conta
● Métodos : O que toda conta pode fazer?
●
● class Conta {
...
// definição dos atributos
…
void saca(double valor) {
saldo = saldo – valor;
}
Programação Orientada a Objetos
Classe em Java
class Conta {
// definição dos atributos
int numero;
String nome;
String tipo;
double saldo;
double limite;
class Programa {
public static void main (String[] args) { Define e cria a variável minhaConta
Conta minhaConta;
minhaConta = new Conta();
}
Aloca Memória e devolve um valor de
referência para o Objeto do tipo Conta
Programação Orientada a Objetos
class Programa {
public static void main (String[] args) {
Usar o ponto “.” para acessar os d
Conta minhaConta;
minhaConta = new Conta();
minhaConta.saldo = 200.00;
minhaConta.nome = “Maria”;
}
}
Programação Orientada a Objetos
}
Programação Orientada a Objetos
minhaConta.saldo = 200.00;
minhaConta.nome = “Maria”;
minhaConta.deposita(450.00);
MinhaConta.saca(100.00)
Programação Orientada a Objetos
class Programa {
class Conta { Retorna um
boolean public static void main (String[] args) {
… Conta minhaConta = new Conta();
double limite;
minhaConta.saldo = 200.00;
● boolean saca(double valor) { minhaConta.dono = “Maria”;
if (this.saldo < valor) {
return false; if (minhaConta.saca(50.00)) {
} Todo método com System.out.println(“Conseguiu Sacar”);
com retorno de
eles { valores deve terminar }
com um return
this.saldo = this.saldo – valor; eles {
Programação Orientada a Objetos
minhaConta.saldo = 200.00;
Conta
minhaConta.nome = “Ana”; meuSonho --------------------------
nome = Ana
Saldo = 1000000.00
minhaConta = meuSonho;
System.out.println(minhaConta.saldo);
Programação Orientada a Objetos
} minhaConta.transferePara(contaDestino,100.00);
} System.out.println(minhaConta.saldo);
System.out.println(contaDestino.saldo);
}
Programação Orientada a Objetos
class Conta {
int numero; Quando não for informados o Banco e a
Agência, as contas serão criadas para o
String nome; Banco 0001 e Agência 1622
String tipo;
double saldo;
double limite;
int codigoBanco = 001;
int codigoAgencia = 1622;
...
}
Programação Orientada a Objetos
Sobrecarga de Métodos
Métodos de mesmo nome com assinaturas diferentes (tipos de
●
argumentos/parâmetros diferentes);
–Valor de retorno não é considerado parte da assinatura;
●Métodos sobrecarregados são resolvidos em tempo de compilação;
Programação Orientada a Objetos
Métodos Construtores
Nunca pode ter um tipo de retorno (isso é implícito pois ele retorna
●
Métodos Construtores
Toda vez que fizer
class Conta { new Conta(), vai
int numero; mostrar essa
double saldo; mensagem
double limite;
// construtor
Conta() {
System.out.println("Construindo uma conta.");
}
// ..
}
Construtor Padrão é criado pelo Java com o corpo vazio e executado sempre que não
houver outro declarado.
Toda classe tem um construtor padrão
Programação Orientada a Objetos
Métodos Construtores
Métodos Construtores
class Conta { class Programa {
int numero; ...
double saldo; …
double limite; Conta minhaConta = new Conta(1122,100.00);
...
// construtor
Conta(int numero, double limite) { //...
this.numero = numero; }
this.limite = limite;
}
// ..
}
Programação Orientada a Objetos
Referência this
●Todos os métodos de instância recebem um parâmetro implícito
chamado this que pode ser utilizado dentro do método de instância
para se referir ao objeto corrente;
// construtor
Conta(int numero, double limite) {
this.numero = numero;
this.limite = limite;
}
}
Programação Orientada a Objetos
Método finalize
●Java não implementa o conceito de “destrutores” (métodos
invocados para destruir a instância e liberar seus recursos);
–Para isso há o conceito de “coletor de lixo” (garbage collector)
●Contudo, há situações onde é interessante que ao destruir o
objeto, outros recursos, que não a memória, venham a ser
liberados.
Exercício de Fixação
Exercícios
–Criaruma classe Pessoa com os atributos: nome, idade,
sexo e telefone; e o método que retorna os dados de uma
Pessoa concatenados ('+').