Exatamente , a utilizacao de casting dentro do if ficaria algo mais ou menos como : if (o instanceof GoodDay) { GoodDay gd=(GoodDay)o; } else if (o instanceof GoHome) { GoHome gh=(GoHome)o; } onde "(GoodDay)" e "(GoHome)" sao os castings que indicam que o Object o deve ser "convertido" ora para GoodDay ora para GoHome .
--- Claudio Miranda <[EMAIL PROTECTED]> escreveu: > > Pessoal, basta retornar Object e depois colocar > casting: > > Object getSomething() { > if (todayIsAGoodDay) { > return new GoodDay(); > } else { > return new GoHome(); > } > } > > Object o = getSomething(); > if (o instanceof GoodDay) { > // faça algo > } else if (o instanceof GoHome) { > // faça outra coisa > } > > > Claudio Miranda > > > Wild Boar Wannabe wrote: > > > > Ok , toda a referencia a um objeto eh o mesmo que > um > > ponteiro . Mas existe uma grande diferenca entre > os > > ponteiros de C onde um ponteiro pode apontar para > > qualquer coisa , jah em java somente uma > referencia a > > Object pode "apontar" para (referenciar) qualquer > > coisa . > > > > --- "Paulo R. Panhoto" > > <[EMAIL PROTECTED]> escreveu: > > > Existem ponteiros em java sim, embora o suporte > > > a ponteiros seja limitado.. Caso contrário não > > > haveria sentido existir "NullPointerException". > > > > > > Qualquer variável que não seja de tipo > primitivo > > > (ou seja, qualquer objeto) é passado por > > > referência. > > > > > > Wild Boar Wannabe wrote: > > > > > > > Creio que seria somente utilizando um vetor > de > > > > objetos mesmo , uma vez que java nao tem > ponteiros > > > . > > > > > > > > --- Luis Cabral <[EMAIL PROTECTED]> > > > escreveu: > > > > > Olá > > > > > > > > > > Tenho uma dúvida, que ao mesmo tempo prova > > > > > que em Java não existe passagem de > parâmetros > > > > > por referência... > > > > > > > > > > Como fazer um método retornar 2 objetos > > > > > *diferentes*? > > > > > Em C por exemplo, eu poderia usar um > parâmetro > > > > > por referência para que fosse retornado nele > um > > > > > valor: > > > > > > > > > > int funcao(int *r1) > > > > > // esta funcao retorna 2 inteiros: 10 e 20 > > > > > { > > > > > *r1 = 10; > > > > > return 20; > > > > > } > > > > > > > > > > E em Java? > > > > > > > > > > Uma opçao seria retornar um array, mas sendo > > > > > dois objetos diferentes, precisaria ser um > array > > > de > > > > > object's, > > > > > ou tem outra forma? > > _________________________________________________________ > Do You Yahoo!? > Get your free @yahoo.com address at > http://mail.yahoo.com > > > ------------------------------ LISTA SOUJAVA > ---------------------------- > http://www.soujava.org.br - Sociedade de Usuários > Java da Sucesu-SP > dúvidas mais comuns: > http://www.soujava.org.br/faq.htm > regras da lista: > http://www.soujava.org.br/regras.htm > para sair da lista: envie email para > [EMAIL PROTECTED] > ------------------------------------------------------------------------- > _______________________________________________________________________________________________ Yahoo! GeoCities Tenha seu lugar na Web. Construa hoje mesmo sua home page no Yahoo! GeoCities. É fácil e grátis! http://br.geocities.yahoo.com/ ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------