Hola compañero :),
El motivo sigue siendo el mismo... sugerido por WinDoctor...
variables locales por su ámbito.
Código:
public static void main(String[] args)
{/*abro 2*/
String pregunta;
int diasTrabajados;
float sueldo;
Allí está definido "sueldo" y le pertenece a main.
Código:
public class Nomina/*Inicio de clase*/
{/*abro llave 1*/
/** Creates a new instance of Nomina */
public Nomina()
{ }
/*Declaro las variables Globales*/
private int numEmpleado;
.......
private float sueldoMenosImpuesto;
private float sueldo;
Allí está definido "sueldo" también y le pertenece a la clase Nomina.
Código:
public float calcularSueldo ()
{
sueldo = pagoPorDia * diasTrabajados;
return sueldo;
}
Allí usas sueldo ... pero cual ... el de main o el de Nómina ?
En ese caso estas usando el "sueldo" que le pertenece a Nómina, por que está en el ámbito de la función calcularSueldo() dentro de Nómina. Y el "sueldo" de main se queda con 0.
Espero haber aclarado un poco más la situación ¿?,
Saludos,
ps:
Un problema con tu ejemplo es que hay 2 sueldos, uno por aquí otro por allá.
De cual estas hablando en cada momento específicamente, cuando dices "sueldo"?
Un gran problema de ámbito; visible únicamente para avanzados en el lenguaje.