Академический Документы
Профессиональный Документы
Культура Документы
Conceito de objeto
Orientao a Objetos
Princpios bsicos da OO
Reviso dos conceitos Conceito de classe
Prof. Cesar Augusto Tacla Atributos e Operaes
Objeto Objeto
Comportamento
Software: estrutura (fila, pilha, lista) Identidade operao
Objeto
Admisso: fev/1995
Cargo: prof. adjunto Cargo: prof. adjunto Tirar frias
oo
Depto: informtica
oo adjunto
Cargo: prof.
Depto: informtica SetarMaxAulas Depto: informtica
MxAulas: 12h/sem MxAulas: 12h/sem
MxAulas: 12h/sem
Es disc
co .
operao ia s
fr ar lh
er
T ir
1
Identidade de objetos Objeto: exemplo
Depois(15) Depois(1)
amarelo
amarelo
: Turma
Objeto annimo
2
Princpios bsicos de OO Abstrao
MODULARIDADE
ABSTRAO
HIERARQUIA
Define um limite (viso limitada) da
ABSTRAO
perspectiva do observador
ENCAPSULAMENTO
Um aluno algum que se matricula em
turmas ofertadas na universidade
Encapsulamento Encapsulamento
3
Exemplo de encapsulamento Modularidade
Aumentar a carga horria semanal mxima do professor Eclair
Decomposio de um todo
em partes menores (lgicas
ou fsicas) mais facilmente
ar
Lan
Nota
s administrveis e menos
complexas
SetarMax
MODULARIDADE
Aulas
Admisso: fev/1995
SetarMaxAulas(20) oo
Cargo: Professor adjunto
Depto: informtica
MxAulas: 12h/sem
Es disc
Exemplos: pacotes,
ia s
fr ar
co .
lh
er subsistemas
T ir
Sistema de matrculas
HIERARQUIA
Administrao Administrao
de dos Faturamento
disciplinas alunos
Menor abstrao
4
Classe Classe: representao em UML
t71:Turma
Exerccio rpido <<esteretipo>> -sala: B109
Turma -horario[2]: {m1_3f, m4_5f}
- sala: String -disciplina: IF53B
-prof: Simo
D um exemplo: - horario[]:Horario
-alunos[3]: {Jos, Joo, Maria}
- disciplina: Disciplina
de uma classe turma (atributos, operaes) - prof: Professor Valores em azul so referncias a objetos
- alunos[]: Aluno
de uma instncia de classe turma
+obterLocal() m1_3f:Horario
Utilize a notao UML
+SetarLocal() - inicio: 07:30
Outros setters e getters - durao: 2
+adicionarAluno() - diaSemana: 3
+excluirAluno()
objeto
5
PARTE I: Fundamental Atributos
<<esteretipo>>
<visibilidade>:
Aluno
+ pblico
- privada, somente mtodos da classe podem acess-lo - nome[30]: char
- sexo: char=f
# protegido, mtodos da classe e das classes derivadas
+ cdigo: int=0
podem acess-lo
#dataNasc: Date
~ de pacote ou default
operaes
<nome>: nome do atributo
<multiplicidade>: valores[5] ou matriz[4, 6]
<tipo>: char, float ou int.
<valor inicial>: deve respeita o tipo de dado.
Operao Operao
[<visibilidade>]<nome>([<lista argumentos>])[:<tipo>]
Operao especifica o que uma classe faz e a interface
para chamar estes servios <visibilidade>:
+ pblico
Mtodo a implementao de um servio que pode ser - privada, somente mtodos da classe podem acess-lo
invocado por outro objeto e afeta o comportamento do # protegido, mtodos da classe e das classes derivadas
objeto invocado podem acess-lo
~ de pacote ou default
Operaes podem mudar ou no o estado do objeto
<nome>: nome da operao
Assinatura: retorno + nome + parmetros <lista de argumentos>: (<nome>:<tipo>, ..., <nome><tipo>)
<tipo>: Tipo do dado retornado
6
Operao: exemplo
<<esteretipo>>
Aluno
- nome[30]: char
- sexo: char=f
+ cdigo: int=0
+calcularIdade():int
+mudarNome(nn:String):void