E ae galera, blz?
Bom, estou obtendo um resultado inesperado no código abaixo:
public abstract class Employee {
private String firstName;
private String lastName;
private String birthDate;
public Employee ( String first, String last, String aniversario )
{
firstName = first;
lastName = last;
birthDate = aniversario;
}
public String getFirstName()
{
return firstName;
}
public String getLastName()
{
return lastName;
}
public String toString()
{
return firstName + " " + lastName;
}
public String getBirthDate()
{
return birthDate;
}
public abstract double earnings();
}
E
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
public class TestPolimorphism {
public static void main ( String[] args )
{
Employee employee[] = new Employee [ 4 ];
String output = "";
String aniversarioBoss = "12/04";
String aniversarioComission = "11/06";
String aniversarioPiece = "11/11";
String aniversarioHourly = "27/12";
Boss boss = new Boss ( "John", "Smith", 800.0, aniversarioBoss );
employee [ 0 ] = boss;
ComissionWorker commissionWorker =
new ComissionWorker ( "Sue", "Jones", 400.0, 3.0, 150,
aniversarioComission );
employee [ 1 ] = commissionWorker;
PieceWorker pieceWorker = new PieceWorker ( "Bob",
"Lewis", 2.5, 200, aniversarioPiece );
employee [ 2 ] = pieceWorker;
HourlyWorker hourlyWorker = new HourlyWorker ( "Karen",
"Price", 13.75, 40, aniversarioHourly );
employee [ 3 ] = hourlyWorker;
DecimalFormat precision2 = new DecimalFormat ( "0.00" );
String eba = "";
String salario = "";
for ( int x = 0; x < employee.length; x++ ) {
salario = "" + employee [ x ].earnings();
if ( employee [ x ].getBirthDate().contains ( "06" ) ) {
salario = "" + ( employee [ x ].earnings() + 100 );
eba = "\nParabéns, esse mês eh seu aniversário!\n";
}
output += "\n\n" + employee [ x ].getFirstName() + " " +
employee [ x ].getLastName() + " recebe " +
salario + eba;
}
JOptionPane.showMessageDialog ( null, output );
}
}
Os objetos instanciados de classes não citada são todos derivados de classes que derivam de Employee ( acho q deu pra entender neh?IUHAai)
Pois bem, o prob eh o seguinte, eu gostaria que o programa comparasse se o aniversário do funcionário eh nesse mês ( 06 ), acrescentando assim 100 reais ao seu salário e mostrando uma mensagem de parabéns na tela.
Porém, o resultado q obtenho naum eh o q eu quero, o programa me “diz” que os 3 últimos funcionários estão fazendo aniversário esse mês, algo q naum eh verdade.
Gostaria que qm entendeu o q pode ser me desse uma ajuda.
Valew Portal java