Dúvida sobre variável com classe

2 respostas Resolvido
java
Zian

Boa noite! Estou com uma dúvida sobre o seguinte código

‘’’

public class Main {

private Player player;

private Inimigo inimigo;

‘’’

Player e inimigo são classes, mas o que essas variaveis fazem em relação a à classe logo atrás? retorna somente os atributos e metodos dela na classe Main? é uma variavel somente disponivel para a classe? não consigo entender e nem achei um termo sobre isso… Grato!

2 Respostas

A

Os atributos referem-se a tecnica de “Composicao” na orientacao a objetos, elas compoe a classe que as tem.

Por possuir o atributo private sim, passa a ser visivel somente na classe q a tem.

I
Solucao aceita

O que o @andredecotia disse é um grande “depende”. De uma maneira genérica, as classes Player e Inimigo são relacionamentos do tipo associação, isto é, objetos da classe Player e Inimigo se relacionam com objetos da classe Main. De outra forma, pode-se dizer que os objetos da classe Player e Inimigo estão habilitados a trocar mensagens com objetos da classe Main por serem membros de Main. Se detalharmos mais como essa associação ocorre, percebemos que os objetos das classes Player e Inimigo agregam valor a objetos a classe Main. Logo, o todo (classe Main) precisa das partes (classes Player e Inimigo) para ser completamente especificada. Essa relação todo parte é necessária para as partes? Ou seja, se não existir nenhuma instância (objeto) da classe Main, os objetos da classe Player e Inimigo deixam de existir ou fazer sentido no sistema? Se um objeto m da classe Main for ‘extinto’, os objetos p e i que estavam a ele vinculados deverão ser ‘extintos’ junto com m? E se p e i forem ‘extintos’, m também deverá obrigatoriamente ser extintos? Somente respondendo a essas perguntas pode-se detalhar a agregação para definir se ele é uma composição.
A agregação é uma associação em que uma classe é detalhada (tem parte de suas informações, ou seja, atributos) por outras classes. No entanto, esse detalhamento não é necessário ao todo para que ele exista no modelo (e no sistema), não é uma necessidade. Por outro lado, e da mesma forma, as partes do todo existem (fazem sentido) no modelo (e no sistema) sem estarem vinculadas ao todo. Explico: suponhamos duas classes: Banco e Cliente. Se o banco b1 ‘falir’ os seus clientes deixam necessariamente de ser clientes de banco, ou podem passar a ser clientes do banco b2? Parece justo supor que sim. De outra forma, se o cliente c7 encerrar a sua conta no banco b2, o banco b2 necessariamente irá falir? Também parece razoável que não. Logo, entre o banco e seus clientes, existe uma relação de agregação. Na composição, por sua vez, que o todo deixar de existir ele deve excluir também as suas partes ou, se as partes forem extintas, o todo necessariamente será extinto. na composição é uma relação direta entre as instâncias. Suponhamos que temos a classe Casa e a classe Parede. A casa é um agregado de paredes, mas essa agregação é essencial, necessária à casa. Logo, a casa é uma composição de paredes. Se a casa c1 tiver as paredes p1, p2, p3 e p3, se o objeto c1 for extinto, as pardes deverão necessariamente ser extintas. Não dá para colocar as paredes p1, p2, p3 e p4 na casa c12. Da mesma forma, mas sobre outro ponto de vista, se as paredes forem demolidas, a casa como um todo vem a baixo.
Resumo da opera: pelo exposto, só dá para detalhar até o nível de agregação a associação entre as classes Main, Player e Inimigo. Nesse caso específico, creio eu a existência de Main se justifica simplesmente para testar as classes Player e Inimigo.
Já sobre a visibilidade private, o que foi dito está correto.

Criado 11 de maio de 2020
Ultima resposta 11 de mai. de 2020
Respostas 2
Participantes 3