Passagem parametro

8 respostas
M

Quam sabe me informar porque a declaração está errada.

class Teste{

public static void main(String args[])	{

	int soma (int x, int y){

		return x+y;

	}

}

}

8 Respostas

K

declarar uma funcao dentro do metodo main pode?

Andre_Fonseca
mineiro_28:
Quam sabe me informar porque a declaração está errada.

class Teste{

public static void main(String args[]) {

int soma (int x, int y){

return x+y;

}
}

}

O main é um método como outro qualquer, você deve fazer assim, a diferença é que o quando você fizer java MinhaClasse é o método main que dá inicio a execução do seu programa..

class Teste{

       // declaro o método soma aqui
       int soma (int x, int y){

	return x+y;

	}

	public static void main(String args[])	{

        int result = soma(2,3);
        System.out.println("O Resultado é:"+result);
       }		
}
P

Cê tá declarando um método dentro do outro.

Agora faça:

public class teste {

private int somar(int x, int y) {
return x+y;
}
public static void main (String [] args) {
somar(10,4);
}
}

Você nunca pode ter a assinatura de um método dentro de outro. O main não é um método como outro qualquer, você inicia qualquer coisa dentro de um aplicativo Java usando ele. A assinatura é sempre “public static void main(String [] args)”. Decore isso.

Outra coisa, pra você que tá iniciando - uma dica: SEMPRE FUJA da forma estruturada de programar. Colocar tudo em uma classe só. Tente ser elegante sempre no coding. Quando você coda, é como uma dança. Tem gente que dança com classe, categoria - tem outras pessoas que vão pro baile funk. E você sabe a fama que essas pessoas tem, normalmente. Um exemplo besta mas ilustra que o importante é sempre ser elegante e inteligente. Nunca tome soluções do tipo sem saber porque, sempre saiba o porque de tudo, pense sempre como deve ser o acesso ao método, etc.

Seja elegante, SEMPRE em seus códigos.

M

putz…

Vou imprime esse poema…

Outra coisa como fasso para esse teste dar certo?

Só não fica irritado tô aprendendo ainda…calma.

class Teste{

byte soma (int x, int y){

return x+y;

}

public static void main (String args[]){

Teste c = new Teste();

System.out.println(c.soma(5,1));

}

}

Teste.java:5: possible loss of precision.

P

O erro é simples: Perda de precisão.

Sempre ocorre quando você vai converter um tipo de range maior em um tipo de range menor.

Você está colocando o tipo do retorno como byte. Isso pode dar um pau bonito. O compilador tá avisando.

Agora, muda o tipo do retorno pra int.

M

Mais se eu quiser fazer um cast explicito nesse código não não posso ?

wbjava

Uma possibilidade seria vc declarar desta forma

class Teste {

	int soma(int x, int y) {
		return x + y;
	}

	public static void main(String args[]) {
		Teste c = new Teste();
		System.out.println(c.soma(5, 1));
	}

}

Um int possui 32bits enquando o byte 8bits, caso seja necessária a conversão de um int para byte, você poderá ter perda na precisão, dependendo o resultado retornado.
O limite de um byte é de até 127 positivo, após esse valor haverá perda de precisão.

M

ok.

obrigado.

Criado 9 de julho de 2008
Ultima resposta 9 de jul. de 2008
Respostas 8
Participantes 5