Los métodos con valor de retorno son módulos de programa que pueden recibir datos de entrada por medio de variables locales (parámetros) y posteriormente retorna un resultado al punto donde es llamado. Este tipo de métodos se utiliza para operar cualquier tipo de proceso que produzca un resultado.
Los métodos con valor de retorno se clasifican en dos tipos:
- Métodos con valor de retorno sin parámetros.
- Métodos con valor de retorno con parámetros.
Este tipo de métodos no reciben datos de entrada; pero de igual forma retornan un resultado al punto donde son llamados.
Su definición es de la siguiente manera:
tipo nombreMetodo(){
Declaracion de variables locales
Cuerpo del método
return valor;
}
Donde:
- valor: Es el valor que es retornado por el método.
- tipo: Es el tipo del valor de retorno.
variable = nombreMetodo();
Donde:
- variable: Es la variable que recibe el valor retornado por el método.
2. Métodos con valor de retorno con parámetros
Este tipo de métodos reciben datos de entrada por medio de parámetros y retornan un resultado al pundo de su llamado.
Su definición es de la siguiente manera:
tipo nombreMetodo(tipo1 p, tipo2 q, tipo3 r, ...){
Declaración de variables locales
Cuerpo del método
return valor;
}
Donde:
tipo: Es el tipo de valor de retorno.
p, q, r, ... : son los nombres de los parámetros.
tipo1, tipo2, tipo3, ... : son los tipos de datos de los parámetros.
valor: es el valor de retorno.
Invocación (llamado):
variable = nombreMetodo(v1, v2, v3, ...);
Donde:
variable: Es el nombre del método llamado.
v1, v2, v3, ... : Son los valores dados a los parámetros.
Ejemplo (métodos con valor de retorno con parámetros): convertir cantidad dada en segundos en HH:MM:SS
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class HHMMSS extends JApplet implements ActionListener{
JButton btnCal, btnRes;
JLabel lblSeg;
JTextField txtSeg;
JTextArea txtA;
JScrollPane scpScroll;
public void init(){
getContentPane().setLayout(null);
getContentPane().setBackground(Color.darkGray);
lblSeg = new JLabel("SEGUNDOS:");
lblSeg.setBounds(20,20,90,23);
lblSeg.setForeground(Color.white);
lblSeg.setFont(new Font("arial",1,14));
getContentPane().add(lblSeg);
txtSeg = new JTextField();
txtSeg.setBounds(120,20,100,23);
txtSeg.setBackground(new Color(255,200,0));
txtSeg.setFont(new Font("arial",1,14));
getContentPane().add(txtSeg);
btnCal = new JButton("CALCULAR");
btnCal.setBounds(20,53,100,23);
btnCal.addActionListener(this);
getContentPane().add(btnCal);
btnRes = new JButton("RESET");
btnRes.setBounds(120,53,100,23);
btnRes.addActionListener(this);
getContentPane().add(btnRes);
txtA = new JTextArea();
txtA.setFont(new Font("arial",1,16));
txtA.setBackground(Color.darkGray);
txtA.setForeground(Color.green);
txtA.setEditable(false);
scpScroll = new JScrollPane(txtA);
scpScroll.setBounds(20,86,200,80);
getContentPane().add(scpScroll);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==btnCal)
hms();
if(e.getSource()==btnRes)
reset();
}
void hms(){
txtA.setText("");
int cantSeg = getSegundos(),
hor = horas(cantSeg),
min = minutos(cantSeg),
seg = segundos(cantSeg);
imprimir("Resultado:");
imprimir("----------------\n");
txtA.append("HH:MM:SS >> "+hor+":"+min+":"+seg);
}
void reset(){
txtA.setText("");
txtSeg.setText("");
txtSeg.requestFocus();
}
//Métodos con valor de retorno con parámetros
int horas(int seg){
int h = seg/3600;
return h;
}
int minutos(int seg){
int m = (seg%3600)/60;
return m;
}
int segundos(int seg){
int s = (seg%3600)%60;
return s;
}
//Método que retorna el valor numérico entero de la caja de texto
int getSegundos(){
int cs;
//donde cs: cantidad de segundos.
//Se realiza la validación de datos empleando TRY - CATCH
try{ cs = Integer.parseInt(txtSeg.getText());}
catch(Exception e){ cs = 0;}
return segundos;
}
void imprimir(String cad){
txtA.append(cad+"\n");
}
}
Ir a ejemplos tipo void con parámetros.
Ir a la lección de ESTRUCTURAS REPETITIVAS.
que pinche pagina tan guena wow
ResponderEliminarme ayudaron en mucho gradcie
Excelente explicación
ResponderEliminarEn java se puede implementar el return de el método abstracto: public abstract String getNombreCompleto(); de la clase padre en las clases hijas? se puede? eso existe?
ResponderEliminarQue buena explicación amigo Gracias por la ayuda
ResponderEliminarbueno
ResponderEliminar