Alguem consegue ajudar neste exercicio

Considerando os diagramas abaixo, declare e encapsule as classes (Pessoa e Funcionario). O programa
deverá solicitar as entradas com o uso da classe scanner, calcular o valor do salário dependente, calcular o
salário bruto, calcular o valor do inss conforme tabela abaixo e por fim, calcular o salário líquido do
funcionário conforme regra abaixo.

salario dependente = vlrDependente * qtdeDependente
salario bruto = salario + gratificação + salarioDependente
inss = salario bruto * percentual da faixa
salario liquido = salario bruto – inss

Observar o resultado do processamento (abaixo) onde é mostrado o layout de entrada e saída.
A estrutura de repetição while deve ser usada e o conceito de tabela verdade também deve ser usada para
calcular o inss.

Pessoa
string nome
string endereco
int numero
string complemento
string bairro
string estado
int cep
int telefone
int cpf
int identidade

Metodos get e set

Funcionário
float salario
float gratificacao
float vlrDepndente
int qtdeDependente
string cargo

Tabela do INSS
Faixa Salarial Percentual de desconto
De 0,00 a 500,00 8%
De 500,01 a 1000,00 9%
De 1000.01 a 2400,00 11%
Acima de 2400,00 valor fixo 264.00

Desenvolvi essas classes mas nao sei como calcular alguem poderia ajudar

public class Pessoa {
    private String nome, endereco, bairro, estado;
    private int numero, cep, telefone, cpf, identidade;

    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    
    public String getEndereco() {
        return endereco;
    } 
    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }
    
    public String getBairro() {
        return bairro;
    }
    public void setBairro(String bairro) {
        this.bairro = bairro;
    }
    
    public String getEstado() {
        return estado;
    }
    public void setEstado(String estado) {
        this.estado = estado;
    }
    
    public int getNumero() {
        return numero;
    }
    public void setNumero(int numero) {
        this.numero = numero;
    }
    
    public int getCep() {
        return cep;
    }
    public void setCep(int cep) {
        this.cep = cep;
    }
    
    public int getTelefone() {
        return telefone;
    }
    public void setTelefone(int telefone) {
        this.telefone = telefone;
    }
    
    public int getCpf() {
        return cpf;
    }
    public void setCpf(int cpf) {
        this.cpf = cpf;
    }
    
    public int getIdentidade() {
        return identidade;
    }
    public void setIdentidade(int identidade) {
        this.identidade = identidade;
    }    
}

import java.util.Scanner;

public class Contracheque {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
       
        System.out.println("Digite nome (fim - Encerra).....: ");
        String nome = scan.nextLine();
        System.out.println("Digite cargo do funcionário ....: ");
        String cargo = scan.nextLine();
        System.out.println("Digite salário do funcionário ..: ");
        float salario = scan.nextFloat();
        System.out.println("Digite graticação do funcionário: ");
        float gratificacao = scan.nextFloat();
        System.out.println("Digite num dependentes .........: ");
        int qtdeDependente = scan.nextInt();
        System.out.println("Digite valor por dependente ....: ");
        float vlrDependente = scan.nextFloat();
        
        
        
        
        
        
      
        System.out.println("Contracheque");
        System.out.println("-----------------------------------------");
        System.out.println("Nome ...........: "+nome);
        System.out.println("Salário ........: "+salario);
        System.out.println("Gratificação ...: "+gratificacao);
        System.out.println("Valor Dependente: "+vlrDependente);
        System.out.println("Total Proventos : "+qtdeDependente);
        System.out.println("Valor INSS .....: ");
        System.out.println("Salario Liquido : ");
    }
}

public class Funcionario {
    private float salario, gratificacao, vlrDependente;
    private int qtdeDependente;
    String cargo;

    public float getSalario() {
        return salario;
    }
    public void setSalario(float salario) {
        this.salario = salario;
    }

    public float getGratificacao() {
        return gratificacao;
    }
    public void setGratificacao(float gratificacao) {
        this.gratificacao = gratificacao;
    }
    
    public float getVlrDependente() {
        return vlrDependente;
    }
    public void setVlrDependente(float vlrDependente) {
        this.vlrDependente = vlrDependente;
    }
    
    public int getQtdeDependente() {
        return qtdeDependente;
    }
    public void setQtdeDependente(int qtdeDependente) {
        this.qtdeDependente = qtdeDependente;
    }
    
    public String getCargo() {
        return cargo;
    }
    public void setCargo(String cargo) {
        this.cargo = cargo;
    }   
}

Mas aqui está como vc tem que calcular