Lista de discussão de MAC 212


[Prévia por Data][Próxima por Data]
[Prévia por Assunto][Próxima por Assunto]
[Índice por Data][Índice por Assunto]
[Envie uma nova mensagem para a lista] [Responda esta mensagem]

Re: Return/Metodos




Olá a todos.

Primeiro, peço desculpas a todos, e em particular à Carol, se meu último email
para esta lista soou meio rude. Essa não era minha intenção.

Só não achei legal o pessoal não vir no plantão e na semana do ep pedir
plantão de 2a a 6a. E me disponho a colocar o horário do plantão em votação,
para a monitoria atender todo mundo.

Sem mais delongas, vamos às dúvidas.

On Mon, 7 May 2001, Cesar Fernando Agena wrote:
> Professor,
> 
> 
> Duvida 1
> em uma funcao do meu jogo eu tenho mais ou menos o seguinte codigo
> 
> public boolean metodo()
> {
>      if (x=y) return true;
>     else return false;
> }
> Só que o java nao compila pois diz que na minha funcao falta o retorno.
> (missing return statement)
> Eu tive que colocar um return false (ou true) fora do if e do else para que
> ele rodasse. Por que isso?
> 

Você digitou assim mesmo? Com um "=" só? Então o resultado disso é
imprevisível, você está usando uma atribuição como se fosse um valor
booleano, e o java não aceita isso. Algumas linguagens (como C) aceitam
esse tipo de código sem problema. Em java, isso certamente gera um erro de
compilação.

Se você digitou "==" no seu código e foi só aqui no seu email que você
comeu um "=", então eu não sei por que está dando problema: Testei isso
aqui no jdk 1.3.0 da rede linux do ime e deu certo:

class Foo
{
    static boolean foo(int x,int y)
    {	if(x==y) return(true);
	else return(false);
    }

    public static void main(String args[])
    {	System.out.println(foo(1,2));
    }
}

Talvez possa ser alguma diferença de compilador/versão. Sei lá.
 
> 
> Duvida 2
> Como eu faço para chamar uma variavel que é de um metodo de uma outra classe?
> 
> "classe1.metodo1.variável"   nao funciona.

É, realmente não funciona. Nào existe nenhum jeito de acessar externamente
uma variável declarada dentro de um método.

Tente declarar esta variável como uma variável de classe pública.
Ou então, o que é mais aconselhável, declará-la como uma variável
de classe privada e implementar um método público que simplesmente retorna
o valor da variável, para que outras classes possam obter o valor dessa
variável privada chamando este método público.

> 
> Obrigado
> 
> 
> 

Bom ep.

Mickail M. Lopes <mlopes@linux.ime.usp.br>