Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
1
• Raimundo Aguiar Xavier
• Mestre em Informática (UFRJ) Linha pesquisa – Informática 
e Sociedade
• Pesquisador no Fernandes Figueiras(FioCruz) BLH – Banco 
de Leite Humano
• Atuo na área desde 1983 como técnico e professor
Apresentação
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
2
1. Dotar os alunos dos conhecimentos conceituais
2. Treinar os alunos em ferramenta CASE (Astah (antigo Jude 
Take) ou ArgoUML) para implementar os conceitos
3. Construir conhecimento desenvolvendo projetos com temas 
reais 
Objetivos
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
3
1. Recursos didáticos: Quadro, laboratório de informática, 
ferramenta case
2. Avaliações:
1. Conceitual - Prova escrita
2. Prática – Desenvolvimento e apresentação de projetos 
Metodologia
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
4
Referências Bibliográficas
BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas 
com UML. Rio de Janeiro: Elsevier / Campus
COAD, Peter, YOURDON, Edward.Análise baseada em objetos. Rio 
de Janeiro: Campus, 1991.
Furlan, José Davi. Modelagem de Objetos através da UML. São 
Paulo: Makron Books, 1998.
Internet
https://wikipedia.org
https://pt.wikipedia.org/wiki/UML
http://www.mundooo.com.br
http://www.omg.org/technology/documents/formal/uml.htm
https://wikipedia.org/
https://pt.wikipedia.org/wiki/UML
http://www.mundooo.com.br/
http://www.omg.org/technology/documents/formal/uml.htm
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
5
1. Introdução à AOO – Análise Orientada à Objetos
2. Introdução a UML – Linguagem de Modelagem Unificada
3. Diagramas da UML 2.5
3.1 Diagramas estruturais
3.1.1 Diagramas de classes
3.1.2 Diagramas de objetos
3.1.3 Diagramas de componentes
3.1.4 Diagramas de implementação ou instalação
3.1.5 Diagramas de pacotes
3.1.6 Diagramas de estrutura composta
3.1.7 Diagrama de perfil
Agenda
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
6
3.2 Diagrama comportamental
3.2.1 Diagrama de caso de uso
3.2.2 Diagrama de sequência
3.2.3 Diagrama de colaboração
3.2.4 Diagrama de transição de estados
3.2.5 Diagrama de atividade
Agenda continuação...
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
7
O que é modelagem?
https://pt.wikipedia.org/wiki/Modelagem_de_software
É a atividade de construir modelos que expliquem as características ou o comportamento
de algo que se queira entender. pode referir-se a:
AnyLogic - Um software de modelagem de simulação.
Arquitetura de dados - Uma estrutura dos componentes de dados de uma organização.
Modelagem de ameaças - Um processo dentro do ciclo de vida do desenvolvimento de
software seguro.
Modelagem ambiental - Visa prever eventos ou fenômenos ambientais a partir de
princípios gerais.
Modelagem computacional - Uma área de conhecimento multidisciplinar.
Modelagem conceitual - Descrição da semântica de aplicativos de software em um alto
nível de abstração.
Modelagem de dados - Um modelo que explique as características de funcionamento e
comportamento de um software.
https://pt.wikipedia.org/wiki/Modelagem_de_software
https://pt.wikipedia.org/wiki/AnyLogic
https://pt.wikipedia.org/wiki/Arquitetura_de_dados
https://pt.wikipedia.org/wiki/Modelagem_de_amea%C3%A7as
https://pt.wikipedia.org/wiki/Modelagem_ambiental
https://pt.wikipedia.org/wiki/Modelagem_computacional
https://pt.wikipedia.org/wiki/Modelagem_conceitual
https://pt.wikipedia.org/wiki/Modelagem_de_dados
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
8
Modelagem matemática - A área do conhecimento que estuda a
simulação de sistemas reais.
Modelagem molecular - Um termo coletivo que se refere aos
métodos para modelar ou mimetizar o comportamento das
moléculas.
Modelagem de processos de negócio - A atividade de representação
de processos de uma empresa.
Modelagem de processos químicos - Modelagem computacional
para o desenho de processos em engenharia química.
Modelagem tridimensional - O processo de desenvolvimento de
uma representação matemática de qualquer superfície
tridimensional de um objeto.
https://pt.wikipedia.org/wiki/Modelagem_matem%C3%A1tica
https://pt.wikipedia.org/wiki/Modelagem_molecular
https://pt.wikipedia.org/wiki/Modelagem_de_processos_de_neg%C3%B3cio
https://pt.wikipedia.org/wiki/Modelagem_de_processos_qu%C3%ADmicos
https://pt.wikipedia.org/wiki/Modelagem_tridimensional
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
9
Modelo de Reação-Difusão - Modelo de como são formados e
regulados padrões característicos durante o desenvolvimento de
embriões animais.
Modelagem de software - Uma atividade de construir modelos que
expliquem as características ou o comportamento de um software.
https://pt.wikipedia.org/wiki/Modelo_de_Rea%C3%A7%C3%A3o-Difus%C3%A3o
https://pt.wikipedia.org/wiki/Modelagem_de_software
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
10
Por que usar modelagem?
Ajuda a visualizar um sistema como ele é ou como
se deseja que ele seja
Permite especificar o comportamento e a
estrutura de um sistema
Oferece uma representação que guiará a
construção do sistema
Documenta as decisões tomadas pela avaliação
das alternativas propostas
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
11
Captura dos processos (Use Cases)
Melhora da comunicação entre as partes envolvidas
(Especialistas e Analistas)
Gerência da complexidade permitindo exibir várias
Visões dos elementos de modelo
Definição da Arquitetura lógica independente das
possíveis implementações
Permitir o reuso pela criação de componentes
Por que usar modelagem?
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
12
Auxilia:
▪ Avaliação dos riscos
▪ Definição do problema
▪ Gerenciamento do projeto
Por que usar modelagem?
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
13
Modelagem Visual
Modelagem Visual é a modelagem utilizando uma
notação gráfica padrão
Sistemas mais fáceis de se comunicarem
A visualização em Gráficos diminui a complexidade
Processos tornam-se mais claros
Define toda a arquitetura de software
Torna a reutilização muito mais significativa
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
14
1. Introdução a UML – Linguagem de Modelagem Unificada
2 - UML - Introducao.ppt
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
15
Motivação
Por que é importante manter diversas linhas de desenvolvimento?
“Uma vez que um software esteja em desenvolvimento, corrigir
um problema pode custar até 10 vezes mais do que corrigir o
mesmo problema no design. Caso o software tenha sido lançado,
este custo pode ser de até 100 vezes”. (Gibb, 1998)
0
10
20
30
40
50
60
tempo e
custo
fase do projeto
Custo das Mudanças
Definição
Desenvolvimento
Manutenção
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
16
Análise e Projeto de Sistemas Orientado a Objetos
Orientação a Objetos
“Uma nova maneira de pensar os problemas
utilizando modelos organizados a partir de
conceitos do mundo real. O componente
fundamental é o objeto que combina estrutura e
comportamento em uma única entidade”
(Rumbaugh)
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
17
Método OO
“Um sistema construído usando um método OO é
aquele cujos componentes são partes
encapsuladas de dados e funções, que podem
herdar atributos e comportamentos de outros
componentes da mesma natureza, e cujos
componentes comunicam-se entre si por meio de
mensagens.”
(Eduard Yourdon)
Análise e Projeto de Sistemas Orientado a Objetos
U.C.B.Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
18
Um sistema OO é dividido em componentes e não
mais em processos. As funções do sistema ficam
organizadas por afinidade e não mais por necessidade.
Por exemplo: em um programa estruturado, as
funções de Cliente estão espalhadas pelo programa de
cadastro, de compras, de contas a receber, etc... As
funções do Cliente em um sistema orientado a objetos
só podem estar no objeto Cliente e em nenhum outro
lugar.
Análise Estruturada X Orientada a Objetos
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
19
Os objetos possuem dados (propriedades, atributos)
e funções (comportamentos, métodos, serviços)
Em um sistema estruturado, fazer uma alteração na
estrutura dos dados pode ser uma enorme dor de
cabeça porque qualquer programa pode acessar
qualquer dado.
E aí vem a clássica pergunta: “Se eu alterar a
definição desse dado, quais programas serão
afetados?” No sistema OO os dados ficam
encapsulados às classes.
Análise Estruturada X Orientada a Objetos
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
20
Um objeto pode herdar dados e comportamentos
de outro
Há um meio de comunicação bem estabelecido
entre os componentes. Em vez de copiar e colar
trechos de programa, a OO simula o inter-
relacionamento dos objetos, tal qual acontece no
mundo real.
Análise e Projeto de Sistemas Orientado a Objetos
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
21
Objetos e Classes
Um Objeto é um componente do mundo real que é mapeado para o
domínio do sistema.
Classe é uma descrição dos atributos e serviços comuns a um grupo de
objetos.
Pode-se entender uma classe como sendo um molde a partir do qual
objetos serão construídos.
Também é comum dizer que um objeto é a instância de uma classe.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
22
Um objeto é qualquer coisa, real ou abstrata, na qual nós
armazenamos dados e as operações que manipulam os
dados
[ Martin ]
Um objeto ou uma instância é uma abstração de alguma
coisa no domínio do problema, refletindo as capacidades do
sistema de manter informações sobre ele, interagir com ele,
ou ambos, um encapsulamento de valores de atributos e
seus serviços exclusivos
[ Yourdon ]
Objetos
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
23
Um objeto é um ente independente, composto por:
– Estado Interno: uma memória interna em que valores
podem ser armazenados e modificados ao longo da vida
do objeto (conjunto de atributos ou variáveis de
instância).
– Comportamento: conjunto de ações pré-definidas
(denominadas métodos) através das quais o objeto
responderá a demanda de processamento por parte de
outros objetos;
Objetos
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
24
Um objeto possui identidade
É uma propriedade imutável e permanente que
distingue um objeto de outros, independentemente
de seu estado interno, e que não é perdida pelo
objeto ao longo de toda a sua vida;
Objetos
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
25
Classe é o agrupamento de objetos com a mesma
estrutura de dados (atributos) e comportamento
(operações) [ Rumbaugh ];
Classe é uma coleção de um ou mais objetos com um
conjunto uniforme de atributos e serviços, incluindo uma
descrição de como criar novos objetos na classe [
Yourdon ];
Descreve um conjunto infinito de objetos;
Cada objeto é dito ser uma instância de uma classe;
Classe
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
26
Classe Objetos
Cliente
Nome : String
Idade : Num
solicitarNotaFiscal()
efetuarPagamento()
Objetos e Classes
“Jorge Aragão”: Cliente
Nome : ”Jorge Aragão”
Idade : 74
solicitarNotaFiscal()
efetuarPagamento()
“Renata Silva”: Cliente
Nome : ”Renata Silva”
Idade : 22
solicitarNotaFiscal()
efetuarPagamento()
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
27
Quando se pensa em um cavalo, logo vem à mente um animal de
quatro patas, cauda, crina etc. Pode ser que algum dia você veja
dois cavalos, um mais baixo que o outro, um com cauda menor que
o outro, um com menos patas que o outro.
No entanto, você ainda terá certeza de estar diante de dois cavalos.
Isso porque a idéia (classe) cavalo está formada na sua mente,
independentemente das pequenas diferenças que possa haver entre
os exemplares (objetos) da idéia cavalo.
Objetos e Classes
Classe: Cavalo
Objetos:
Burronildo Remeleco
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
28
Orientação a Objetos
Encapsulamento Herança Polimorfismo
Abstração
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
29
Abstração
Alguns princípios se tornam fundamentais para a
administração da complexidade de um domínio de
problemas e das responsabilidades de um sistema.
O primeiro destes princípios é a abstração:
Abstração. Princípio de ignorar os aspectos de um
assunto não relevantes para o propósito em questão,
tornando possível uma concentração maior nos
assuntos principais. [Oxford, 1986]
A abstração consiste então na seleção que um
analista faz de alguns aspectos, ignorando outros,
desprendendo-se de detalhes irrelevantes.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
30
Abstração
Os brinquedos são um excelente exemplo de
abstração.
Um carro miniatura destinado a uma criança não
deverá possuir um tanque de gasolina. Sabemos, e
as crianças também sabem, que o tanque está
presente no modelo real, mas as crianças sabem que
não podem brincar com um carro destes, portanto
este, e outros aspectos foram ignorados.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
31
Quase tudo com que lidamos no mundo real – pessoas,
lugares, coisas e conceitos – é intrinsecamente
complexo, muito mais complexo do que podemos
imaginar em um primeiro momento.
Quando usamos a abstração, admitimos que o que
estamos considerando é complexo; em vez de tentar
compreender o todo, selecionamos parte dele. Sabemos
que existem detalhes adicionais; simplesmente optamos
por não considerá-los neste plano ou neste momento.
Esta é uma das principais formas de administrar a
complexidade.
Abstração
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
32
É o resultado (ou ato) de
se esconder os detalhes
de implementação de um
objeto do usuário;
[ Martin ]
Encapsulamento
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
33
Consiste em separar os aspectos externos de um objeto,
que são acessíveis para outros objetos, dos detalhes
internos de implementação do objeto;
[ Rumbaugh ]
Qualquer mecanismo que nos permita “esconder” a
implementação do objeto fazendo com que outros
componentes do sistema não tenham conhecimento do
conteúdo interno dos dados armazenados no objeto;
[ Yourdon ]
Encapsulamento
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
34
A comunicação entre objetos é feita através de
mensagens enviadas para as operações;
A implementação de um objeto pode ser mudada sem
afetar as aplicações que o usam;
Facilidade de manutenção.
Encapsulamento
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
35
É a forma sugerida pela OO de agrupar estrutura
e comportamento dentro de um único modelo.
Encapsulamento
Funções (métodos)
Dados (atributos)
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
36
Os objetos “escondem” sua estrutura interna e a
implementação de seus serviços. Os dados de um objeto
são acessados por outros objetos somente se o objeto
disponibilizar funções de acesso a seus dados.
Encapsulamento
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
37Princípio do Encapsulamento: A implementação de um
objeto requisitado não importa para um objeto requisitante
Objeto: caneta
cor da tinta
tipo de ponta
escrever
public class caneta {
private String cor
private String tipo_ponta
public function escrever (){
}
public function abrir () {
}
public function fechar () {
}
}
Encapsulamento
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
38
Encapsulamento
Características
- Tudo o que diz respeito a um determinado
objeto deve estar contido no próprio objeto.
- A implementação de um objeto requisitado
não interessa a um objeto requisitante.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
39
Encapsulamento
O encapsulamento reduz o trabalho no
desenvolvimento de um novo sistema.
O aninhamento dos dados e das funcionalidades que
dizem respeito a um mesmo objeto diminui o fluxo
entre as diferentes partes de um sistema e reduz
significativamente a dificuldade dentro de um
processo de alteração contínua.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
40
Herança
Mecanismo para expressar a similaridade entre
classes, simplificando a definição de classes iguais a
outras que já foram definidas.
Ela representa generalização e especialização,
tornando explícitos os atributos e métodos comuns
em uma hierarquia.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
41
É o mecanismo de reutilização de atributos e métodos
definidos em classes gerais por classes mais específicas.
Generalização / Especialização
Uma classe filha herda características de outra (pai), diz-
se que a filha é uma especialização. E que a classe pai é
uma generalização.
Herança
Veiculo
Veiculo AquaticoVeiculo Terrestre
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
42
Herança
Aqui nasce um importante conceito, que foi uma das
principais motivações da busca por novas
metodologias de análise e programação de sistemas.
Reutilização
Colocar em ação ou usar novamente um serviço;
empregar ou aplicar novamente para um
determinado propósito.
[Webster’s, 1977]
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
43
Reutilização
Na análise, reutilizar é incorporar resultados
obtidos em análises anteriores na análise atual.
Ou no nosso caso específico, a característica de
herança, é utilizar os métodos ou atributos escritos
em classes superiores nas classes filhas, tornando
desnecessário reescrever tais métodos ou atributos
novamente.
Herança
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
44
Herança
Os atributos e métodos de uma classe são
automaticamente repassados a suas subclasses
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
45
Na herança, classes
semelhantes são agrupadas
em hierarquias.
Cada nível de uma hierarquia
pode ser visto como um nível
de abstração.
Cada classe em um nível da
hierarquia herda as
características das classes nos
níveis acima. Desta forma, as
diferenças ou variações de
uma classe em particular
podem ser organizadas de
forma mais clara.
Herança
Veiculo
Veiculo AquaticoVeiculo Terrestre
Veiculo Duas Rodas Veiculo Quatro Rodas
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
46
Herança Múltipla
Para aqueles que já se perguntaram: Uma classe
pode herdar características de mais de uma classe?
A resposta é SIM. Uma classe pode ter mais de uma
superclasse.
Neste exemplo o carro anfíbio possui tanto
características de um carro quanto de um barco.
Carro Barco
Carro Anfíbio
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
47
Classes Abstratas
Já aprendemos que objetos são instâncias de uma
classe. Cientes disto, poderíamos afirmar que toda
classe deve cumprir a função de instanciar ao
menos um objeto.
Mas isto não é verdade!
Existem as chamadas classes “concretas” e classes
abstratas.
Classes concretas se encaixam na afirmativa acima.
Elas foram modeladas para que algum objeto seja
instanciado a partir delas.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
48
Classes Abstratas
Classes abstratas não podem ter objetos instanciados
a paritr delas.
Servem para organizar um modelo de hierarquia de
generalização.
Propriedades comuns a diversas classes podem ser
organizadas e definidas em uma única classe
abstrata da qual as subclasses herdam.
Obs: Classes abstratas só existem em hierarquias,
quando se aplica herança.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
49
Classes Abstratas
Subclasses de uma classe abstrata também podem ser
abstratas, mas abaixo delas deverá existir sempre uma ou
mais classes concretas para finalizar a hierarquia.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
50
Interfaces
Uma interface especifica características que
deverão ser implementadas por alguma classe.
Um conceito similar ao das bibliotecas de
implementação.
No entanto, uma interface apenas descreve as
assinaturas dos métodos e atributos que uma
classe deve herdar, cabendo a esta, construir a
implementação.
Quando uma classe herda de uma interface, esta
deve implementar todos os métodos contidos na
interface.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
51
Classes Abstratas e Interfaces
Herança de Classes Abstratas versus Herança
de Interfaces
Enquanto a herança de classes descreve um
modelo de ponto de partida para a criação de
novas classes, a interface descreve o ponto de
partida para implementação das ações de um
objeto.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
52
Polimorfismo
Muito provavelmente, na fase de criação das
classes, quando se está definindo os métodos,
pode surgir a dúvida: “... será que eu poderia
criar um procedimento em que o código mudasse
em tempo de execução?”.
Este é o princípio do polimorfismo.
Por exemplo, dependendo da quantidade de
parâmetros o código se comporta de uma forma
ou de outra. Ou mesmo, dependendo do objeto
requisitado, o resultado de um método é A ou B.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
53
Polimorfismo
A grande vantagem do uso do polimorfismo é a
flexibilidade. Quando um novo objeto de uma nova
classe é adicionado ao modelo, qualquer
modificação afetaria apenas esse novo objeto e não
quem envia a mensagem.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
54
Polimorfismo
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
55
Polimorfismo
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
56
Construtores são métodos especiais chamados pelo
sistema no momento da criação de um objeto;
• Servem para inicializar objetos de forma
organizada;
• Devem ter o mesmo nome da respectiva classe;
• Não possuem valor de retorno;
• Pode haver mais de um construtor por classe
(overloading ou sobrecarga de métodos);
Métodos Construtores
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
57
class Conta {
String numero;
double saldo;
void credito (double valor) {
saldo = saldo + valor;
}
void debito (double valor) {
saldo = saldo - valor;
}
Conta (String n) {
numero = n; saldo = 0;
}
}
Métodos Construtores
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
58
...
Conta conta1;
conta1 = new Conta(“21.342-7”);
conta1.credito(500.87);
conta1.debito(45.00);
System.out.println(conta1.saldo);
....
Métodos Construtores
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
59
...
Conta conta1;
conta1 = new Conta();
conta1.credito(500.87);
conta1.debito(45.00);
System.out.println(conta1.saldo);
....
O construtor default foi perdido
MétodosConstrutores
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
60
A presença de coleta automática de lixo torna o
conceito de destrutores um pouco diferente de seus
equivalentes em outras linguagens OO;
Em Java destrutores são métodos chamados pelo
sistema quando a memória de um objeto está para
ser liberada pelo coletor automático de lixo (não
quando está para ser coletada);
Você pode chamar o destrutor, mas isso não implica
que o objeto será deletado;
Métodos Destrutores
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
61
Métodos Destrutores
...
protected void finalize{
this.my_database.Close( );
}
...
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
62
Sobrecarga (Overload)
Em linguagens OO, os métodos são diferenciados pelo
nome, e pelo número, tipo e posição dos argumentos;
Isto vale para qualquer método e não apenas para os
construtores;
Sobrecarga também é conhecida como sobreposição.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
63
Sobrecarga de Métodos
Métodos numa mesma classe com mesmo nome, que
apresentem tipo e/ou quantidade de parâmetros
diferentes são métodos sobrecarregados.
Sobrecarga (Overload)
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
64
class Conta {
String numero;
double saldo;
void credito (double valor) {saldo = saldo + valor;}
void debito (double valor) {saldo = saldo - valor;}
void debito () {saldo = saldo - (int)saldo;}
Conta (String n) {numero = n; saldo = 0;}
}
Sobrecarga (Overload)
Sobrecarga de Métodos
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
65
class CriaConta {
public static void main (String[] args) {
Conta conta1 = new Conta (“678-9”);
conta1.credito(500.86);
conta1.debito(100);
System.out.println(conta1.saldo);
conta1.debito();
System.out.println(conta1.saldo);
}
}
Sobrecarga (Overload)
Sobrecarga de Métodos
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
66
class Conta {
String numero;
double saldo;
void credito (double valor) {saldo = saldo + valor;}
void debito (double valor) {saldo = saldo - valor;}
Conta () {saldo = 0;}
Conta (String n) {numero = n; saldo = 0;}
Conta (String n, double v) {numero = n; saldo = v;}
}
Sobrecarga de Construtores
Sobrecarga (Overload)
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
67
class CriaConta {
public static void main (String [] args) {
Conta conta1 = new Conta ();
Conta conta2 = new Conta (“44.222-6”);
Conta conta3 = new Conta (300, “21.342-7”);
System.out.println(conta1.saldo);
System.out.println(conta2.saldo);
}
}
Sobrecarga de Construtores
Sobrecarga (Overload)
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
68
Qualquer tentativa de redefinição de método na mesma
classe causará um erro de compilação.
O que define um método é sua assinatura (lista de 
argumento) - portanto não adiantaria tentar enganá-lo 
como o código a seguir:
public class Empregado {
public double getSalario() { }
public double getSalario() { }
}
Sobrecarga (Overload)
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
69
Sobreescrita (Override)
Um método numa subclasse que possua a mesma
assinatura (mesmo nome, quantidade e tipo de
parâmetros e tipo de retorno) que outro na
superclasse está em sobreescrita ou override.
Também conhecido como substituição ou
redefinição.
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
70
Substituir um método como o próprio nome já diz,
significa cancelar um método de uma superclasse
em uma subclasse dando-o um outro sentido, ou
técnicamente, um outro código - portando infere-se
que eu só posso substituir um método se houver
herança caso contrário não existe substituição de
método.
Sobreescrita (Override)
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
71
public class Empregado {
public double getSalario() { }
}
public class Horista extends Empregado {
public double getSalario() {
// código que retorna salário em horas
}
}
public class Mensalista extends Empregado {
public double getSalario() {
// código que retorna salário mensal
}
}
Sobreescrita (Override)
U.C.B. Professor Raimundo Baliu
Modelagem de Sistemas com UML - Introdução OO
72
Observe que o método getSalario nas subclasses têm
comportamento distintos nas subclasses - isso devido ao
fato de ter sido substituído nas subclasses.
Observe ainda que o método nas subclasses se manteve
idêntico ao método da superclasse no que se refere a
assinatura do método (lista de argumentos) - se essa
assinatura tivesse sido alterada, não seria substituição
(override) e assim sobreposição ou sobrecarga
(overload) - muita atenção com isso, mas estudaremos
isso mais a frente.
Sobreescrita (Override)

Mais conteúdos dessa disciplina