









Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Neste documento, nelson freire apresenta as principais relações entre classes em programação orientada por objetos (poo). Ele discute as dependências entre classes, como herança, agregação, composição e associação. Além disso, ele explica os tipos de relações entre classes e fornece exemplos e notação uml para ilustrar as ideias.
Tipologia: Notas de aula
1 / 16
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Sumário
Classes
Tipos de Relações entre Classes
Classes
Relação de Herança
Classes
Subclasse Superclasse
Relação de Agregação
Objeto agregador tem referência partilhada
do objeto agregado.
Classes
Classe Agregadora Classe Agregada
Relação de Composição
Classes
Classe Agregadora
ou
Classe Composta
Classe Agregada
public class Demo {
private Data data ; // classe Data agregada à classe Demo (objeto Demo tem uma Data)
// objetos Data caracterizados por ano, mês e dia
... // referência guardada pode ser partilhada com variável fora de obj
public Demo( ..., Data data ){ // parâmetro data recebe cópia da referência de um objeto data
this. data = data ; // data guarda a referência recebida
} // referência pode ser partilhada com variável fora de objeto Demo
public Data get Data () {
return data ; // retorna referência guardada em data
} // permite partilha da referência retornada referência de data
public void set Data ( Data data ) {
this. data = data; // data guarda referência recebida
} // referência pode ser partilhada com variável fora de objeto Demo
public String toString() {
return ... + " Data: " + data ;
Classes
referência
data
ano Objeto
da
Classe
Data
dia
Parâmetro data referência
mes
public class Demo {
private Data data ;
public Demo( ..., Data data ){
this. data = data ;
public Data get Data () {
return data ;
public void set Data ( Data data ) {
this. data = data;
Classes
public class Demo {
private Data data ; // guarda referência não partilhada ... com variável fora de objeto Demo
public Demo( ..., Data data ){
this. data = new Data( data ); // construtor de cópia da classe Data
... // cria objeto clone do objeto data recebido
} // data e data são 2 objetos iguais
... // data guarda nova referência de Data
public Data get Data () {
return new Data( data ) ; // retorna referência de novo objeto Data, clone de data
} // não retorna referência guardada em data
... // mantém referência não partilhada em data
public void set Data( Data data ){
this. data.setData( data.getAno(), // setData da classe Data modifica apenas conteúdo da data
data.getMes(), // não cria novo objeto Data em cada modificação
data.getDia() ) ; // poupa memória
} // mantém referência não partilhada em data
public String toString(){
return ... + " Data:" + data ;
Classes
referência Y
data
ano 1
Objecto
de
Data
dia 1
Parâmetro data referência X
mes 1
ano 2
Objecto
de
Data
mes 2
dia 2
public class Demo {
private Data data ;
public Demo( ..., Data data ){
this. data = new Data( data );
public Data get Data () {
return new Data( data ) ;
public void set DataRegisto ( Data data ) {
data. setData( data .getAno(),
data .getMes(),
data .getDia() ) ;
Classes
Relação de Associação
Classes