[ Foro de Java ]

¿Desde un método toString() se puede invocar a otro método?

05-Mar-2021 13:09
Invitado (Redefinici?n m?todo toString())
1 Respuestas

Sería correcto el siguiente tozo de código
public class Trabajador{
static final int HORA_EXTRA=20;
private double sueldo;
private int nhorasExtra;
public Trabajador(double sueldo,int horas){
  this.sueldo=sueldo;
   nhorasExtra=horas;
}
public double sueldoMensual(){
 return sueldo+(nhorasExtra*HORA_EXTRA);
}
public String toString(){
return "Sueldo:  "+sueldo+"N horas extra: "+nhorasExtra+"Suedo mensual: "+sueldoMensual();
}
public static void main (String[] args){
Trabajador obj=new Trabajador(1200,4);
System.out.println(obj.toString());
}
}


09-Mar-2021 15:16
Franco Garcia

Si, no hay problema con hacerlo asi.

Particularmente no sobrescribiria el toString para mostrar los datos, sino que crearia un metodo nuevo tipo "public String mostrarDatos(){//codigo java}"... si bien, es una practica comun a la hora de aprender te digo el porque:

toString() se suele utilizar en otras clases java, como por ejemplo, los JComboBox... Esto te va a servir cuando veas Java Swing.

A los JComboBox, les podes meter una clase creada, en tu caso la clase Trabajador... Supongamos que queres  crear un combobox donde estén todos tus trabajadores, vos elijas a alguno y al elegirlo con el combobox, te salgan los datos de este en un formulario para que puedas modificarlos.

podes crear el JComboBox asi:

private JComboBox<Trabajador> cboTrabajadores = new JComboBox<Trabajador>();

Esto es programacion generica, como podes ver, estas definiendo que el JComboBox contenga Objetos del tipo "Trabajador" (de la Clase que creaste)...

Ahora bien, el JComboBox  UTILIZA el metodo toString de una clase para MOSTRAR los datos, sino lo sobreescribis, te va a dar por cada trabajador un valor hexadecimal.

Es aqui donde podes ponerle lo que vos quieras que muestre tu JComboBox. Por ejemplo:

(en la clase Trabajador)
@Override
public String toString()
{
return apellido+", "+nombre; // Esto hace que por cada objeto trabajador que metas en tu comboBox, te //muestre el apellido y el nombre de este.
}

Dsps pones por separado en un metodo, los datos referentes al sueldo. El toString es por lo general un metodo que sirve para IDENTIFICAR a un objeto.

REPITO, lo podes hacer al programa como vos quieras y lo que queres hacer va a andar de lujo, pero esta bueno tambien saber estas cosas que te ahorran código en el futuro.








(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)