O que um Objeto?
Definies:
Alguma coisa que faz sentido no domnio da aplicao, Uma abstrao
Utilidade:
facilita a compreenso oferece base real para implementao no computador
Descrio de um Objeto
Um objeto pode ser descrito por um conjunto de atributos e comportamentos: Atributos
Motor Cor Potncia Rodas substantivos
Comportamentos
Avanar Retroceder Parar Abastecer verbos
Classe de Objetos
Grupo de objetos com os mesmos atributos e os mesmos comportamentos pertencem a mesma classe.
Classe
Define Estrutura e Comportamento (notao OMT) Exemplo
Nome da Classe
Atributo1:tipo=valor Atributo2:tipo=valor
Carro
Chassi: string Cor: integer Motor: Cmotor Ligar():void TemGasolina():boolean Virar(direo):void
Propriedades
Mtodos
Instncias
class Aplicao { Carro carros[];
public static void main(String arg[]) { Carro car1, car2, car3; car1 = new Carro(); car2 = new Carro(); Instanciando Objetos car3 = new Carro(); if (car1.TemGasolina()) { car1.ligar();} if (car2.TemGasolina()) { car2.ligar();} } }
Encapsulamento
Objeto 1
Caractersticas de um Objeto
Um objeto tem identidade nica, est em um dado estado e exibe comportamentos bem definidos. Identidade Estado Comportamentos
Classes
Semnticas
modelo de objetos (tempo de compilao) fbrica de objetos unidade de reuso
Agregao
Propriedades de um tipo de classe
Herana:
Uma classe (subclasse) herda as propriedades e mtodos de uma classe superior (superclasse)
Bomba
Controlador
Programa Principal
CControlador controlador; CBomba bomba1, bomba2; ... if (controlador.energizada(bomba2)) { controlador.ligar(bomba1);}
Empresa
Funcionrios
Funcionrio
Aluno
Professor
FuncionrioAdm
AlunoGraduao
AlunoPsGraduao
Funcionrio
Salario: valor CartTrab: string Admissao: data AlterarSal(float valor):void;
Aluno
Disciplinas: lista CDisc Inicio: CPeriodo PrevisaoFim: CPeriodo AlterarNota(float nota):void;
Mltipla
mais do que uma superclasse
Mista
simples de tipo mltipla de funcionalidade
Funcionrio
Salario: valor CartTrab: string Admissao: data AlterarSal(float valor):void;
Aluno
Disciplinas: lista CDisc Inicio: CPeriodo PrevisaoFim: CPeriodo AlterarNota(float nota):void;
Imagem
Nome: String; Tamanho : integer; formato : CformatoImg; Mostrar():void;
LinkImagem
Borda : boolean; Estilo : CEstilo; MostrarNomeLink();
Instrutor
Disciplina=CDisc; CargaHorria= float;
AlunoInstrutor
Disciplinas[]= CDisc; CDisc= CPeriodo; PrevisaoFim= CPeriodo; void AlterarNota(float nota);
class CAlunoInstrutor extends CPessoa implements CInstrutor{ CDisc Disciplinas[]; CPeriodo CDisc; CPeriodo PrevisaoFim; void AlterarNota(float nota); }
A tecnologia OO Modelagem
Criao de objetos Troca de mensagens Mudana da classe de um objeto Concorrncia/Coopera o entre objetos