O que é composição em Java com exemplos

Publicados: 2022-11-19

A versatilidade da linguagem de programação Java permite a reutilização de código enquanto reduz a duplicidade entre as classes. Java facilita a reutilização de código construindo relacionamentos entre classes, e esses relacionamentos são de dois tipos: herança e associação. Enquanto a herança nos permite implementar um relacionamento é-um e criar uma nova classe a partir de uma classe existente, a associação ou relacionamento tem-um garante a reutilização do código.

O relacionamento tem-um é dividido em duas categorias: agregação e composição em Java . Este artigo explorará o conceito de composição em Java e ajudará você a entender seus fundamentos com exemplos.

Índice

Uma visão geral dos relacionamentos em Java

Relacionamentos em Java referem-se às diferentes maneiras pelas quais as classes estão relacionadas. Em geral, existem dois tipos de relacionamentos em Java:

  • é um relacionamento
  • tem um relacionamento

Composição em Java

Fonte

É um relacionamento (herança)

O recurso de herança em Java nos permite implementar relacionamentos is-a. Nesse caso, uma classe herda outra classe. Por exemplo, se uma classe 'Flor' herda outra classe, 'Lily', podemos dizer que a classe 'Lily' tem um relacionamento é-um com 'Flower'. Também implica que Lily é uma flor.

Exemplo: Lily 'é uma' flor, computador 'é um' dispositivo e assim por diante.

Tem um relacionamento (Associação)

Um relacionamento tem-um significa que uma classe usa a instância de outra classe, e tal relacionamento em Java é chamado de associação. Por exemplo, se uma classe P contém a referência de outra classe Q, isso implica que P pode acessar todas as propriedades da classe Q.

Exemplo: Computador 'tem um' processador, abelha 'tem um' ferrão, etc.

Uma associação em Java é um relacionamento entre duas classes distintas usando seus objetos. A relação pode ser dos seguintes tipos:

  • Um-para-muitos: um objeto se associa a vários objetos.
  • Um-para-um: Um objeto é associado a um único objeto.
  • Muitos para muitos: muitos objetos se associam a outros objetos múltiplos.
  • Muitos-para-um: Muitos objetos se associam a um objeto.

A associação é de dois tipos: agregação e composição.

Composição em Java

Composição em Java é uma técnica de design para implementar relacionamentos entre classes. Nessa associação, uma classe contém outra classe. Além disso, a classe contida depende da classe recipiente e não pode existir independentemente. Em outras palavras, uma classe inclui outra classe com funcionalidade interdependente.

Por exemplo, uma classe 'Car' contém as classes 'Engine' e 'Battery'. Assim, 'Car' está em um relacionamento com 'Motor' e 'Bateria', e os dois últimos não podem existir independentemente sem 'Carro'.

Vamos considerar outro exemplo da vida real. Um corpo humano tem rins e os órgãos não podem existir sem um corpo humano. Assim, se pensarmos que 'Human' é uma classe com um relacionamento com a classe 'Kidneys', é um exemplo de composição em Java, pois os rins não podem existir independentemente sem um corpo humano.

Webinar de desenvolvimento de software exclusivo da upGrad para você –

SAAS Business – O que há de tão diferente?

Exemplo de implementação de composição em Java

Agora considere o seguinte programa demonstrando o conceito de composição em Java . Vamos dividir em etapas para melhor entendimento.

Etapa 1: Na primeira etapa, criaremos uma classe 'Car' e declararemos e definiremos métodos e membros de dados.

carro de classe

{

// declarando membros e métodos de dados

Cor da corda privada;

velocidade int privada;

public void carFeatures()

{

System.out.println(“Cor do Carro= “+cor + ” Velocidade Máxima= ” + velocidade);

}

public void setColor(Cor da string)

{

this.color = cor;

}

public void setspeed (velocidade int)

{

this.speed = velocidade;

}

}

Passo 2: A seguir, criaremos uma classe 'Fiat' que estende a classe 'Carro' acima. A classe 'Fiat' usa o método start() do objeto da classe FiatEngine por meio de composição, implicando que a classe 'Fiat' 'tem-um' FiatEngine. Fiat é um carro, por isso se estende da classe 'Car'.

classe Fiat estende carro

{

//herda todas as propriedades da classe Car

public void setStart()

{

MotorFiat e = new MotorFiat();

e.start();

}

}

Passo 3: No próximo passo do programa de composição Java, criaremos uma classe FiatEngine através da qual utilizaremos o objeto classe na classe acima 'Fiat'.

classe FiatMotor

{

public void start()

{

System.out.println(“Motor iniciado.”);

}

public void stop()

{

System.out.println(“O motor parou.”);

}

}

Passo 4: No passo final do programa, vamos criar uma classe CompositionExample, fazer um objeto da classe 'Fiat' e inicializá-lo.

classe CompositionExample

{

public static void main(String[] args)

{

Fiat f = new Fiat();

f.setColor(“Preto”);

f.setspeed(175);

f.carFeatures();

h.setStart();

}

}

Resultado:

Cor do Carro= Preto Velocidade Máxima= 175

O motor deu partida.

Aprenda Cursos de Desenvolvimento de Software online nas melhores universidades do mundo. Ganhe Programas Executivos de PG, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Agregação e composição em Java

Agregação e composição em Java são os dois tipos de relacionamento tem-um, sendo ambos diferentes em termos de dependência entre as classes. Na agregação, o contêiner e as classes de referência têm uma existência independente, enquanto uma classe de referência de composição deixa de existir sem uma classe de contêiner. Assim, uma classe de referência é dependente de sua classe de contêiner na composição.

Aqui está um exemplo da vida real para entender a diferença entre agregação e composição em Java . Um carro tem várias peças, como motor, freios, bateria, faróis, reprodutor de música, etc. Embora o carro possa funcionar sem um reprodutor de música, ele não pode funcionar sem peças essenciais, como motor ou bateria. Portanto, podemos dizer que o carro e o tocador de música têm uma relação de agregação, enquanto o motor e o carro têm uma relação de composição.

Quais são os benefícios de usar composição em Java?

Agora que você tem uma compreensão fundamental do conceito de composição em Java, aqui está uma visão geral dos benefícios dessa técnica:

  • A composição em Java facilita a reutilização do código.
  • A composição em Java nos permite controlar a visibilidade de outros objetos para as classes clientes e reutilizar o que precisamos.
  • Embora Java não suporte heranças múltiplas, podemos contorná-lo usando composição.
  • A composição em Java é flexível e nos permite alterar os objetos membros em tempo de execução para alterar o comportamento do programa.
  • A composição Java oferece melhor capacidade de teste de classe, um recurso particularmente útil no desenvolvimento orientado a testes.
  • Um design baseado em composição tem menos classes.

Cursos e artigos populares sobre engenharia de software

Programas Populares
Programa Executivo PG em Desenvolvimento de Software - IIIT B Programa de Certificação Blockchain - PURDUE Programa de Certificação de Segurança Cibernética - PURDUE MSC em Ciência da Computação - IIIT B
Outros artigos populares
Salário de engenheiro de nuvem nos EUA 2021-22 Salário do arquiteto de soluções da AWS nos EUA Salário do desenvolvedor de back-end nos EUA Salário do desenvolvedor front-end nos EUA
Salário do Desenvolvedor Web nos Estados Unidos Perguntas da entrevista do Scrum Master em 2022 Como iniciar uma carreira em segurança cibernética em 2022? Opções de carreira nos EUA para estudantes de engenharia

Conclusão

A composição em Java é uma excelente técnica se o relacionamento entre as classes for has-a e você estiver procurando reutilizar o código. Resumindo, aqui estão alguns pontos-chave que você precisa lembrar sobre composição em Java:

  • A composição em Java representa um relacionamento tem-um.
  • Na composição, uma classe contém outra classe e a classe contida depende da classe que a contém e não pode existir independentemente.
  • Ambas as entidades em uma associação de composição dependem uma da outra.
  • Podemos obter composição em Java por meio de uma variável de instância que se refere a outros objetos.

Melhore sua carreira com o Programa Executivo PG em Desenvolvimento de Software da upGrad

O desenvolvimento de software é uma das opções de carreira mais lucrativas para jovens profissionais. Se você já está no setor ou deseja começar, deve se inscrever no Programa Executivo PG em Desenvolvimento de Software da upGrad . O programa ensina habilidades sob demanda e as dez linguagens e ferramentas de codificação mais bem pagas . Você pode escolher entre quatro especializações, incluindo Blockchain Development, Full Stack Development, DevOps e Cloud Backend Development.

Além de aprender as linguagens de programação mais bem pagas , você pode trabalhar em mais de 30 estudos de caso e projetos. Membros do corpo docente de classe mundial fazem palestras ao vivo e sessões on-line para o curso. O suporte ao aluno está disponível 24 horas por dia.

Inscreva-se agora para obter admissão no curso o mais cedo possível!

O que é composição e herança em Java?

Composição e herança em Java são duas técnicas de programação para estabelecer relacionamentos entre objetos e classes. A composição representa um relacionamento tem-um com uma classe que contém outra classe. Por outro lado, a herança exibe um relacionamento é-um com uma classe adquirindo as propriedades e o comportamento de outra classe.

Qual é o propósito da composição em Java?

A composição em Java permite a reutilização de código e fornece melhor testabilidade de uma classe. Embora Java não suporte heranças múltiplas, a composição fornece uma maneira de fazer isso.

A composição é um OOP?

A composição é um conceito fundamental na programação orientada a objetos. Ele descreve um relacionamento tem-um em que uma classe faz referência a um ou mais objetos de outras classes por meio de variáveis ​​de instância.