Não consigo exibir o usuário?

Estou resolvendo um exercício, mas estou encontrando um problema, eu preciso ver qual o maior valor entre dois objetos e depois exibir isso para o usuário, fiz dessa maneira, porém não consigo exibir para o usuário:

import javax.swing.JOptionPane;

public class Funcionario
{
	int cracha;
	float salario;
	String cargo;

	public Funcionario()
	{		
	}   	

	public Funcionario(int c, float s, String car)
	{
		c=cracha;
		s=salario;
		car=cargo;
	}    

	Funcionario maiorSalario(Funcionario f)
	{
		if(this.salario >  f.salario)
		{			
			return this;			
		}
		else
		{
			return f;
		}
	}	

	void mostraDados()
	{
		JOptionPane
			.showMessageDialog(null, "Cargo: " 
			                    + cargo + "\nCracha: " 
								+ cracha +"\nSalario:" 
								+ salario);
	
	}
}

E onde você invoca a comparação e faz a chamada para exibir o funcionário?

A classe parece Ok, mas, precisamos entender aonde você fez as comparações ? Poste o código e o que não deveria acontecer!

Para que eu entenda…
1º Porque você fez um construtor que recebe parametros da propria classe?
O metodo construtor é iniciado quando você cria um objeto.

Poste a classe main que esta chamando o metodo maiorSalario. E se possivel poste toda classe.

O que tem de errado com o construtor dele?
A ideia de construtor é, sim, criar um novo objeto, porém, ele permite que, de acordo com determinadas regras, você possa passar parâmetros ao construtor a fim de definir valores aos atributos, permitindo que o objeto já esteja criado com atributos possuindo valores.

1 curtida

O que tem de errado com o construtor dele?
A ideia de construtor é, sim, criar um novo objeto, porém, ele permite que, de acordo com determinadas regras, você possa passar parâmetros ao construtor a fim de definir valores aos atributos, permitindo que o objeto já esteja criado com atributos possuindo valores.

Só que quem esta recebendo valores é a variavel que ele passa como parametro não é?
As variaveis no parametro recebem as variaveis da classe, não deveria ser o contrario?

Verdade. Ele simplesmente inverteu.