Estou praticando em Java, e preciso de ajuda na resolução de um exercicio.
É um programa que calcula o Salário Líquido de um funcionário. E me pede para criar uma classe CalculaSalario, onde o Construtor recebe um objeto Funcionario e guarda-lo em uma variavél privada dentro da classe Calcula Salario. A CalculaSalario ainda terá dois métodos Liquido e INSS que retornam os valores calculados baseado no salario do funcionario. O salário liquido é composto pelo salario bruto - inss.
O problema é que não esta calculando no meu exercicio, e o salário digitado é o salario que é mostrando. Embaixo as classes.
public class Main {
public static void main(String[] args) {
// Cria (instancia) Cidade, Cargo, CalculoSalario e Funcionario
Cidade novaCidade = new Cidade();
Cargo novoCargo = new Cargo();
CalculaSalario meuSalario = new CalculaSalario();
Funcionario novoFuncionario = new Funcionario();
Scanner dadosMenu = new Scanner(System.in);
int opcao = 1;
while (opcao > 0) {
System.out.println("-------------------------------------");
System.out.println("-----------------MENU----------------");
System.out.println("-------------------------------------");
System.out.println("------------- 0 SAIR ----------------");
System.out.println("--------------1 CADASTRO ------------");
System.out.println("-------------------------------------");
opcao = dadosMenu.nextInt();
Scanner dados = new Scanner(System.in);
System.out.println("Informe a Matricula do Funcionário: ");
int dadosMatricula = dados.nextInt();
System.out.println("Informe o Nome do Funcionário: ");
String dadosNome = dados.nextLine();
// outros ..
// Preenchendo os Atributos de Cidade e Cargo
novaCidade.setNomeCidade(dadosCidade);
novaCidade.setUf(dadosUf);
novoCargo.setNomeCargo(dadosCargo);
//Preenchendo os Atributos do Funcionario
novoFuncionario.setCidade(novaCidade);
novoFuncionario.setCargo(novoCargo);
novoFuncionario.setCodigoFuncionario(dadosMatricula);
novoFuncionario.setNomeFuncionario(dadosNome);
novoFuncionario.setEndereco(dadosEndereco);
novoFuncionario.setBairro(dadosBairro);
novoFuncionario.setCep(dadosCep);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
novoFuncionario.setDataNasc(sdf.parse(dadosData));
} catch (Exception e) {
}
novoFuncionario.setSalario(dadosSalario);
meuSalario.CalculaSalario(novoFuncionario);
novoFuncionario.setCargo(novoCargo);
novoFuncionario.setCidade(novaCidade);
novoFuncionario.mostraInformacao();
}
}
}
public class CalculaSalario implements Serializable {
public void CalculaSalario(Funcionario f) {
}
double getInss(double salario) {
if (salario <= 911.70) {
double salarioInss = (salario * 0.8) + salario;
}
if (salario >= 911.71 && salario <= 1519.50) {
double salarioInss = (salario * 0.9) + salario;
}
if (salario >= 1519.51 && salario <= 3038.99) {
double salarioInss = (salario * 0.11) + salario;
}else {
double salarioInss = salario + 334.28;
}
return salario;
}
void getLiquido(double salario){
double salarioFinal = this.getInss(salario) - salario;
salario = salarioFinal + salario;
}
}
public class Cargo implements Serializable{
private String nomeCargo;
public String getNomeCargo() {
return nomeCargo;
}
public void setNomeCargo(String nomeCargo) {
this.nomeCargo = nomeCargo;
}
@Override
public String toString() {
return getNomeCargo();
}
}
public class Cidade implements Serializable{
private String nomeCidade;
private String uf;
public String getNomeCidade() {
return nomeCidade;
}
public void setNomeCidade(String nomeCidade) {
this.nomeCidade = nomeCidade;
}
public String getUf() {
return uf;
}
public void setUf(String uf) {
this.uf = uf;
}
@Override
public String toString() {
return getNomeCidade();
}
}
public class Funcionario implements Serializable{
private int codigoFuncionario;
private String nomeFuncionario;
private String endereco;
private String bairro;
private String cep;
private Date dataNasc;
private double salario;
private Cargo cargo;
private Cidade cidade;
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public Cargo getCargo() {
return cargo;
}
public void setCargo(Cargo cargo) {
this.cargo = cargo;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public Cidade getCidade() {
return cidade;
}
public void setCidade(Cidade cidade) {
this.cidade = cidade;
}
public int getCodigoFuncionario() {
return codigoFuncionario;
}
public void setCodigoFuncionario(int codigoFuncionario) {
this.codigoFuncionario = codigoFuncionario;
}
public Date getDataNasc() {
return dataNasc;
}
public void setDataNasc(Date dataNasc) {
this.dataNasc = dataNasc;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getNomeFuncionario() {
return nomeFuncionario;
}
public void setNomeFuncionario(String nomeFuncionario) {
this.nomeFuncionario = nomeFuncionario;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
void mostraInformacao(){
System.out.println("Matricula :" + getCodigoFuncionario());
System.out.println("Nome :" + getNomeFuncionario());
System.out.println("Endereço :" + getEndereco());
System.out.println("Bairro :" + getBairro());
System.out.println("CEP :" + getCep());
System.out.println("Data :" + getDataNasc());
System.out.println("Salário :" + getSalario());
System.out.println("Cargo :" + getCargo().getNomeCargo());
System.out.println("Cidade :" + getCidade().getNomeCidade());
System.out.println("UF :" + getCidade().getUf());
}
}