pessoal, sou novo em java e OO, e queria saber como solucionar os exercicios da famosa apostila Caelum no capítulo de arrays (5.5 - Exercícios: Arrays):
Volte ao nosso sistema de Funcionario e crie uma classe Empresa dentro do mesmo arquivo .java. A
Empresa tem um nome, cnpj e uma referência a uma array de Funcionario, além de outros atributos que
você julgar necessário.
class Empresa {
// outros atributosFuncionario[]empregados;Stringcnpj;
}
ESSE PRIMEIRO EU JÁ FIZ, SÓ COLOQUEI AQUI PRA PODER COLOCAR O SEGUNDO QUE É O QUE NÃO TO SABENDO!
A Empresa deve ter um método adiciona, que recebe uma referência a Funcionario como argumento, e guarda esse funcionário. Algo como:
…voidadiciona(Funcionariof){// algo tipo:// this.empregados[ ??? ] = f;// mas que posição colocar?}…VocêdeveinseriroFuncionarioemumaposiçãodaarrayqueestejalivre.Existemváriasmaneirasparavocêfazerisso:guardarumcontadorparaindicarqualapróximaposiçãovaziaouprocurarporumaposiçãovaziatodavez.Oqueseriamaisinteressante?Éimportanterepararqueométodoadicionanãorecebenome,rg,salário,etc.Essaseriaumamaneiranemumpoucoestruturada,muitomenosorientadaaobjetosdesetrabalhar.VocêantescriaumFuncionarioejápassaareferênciadele,quedentrodoobjetopossuirg,salário,etc.
e tem o terceiro e seguintes, que se puder me mandar uma idéia também, fico grato!
obrigado!
Ola, tambem sou novo em java e estou lendo a msma apostila…mto boa ela neh…
intao vc pode criar um contador estatico na classe…
tpw
classEmpresa{// outros atributosFuncionario[]empregados=newFuncionario[10];//acho q precisa definir o tamanho..Stringcnpj;staticintcontador;voidadiciona(Funcionariof){if(contador<10)this.empregados[contador++]=f;}}
nao sei se ta certo mais espero ter ajudado
A
artursmp
Muito obrigado aos 2 !
ajudou legal!
Se alguem souber onde tem na net os exercicios da caelum resolvidos fico grato!
vlww!
maisongalvao144
Vou postar aqui a minha solução para análise.
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packageExercicios;/*@author maison.souza*/publicclassEmpresa{publicStringnome;publicintcnpj;publicFuncionario[]empregados;publicvoidadiciona(Funcionariof1){booleanestacheio=true;for(intx=0;x<empregados.length;x++){if(empregados[x]==null){estacheio=false;empregados[x]=f1;System.out.println("Adicionado Funcionário = "+this.empregados[x].nome);break;}}if(estacheio==true){System.out.println("O vetor está cheio não foi possível adicionar "+f1.nome);Funcionario[]empregados2=newFuncionario[this.empregados.length*2];for(inti=0;i<this.empregados.length;i++){empregados2[i]=empregados[i];}for(intx=empregados.length;x<empregados2.length;x++){if(empregados2[x]==null){empregados2[x]=f1;System.out.println("Um novo vetor foi criado Adicionado Empregado = "+empregados2[x].nome);empregados=empregados2;break;}}}}publicbooleancontem(Funcionariof1){booleancontem;for(intx=0;x<empregados.length;x++){if(this.empregados[x]==f1){System.out.println("Encontrado");contem=true;returntrue;}}System.out.println("Não trabalha");returnfalse;}publicvoidmostraEmpresa(){System.out.println("Nome da Empresa :"+this.nome);System.out.println("CNPJ: "+this.cnpj);mostraEmpregados();}publicvoidmostraEmpregados(){for(intx=0;x<this.empregados.length;x++){if(empregados[x]!=null){System.out.println("Funcionario da posição "+x+" Funcionário = "+empregados[x].nome);}}}publicvoidmostraDetalhes(Funcionariofuncionario){funcionario.mostraFuncionario();}}