Return

pessoal,estou começando em java agora,e tenho uma duvida quanto o uso do return.Alguem pode me explicar como usar??Estou estudando por apostilas na net,e gostaria de mais explicações sobre ele.Grato a tdos

o return finaliza a execução de um método

podendo retornar algo ou não

teria um exemplo simples,pf?um ex com
calculo seria legal

o comando return faz vc retorna o metodo…

e o valor retornado depende da assinatura do metodo…

exemplo

“String getNome()” exige q vc retorne um String
então vc poderia fazer
String getNome(){
String nome = “Zeca”;
return nome;
}

assim o outro metodo que chamou o getNome estaria recebendo uma String com valor de “Zeca”…

int getID(){
int id = 10;
return id;
}

retorna um INT com valor 10

e assim por diante…
lembrando que sempre deve retornar o tipo de variavel exigida na assinatura…

a unica exceção é o VOID…

void setBanana(int arg){
if(arg>10){
return;
}else{
arg = 10;
}
}

nesse caso vc passa um parametro no metodo…
se for maior que 10… ele retorna VOID na hora… e VOID é nada… ou seja, ele simplesmente sai do metodo e não retorna nada…
se não… ele deixa ARG = 10…

e passando valores como parametro ,a logica eh a msma?

sim claro…

a utilização dos 'return’s são iguais para qqer tipo de metodo
é que não pensei em exemplos simples para explicar a utilização deles…

mas não tem segredo, é apenas isso =)

vc pode usar o return para quebrar Loops, e qqer coisa q vc imaginar…
retornou, acabou o metodo… é regra…

e so mais uma coisa,se eu quiser pegar o valor de uma variavel ‘global’,passar um valor como parametro e nesse momento copiar o valor da variavel global para o parametro,cmo seria feita essa copia ?

ex: tenho uma soma :
private int num1
private int num2
private int total;


int realizaSoma(copiaVal1,copiaVal2,Total){
como faço pra jogar o valor digitado na variavel num1 pra a var local copiaVal1 ?
E no meu metodo main,cmo faço pra q sempre q digitarem o num1,e o num2,seja chamado esse metodo(realizaSoma)pra executar a soma?

}

[quote=D & E]e so mais uma coisa,se eu quiser pegar o valor de uma variavel ‘global’,passar um valor como parametro e nesse momento copiar o valor da variavel global para o parametro,cmo seria feita essa copia ?

[code]
ex: tenho uma soma :
private int num1
private int num2
private int total;

int realizaSoma(copiaVal1,copiaVal2,Total){
como faço pra jogar o valor digitado na variavel num1 pra a var local copiaVal1 ?
E no meu metodo main,cmo faço pra q sempre q digitarem o num1,e o num2,seja chamado esse metodo(realizaSoma)pra executar a soma?

}
[/code][/quote]

ficou meio confuso oq vc disse…

bom vc tem uma classe com 3 atributos… num1, num2, total

vc pode fazer

[code]void setNum1(int val){
num1 = val;
}
void setNum2(int val){
num2 = val;
}

int realizaSoma(){
total = num1+num2;
return total;
}[/code]

ou pode fazer tudo de uma vez… e se quizer nem precisa gravar em variaveis internas da classe

int realizaSoma(int num1, int num2){
    return (num1+num2);
}

e tem como chamar

int realizaSoma(int num1, int num2){
    return (num1+num2);
}

pra ele trazer ja o resultado da soma?
Eu criei outra classe com o metodo main,instanciei a classe q tem realizaSoma
e fiz :

classeQueTemORealizaSoma  cqtors  = new classeQueTemORealizaSoma ();
 cqtors.realizaSoma();  //aki ele pede os parametros num1 e num2;

eu qria q qndo chamasse ele trouxesse o resultado da soma e n pedisse esses valores.

PS.desculpe o tanto de perguntas

entao…

mas de um jeito ou de outro… vc precisaria estar inserindo os valores antes…
(ah não ser q a propria classe tenha valores Default dentro)…

se vc usa
cqtors.realizaSoma();

com base em que ele vai somar? quais os 2 valores?

  1. vc vai inserir por parametro neste mesmo metodo?
    Ex.: realizaSoma(int val1, int val2)

  2. vai inserir por Sets (igual ao exemplo que dei) ?
    void setVal1(int val1);
    void setVal2(int val2);
    int realizaSoma();

  3. os valores vão existir dentro da classe na hora de instanciar? (no construtor da classe)
    classeQueTemORealizaSoma (){
    val1 = 10;
    val2 = 30;
    }

pronto kra,tirou as duvidas q tinha.Obrigado pela paciencia e desculpa o tanto de perguntas.Sempre ouço reclamação por perguntar demais :frowning: ,obrg novamente pela paciência.