galera pelo que eu entendi no codigo acima teria que dar erro certo? Mas ele me retorna duas vezes a posição F9 oque eu fiz de errado, não deveria ter estourado a array?
Dentro do FOR vc esta imprimindo a posição F9 uma vez e após o FOR está imprimindo novamente.
acidotherwise
sim eu queria que desse o erro mas não da, e queria saber porque ?
na realidade esqueci de botar o exercicio.
(Opcional) Caso a array já esteja cheia no momento de adicionar um outro funcionário, criar uma nova maior
e copiar os valores. Isto é, fazer a realocação já que java não tem isso: uma array nasce e morre com o
mesmo length.
Usando o this para passar argumento
Dentro de um método, você pode usar a palavra this para referenciar a si mesmo e pode passar
essa referência como argumento.
sergiolopes
O seu array tem 10 posições, certo? Então ele pode ser acessado com índices de 0 a 9.
O for que você fez usa índices i de 0 a 9, então ele não causa problemas. E, depois, você acessa emp.funcionarios[9] o que também não dá erro.
Se quer estourar o array para ver o erro, acesse emp.funcionarios[10]
acidotherwise
Desculpe me expressei errado na verdade não queria qu o array estourasse e sim que ele encontresse uma posição ja ocupada no array
maior_abandonado
???
não sei bem se eu te intendi direito mais… isso não da erro, uma variavel de referencia pode ser alterada pra referenciar um objeto novo(vc pode da um new nelae continuar usando)
a menos que ela tenha sido delcarada como final é claro… masi ao que me pareceu nao tem motivo pra isso dai nao funcionar…
Paulino
Entendi, você quer retornar uma mensagem quando uma posição ja estiver sido ocupada com alguma informação, então você inicia o array com null e desenvolve uma lógica para verificar se a posição é null ou não, se for null ele guarda a informação senão retorna sua mensagem.
Dica: use um condicional ternário.
Boa sorte.
acidotherwise
sim mas o eu ja fiz com if mas ja que comentaram como ficaria isso
this.funcionarios[i] = (this.funcionarios[i]==null)? f : System.out.println(“Esta cheia”);
eu queria mesmo saber o que o pessoal da caelum que no exercicio que eu postei loga acima!
sergiolopes
Veja essa solução:
classEmpresa{Funcionario[]empregados=newFuncionario[10];voidadiciona(Funcionariof){for(inti=0;i<this.empregados.length;i++){if(this.empregados[i]==null){this.empregados[i]=f;return;}}System.out.println("Nao adicionei porque o array já estava cheio");}}
acidotherwise
Sergio valeow mesmo eu tinha desenvolvido algo parecido ja mas minha duvida é referente ao realocar e contruir uma array maior se tiver cheia
acidotherwise
detalhe não sei se estou certo ele não dar erro na variavel f.length???
sergiolopes
oops, eh empregados.length! hehehe
olha uma solucao para a realocacao que dobra o tamanho do array sempre que estoura:
cara valeow mesmo pela ajuda, mas deixa eu te perguntar uma coisa vc trabalha na caelum?
sergiolopes
Sou instrutor aqui na Caelum
acidotherwise
opa deixa eu te contar uma então sobre minha envestida eu sou programador em vb e pascal entre algumas de web tipo html dhtml action script do flash, mas programo mesmo em vb e pascal as outras digamos que tenho um conhecimento razoavel ai quero aprender java mais aqui na minha cidade não tem caelum ai baixei a fj-11 eestou lendo e fazendo os exercicios, pode me dar algum conselho?
sergiolopes
Oi acidotherwise!
Se você não pode fazer um curso, recomendo que estude bastante! Algumas das nossas apostilas estão abertas para download e já podem ser um bom ponto de partida (embora a apostila não seja desenvolvida para estudo individual, mas sim para apoio do curso, dá para acompanhar relativamente bem).
E se algum dia estiver aqui pra SP, dá uma passada na Caelum para trocarmos uma ideia…
[]'s
Sérgio
acidotherwise
valeow pode deixar sim, que se for a SP eu passo ai, aqui ate tem caelum em POA mas minha cargo horaria e intervalo de tempo não me permitem sabe ai fica cmplicado o deslocamento
mas quero ver se nas ferias faço um curso de verão la com eles!