Exercicio Java

4 respostas
F

E aí pessoal, blz?

Estou com dificuldades no seguinte exercicio:

Tenho a seguinte representaçao de classes:

empresa( nome, cnpj, e nomedepto(array com 10)

departamento(nome, funcionarios(array com 100)

funcionario(nome,salario,dataadmissao)

Tenho as 3 classes interligadas.

Tenho que usar aqui conceito de herança,classe abstrata?

Na criaçao de array para funcionario, este tem 3 campos: nome, salario,dataadmissao.

Como crio esse array?

Se alguem puder me dar uma orientaçao.

Obrigado.

4 Respostas

KaiqueF

cara, pelo q vc falou, está mais para agregação do q herança. O q exatamente vc precisa fazer?

kbardock15

Se o que você quer fazer é tipo uma struct que usava em C, só criar uma classe para o funcionario.

perdeu

Herança seria algo assim, vc teria a classe funcionario e alguns especializacóes, como gerente, segurança, programador…e por aqui vai…

Trebloc

Normalmente, pelo que você postou, seria assim:

- Uma empresa possui 1 ou mais departamentos, num limite de 10.
- Um departamento possui 1 ou mais funcionários, num limite de 100. Um departamento só pode fazer parte de uma empresa.
- Um funcionário só pode ser de 1 departamento.

Assim, você usaria agregação.

Numa explicação rápida:

Herança -> a classe A herda de B quando ela é uma especialização de B, sendo chamada de subclasse de B. B, portanto, é uma generalização de A e também a superclasse dela. Pra facilitar, usamos a regra do "é um": um gerente É UM funcionário, logo a classe gerente seria uma especialização de funcionário:

class Gerente extends Funcionario

Em Java, muitas vezes a superclasse é abstrata, de modo que não pode ser instanciada. Um exemplo clássico é das classes Pessoa e Funcionário:

abstract class Pessoa {
    ...
}

class Funcionario extends Pessoa {
    ...
}

Você não quer que existam pessoas genéricas, apenas funcionários (ou objetos de outras classes que herdem de Pessoa).

Agregação -> a classe A é agregada em B se a classe B mantém uma coleção de objetos de A (como um array). Aplica-se a regra do TEM UM: um fórum TEM UM usuário, logo usuário é agregado em fórum:

class Forum {
    ...
    private Usuario[] usuarios;
    ... 
}

Composição -> mesma ideia da agregação, também utilizando a regra do TEM UM. A diferença é que a composição é mais forte que a agregação: se um objeto A é composto por um ou mais objetos de B, A não tem sentido de existir sem B. Exemplo: um carro TEM UM motor, sendo que um carro sem motor não tem sentido, uma vez que não cumpre o seu objetivo principal (transportar pessoas ou objetos), assim como um motor sem carro também não tem muita utilidade.
A empresa, no entanto, pode existir sem nenhum funcionário, assim como um funcionário pode continuar existindo mesmo sem estar em uma empresa.
Outra dica é que, normalmente, na composição um objeto é ligado fisicamente ao outro, de modo que o envolvedor é responsável pelo envolvido: uma janela TEM UM botão, sendo que a janela sem o botão não serve para nada. Do mesmo modo, um botão sem janela nem pode existir. Ao destruir a janela, o botão também deixa de existir, portanto, é composição.
No caso da empresa, se ela for destruída, os funcionários continuam existindo.

Criado 26 de março de 2010
Ultima resposta 26 de mar. de 2010
Respostas 4
Participantes 5