Parametros em Java

14 respostas
P

Boas,
Estou a começar a aprender java! E adorava aprender bem!
Até agora tenho uma dúvida que me atormenta.
Qual a utilidade dos parametros nos metodos?
Sim, sei que os parametros passam valores certo? Mas se um método não tiver parametros que diferença fara? Para que server ter metodos? Que ajuda dá?

public aprender (int a, int b)
{}

public aprender()

{

int a, b;

}

Que diferenças temos aqui? Ainda não percebi muito bem a questão dos parametros! para que serve, a sua utilidade, a sua importancia!
Digam sugestoes!
abraço

14 Respostas

Deh

a diferença é que você pode passar valores ao método

por exemplo:

class Teste {

    public int getNumber(int x) { 
              return x;
    }
    public static void main(String args[]){
              teste t = new Teste();  
              System.out.println("" + t.getNumber(4));  
              //magicamente você passa o valor 4 para o seu métoro...
 
     }
 }

agora vai de você usar os métodos para o que bem quiser e um melhor funcionamento do teu programa, foi um exemplo fraco…

se você colocasse o “int x” dentro do teu método e deixasse o mesmo sem argumentos(parametros), que valor “x” teria? o programa saberia que ele era o 4?

espero ter ajudado! e não ter falado nada errado!
Valeu =D

P

acho q ja entendi, mas…
class Teste {

public int getNumber(int x) { 
           return x;
 }
 public static void main(String args[]){
           teste t = new Teste();  
           System.out.println("" + t.getNumber(4));  
           //magicamente você passa o valor 4 para o seu métoro...

  }

}

Isso de querer passar o 4 pra o getNumber pra q?
Passo o 4 pra o getNumber pra este retornar 4?
Com parametros sempre posso passar valores, certo, entendi, mas passar valores q utilidade tem?

Deh

vou dar outro exemplo

class Teste {

    public int somar(int x,int y){
           int y = x + y;
           return y;
    }
    public static void main(String args[]){
         Teste t = nem Teste();
         //imagine que no seu programa, você tem diversar calculos onde você vai ter que somar diversos números, etc... 
          System.out.println("" + t.somar(4,3));     
          System.out.println("" + t.somar(3,7));
          System.out.println("" + t.somar(10,14));
   }
}

imagina você ter que criar um método para cada um desses

public int somar1(){
           int x = 4,y = 3;
           int y = x + y;
           return y;
    }
    public int somar2(){
           int x = 3,y = 7;
           int y = x + y;
           return y;
    }
  .
  .
  .

entendeu o porque de ter algum método que aceita parametros?
esse exemplo não foi lá essas coisas, mas se usa isso em coisas maiores assim que você se aprofundar mais em java e em outros conceitos, acho que por passagem de parâmetros pode ser resumido nisso…

P

ja percebi, thanks!
entao a grande utilidade com parametros é poder receber valores de um outro metodo né?
e como disse no exemplo q deu, poupar linhas de codigo.
um metodo q permita somar convem ter parametros né pois se quiser fazer varias somas, basta passar os valores pra o metodo com parametros.
ok
abraço

P

E se for assim:

public class teste{

int a,b;

int soma2()

{

int a, b;

a = 5;

b = 2;

return (a+b);

}
int soma1(int a, int b)

{

return (a+b);

}
int soma3(int a, int b)

{

return (this.a + this.b);

}
int soma4()

{

int a, b;

a = 5;

b = 2;

return (this.a + this.b);

}
void main(String args[])

{

int r1, r2, r3, r4;

a=5;

b=2;

r1 = soma1(a,b);

r2 = soma2();

r3 = soma3(a,b);

r4 = soma4();

System.out.println(r1= + r1 + " r2=" + r2 + " r3=" + r3 + r4= + r4);

a=15;

b=12;

r1 = soma1(a,b);

r2 = soma2();

r3 = soma3(a,b);

r4 = soma4();

System.out.println(r1= + r1 + " r2=" + r2 + " r3=" + r3 + r4= + r4);

}

} // teste

A questao do this q significa e pra q serve?

P

pq o soma3 da sempre 0?

Deh

para começar esse código nem compila o.O

ele precisa de um “public static void main(String args[]){ }”

void main(String args[]){ } está até correto, mas é somente um método qualquer =p

public class testConcat{
	
	static int a,b;
	
	int soma2()
	{
		int a, b;
		a = 5;
		b = 2;
		return (a+b);
	}
	
	int soma1(int a, int b)
	{
		return (a+b);
	}
	
	int soma3(int a, int b)
	{
		return (this.a + this.b);
	}
	
	int soma4()
	{
		int a, b;
		a = 5;
		b = 2;
		return (this.a + this.b);
	}
	
	public static void main(String args[])
	{
		int r1, r2, r3, r4;
		a=5;
		b=2;
		testConcat t = new testConcat();
		r1 = t.soma1(a,b);
		r2 = t.soma2();
		r3 = t.soma3(a,b);
		r4 = t.soma4();
		System.out.println("r1=" + r1 + " r2=" + r2 + " r3=" + r3 + "r4=" + r4);
		a=15;
		b=12;
		r1 = t.soma1(a,b);
		r2 = t.soma2();
		r3 = t.soma3(a,b);
		r4 = t.soma4();
		System.out.println("r1=" + r1 + " r2=" + r2 + " r3=" + r3 + "r4=" + r4);
		
	}
	
}

esse devia ser +/- o código certinho,
saida:

r1=7 r2=7 r3=7r4=7
r1=27 r2=7 r3=27r4=27

onde tem erro?

P

se invocar o metodo soma3 pq da sempre 27?
eu tou usando o bluej!
se invocar/chamar, o metodo correr() da soma3=7 e soma3=27
mas se invocar o metodo soma3 da sempre 27 why?

Deh

Porque você está usando o this para afirmar que está tratando do “a” e do “b” que você está recebendo como parametro no seu método!

na primeira chamada

soma3 vai dar 7!

já na segunda…

int soma3(int a, int b)
 	{
 		return (this.a + this.b);
 	}

por isso vai dar 27
=]

P
int soma3(int a, int b)

{

return (this.a + this.b);

}

este this.a refere-se a “a” variavel global né?

os parametros aqui n sao usados né? se quiser passar valores n adianta pois da sempre os valores das variaveis globais né?

Outra cena:

int soma1(int a, int b)

{

return (a+b); //retorna os valores passados!

}

Retorna os valores passados, certo?
se executarmos o correr() o soma1 da primeiro 7 e depois 27, pq?


void correr(){

int r1, r2, r3, r4, r5;

a=5;

b=2;

r1 = soma1(a,b);

r2 = soma2();

r3 = soma3(a,b);

r4 = soma4();

r5 = soma5();

System.out.println(r1= + r1 + " r2=" + r2 + " r3=" + r3 + " r4=" + r4 + " r5=" + r5);

a=15;

b=12;

r1 = soma1(a,b);

r2 = soma2();

r3 = soma3(a,b);

r4 = soma4();

r5 = soma5();

System.out.println(r1= + r1 + " r2=" + r2 + " r3=" + r3 + " r4=" + r4 + " r5=" + r5);

}

temos:

a=5;

b=2;

r1 = soma1(a,b); passa o 5 e o 2 para os parametros do metodo ?

logo retorna 7 ne?

e depois:

a=15;

b=12;

r1 = soma1(a,b);

retrona 27;

Mas se invocar o metodo soma1 eu posso passar valores q quiser né? e se passar tipo 4 e 12 ele faz a soma e da 16 certo?

P
void correr(){

int r1, r2, r3, r4, r5;

a=5;

b=2;

r1 = soma1(a,b);  //a e b têm o valor em cima dito! 5 e 2 certo?

//q serao passados pra o metodo soma1, certo?

r2 = soma2();

r3 = soma3(a,b);

r4 = soma4();
LPJava

serve tb para manipular variaveis locais dentro de um metodo por isso usamos um paramento nos metodos!!

public void soma(int a, int b){
int n1 = a;
int n2 = b;
this r = a + b;
}

vlw!!

P

this r? ou this.r?
esta variavel r é global né pois tem o this.

P

Em java não existem variáveis globais.
O this indica que é uma variável de classe não estática.

Criado 12 de outubro de 2006
Ultima resposta 15 de out. de 2006
Respostas 14
Participantes 4