Não está validando as variáveis setores e classe no to string ? onde eu errei ai?

package atividade2;

public class Funcionario {

    private String nome;
    private double salarioMensal;
    private String departamento;
    private int codIndentificacao;
    private String funcao;

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void setSalarioMensal(double salarioMensal) {
        if (salarioMensal < 0.0) {
            this.salarioMensal = 0.0;
        } else {
            this.salarioMensal = salarioMensal;
        }
    }

    public void setDepartamento(String departamento) {
        this.departamento = departamento;
    }

    public void setCodIndentificacao(int codIndentificacao) {
        this.codIndentificacao = codIndentificacao;
    }

    public void setFuncao(String funcao) {
        this.funcao = funcao;
    }

    @Override
    public String toString() {
        return "Funcionario: nome: " + nome + " Salario Mensal " + salarioMensal + " Departamento: " + departamento
                + " codIdentificacao: " + codIndentificacao + " funcao: " + funcao;

    }

}
package atividade2;

public class Gerente extends Funcionario {

    private int classe;
    private String setores;

    public void setClasse(int classe) {
        this.classe = classe;
    }

    public void setSetores(String setores) {
        this.setores = setores;
    }

    public String tipoClasse() {
        if (classe == 1) {
            return " classe A";
        }
        if (classe == 2) {
            return "classe B";
        }
        return "TI";
    }

    @Override
    public String toString() {
        return super.toString() + "Gerente: classe : " + classe + "Setor: " + setores;
    }
}

package atividade2;

public class Principal {

    public static void main(String[] args) {
        Funcionario f1 = new Funcionario();
        Funcionario f2 = new Funcionario();

        f1.setNome("A");
        f1.setDepartamento("Departamento A");
        f1.setSalarioMensal(1200);
        f1.setFuncao("Funcao A");
        f1.setCodIndentificacao(123);

        System.out.println("Funcionario 01-" + f1.toString());
        System.out.println("********************************************************************************************************");
        f2.setNome("B");
        f2.setDepartamento("Departamento B");
        f2.setSalarioMensal(1500);
        f2.setFuncao("Funcao B");
        f2.setCodIndentificacao(45);

        System.out.println("Funcionario 02 " + f2.toString());

    }

}

O método toString() não deveria ser usado para fazer validações, ele serve somente para você fazer uma representação textual do objeto da sua classe.

Expressei errado, quando lá na main eu digito f2. (alguma coisa) não aparece para mim f2.setClasse

Você declarou a variável f2 como sendo do tipo Funcionario.

A classe Funcionario não possui o método setClasse.

Quem possui o método setClasse é a classe Gerente.

1 curtida

Fiz o que você falou, só que ainda não setou, e continua não chamando os atributos.

Posta o que você fez.

 package atividade2;

public class Gerente extends Funcionario {

    private int classe;
    private String setores;

    public void setClasse(int classe) {
        this.classe = classe;
    }

    public void setSetores(String setores) {
        this.setores = setores;
    }

    public String tipoClasse() {
        if (classe == 1) {
            return " classe A";
        }
        if (classe == 2) {
            return "classe B";
        }
        return "TI";
    }

    @Override
    public String toString() {
        return super.toString() + "\nGerente: classe : " + classe + " Setor: " + setores;
    }
}
    identar texto pré-formatado por 4 espaços
f2.setNome("B");
        f2.setDepartamento("Departamento B");
        f2.setSalarioMensal(1500);
        f2.setFuncao("Funcao B ");
        f2.setCodIndentificacao(45);

Não importa você ter feito Gerente extender Funcionario, você tem que postar como criou o objeto f2 no método main.

1 curtida

Espera , tá certo , eu tenho que criar novo objeto para gerente.