Problemas para comparar Strings

E ae galera, blz? :cool:

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 :grin:

[quote=“GraveDigger”]E ae galera, blz? :cool:

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 :grin:[/quote]

F6, F6, F6, F6, F6, F6… acho que resolve… (No eclipse).

N sei o q F6 faz mas n resolveu.

PErcebi meu erro primário :oops:

Colokei pra mostrar a String “eba” sempre,e como eu defini um valor pra ela no segundo caso, a partir dele mostrará em todos.

Sakei meu erro, mto bobo por sinal :sad: