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?
-
vc vai inserir por parametro neste mesmo metodo?
Ex.: realizaSoma(int val1, int val2) -
vai inserir por Sets (igual ao exemplo que dei) ?
void setVal1(int val1);
void setVal2(int val2);
int realizaSoma(); -
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 ,obrg novamente pela paciência.