Passagem parametro

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;

	}

}

}

declarar uma funcao dentro do metodo main pode?

[quote=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;

	}

}

}[/quote]

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…

[code]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);
   }		

}
[/code]

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.

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.

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.

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

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.

ok.

obrigado.