[Resolvido] getSalario

8 respostas Resolvido
henry796

Olá! Amigos, sou totalmente iniciante na linguagem, decidi junto com os cursos praticar com alguns exercícios simples, mas já no primeiro estou com dificuldades.

Gostaria de saber como fazer o método getSalario trazer o "resultado"de setSalario.

public class SalarioLiquido {

private String funcionario;
private String cpf;
private double salarioHora;
private double trabalhadas;
private double salario;

public void setFuncionario(String funcionario) {
	this.funcionario = funcionario;
}
public void setCpf(String cpf) {
	this.cpf = cpf;
}
public void setSalarioHora(double salarioHora) {
	this.salarioHora = salarioHora;
}
public void setTrabalhadas(double trabalhadas) {
	this.trabalhadas = trabalhadas;
}
private double setSalario() {
	return this.salario = this.trabalhadas *= this.salarioHora;
}
public double getSalario() {
	return this.salario;
}

}

Em meus testes o setSalario faz a conta certinha mas o getSalario sempre vem zerado.

8 Respostas

Jonathan_Medeiros

O seu método setSalario deveria ser assim:

public void setSalario(double salario) {
	this.salario = salario + (getTrabalhadas() * getSalarioHora());
}

Utilizando os gets de horas trabalhadas e salário hora:

public double getTrabalhadas() {
	return this.trabalhadas;
}

public double getSalarioHora() {
	return this.salarioHora;
}

Para quando você chamar o getSalario, ele te retornar o valor correto e calculado!

Jonas_B_a_r_r_o_s

O que é isso ?? *=

Jonathan_Medeiros

É utilizado para simplificar operações matemáticas!

Por exemplo:

double valor = 10;

valor += 5; //Resultado é 15 (é a mesma coisa que a linha abaixo)
valor = valor + 5; //Resultado é 15

No caso dele está usando a multiplicação que tem o mesmo efeito

double valor = 2;

valor *= 2; //Resultado é 4 (é a mesma coisa que a linha abaixo)
valor = valor * 2; //Resultado é 4
henry796

Obrigado pela resposta! Fiz a alteração sugerida e ainda assim tenho retorno 0 no getSalario.

public class SalarioLiquido {

private String funcionario;
private String cpf;
private double salarioHora;
private double trabalhadas;
private double salario;

public String getFuncionario() {
	return funcionario;
}
public void setFuncionario(String funcionario) {
	this.funcionario = funcionario;
}
public String getCpf() {
	return cpf;
}
public void setCpf(String cpf) {
	this.cpf = cpf;
}
public double getSalarioHora() {
	return this.salarioHora;
}
public void setSalarioHora(double salarioHora) {
	this.salarioHora = salarioHora;
}
public double getTrabalhadas() {
	return this.trabalhadas;
}
public void setTrabalhadas(double trabalhadas) {
	this.trabalhadas = trabalhadas;
}
public void setSalario(double salario) {
	this.salario = salario + (getTrabalhadas() * getSalarioHora());
}
public double getSalario() {
	return this.salario;
   }		
}

Testei da seguinte forma

public class TesteSalarioLiquido {

public static void main(String[] args) {
	
	SalarioLiquido pedro = new SalarioLiquido();
	pedro.setCpf("[telefone removido]");
	pedro.setFuncionario("Pedro");
	pedro.setSalarioHora(30);
	pedro.setTrabalhadas(160);
	
	System.out.println(pedro.getSalario());
	
}

}
Jonathan_Medeiros

Sim, dessa forma ele vai trazer o valor zerado mesmo!

O que você quer é atribuir (valor hora x quantidade horas) á um salário base ?
Exemplo:
Base: 100,00
Valor Hora: 10,00
Quantidade de Horas: 10
Resultado: 200,00

Ou o que você você quer é gerar um salário a partir de (valor hora x quantidade horas) ?
Exemplo:
Valor Hora: 10,00
Quantidade de Horas: 10
Resultado: 100,00

Pois o exemplo que passei como alteração, atende a primeira situação e não a segunda, aí depende da forma que você quer calcular a implementação fica diferente.

henry796

Entendi, então é esse o problema.

Estou trabalhando na segunda opção, quero gerar um salário a partir das horas trabalhadas * valor hora.

Já tentei algumas coisas mas não funcionou. Como seria então?

Jonathan_Medeiros
Solucao aceita

O método getSalario ficaria da seguinte forma:

public double getSalario() {
    return getTrabalhadas() * getSalarioHora();
}

E o método setSalario, você pode remover, pois nesse contexto não será utilizável.

henry796

Maravilha!

Agora funcionou! Obrigado @Jonathan_Medeiros

Criado 20 de dezembro de 2018
Ultima resposta 20 de dez. de 2018
Respostas 8
Participantes 3