Escreva as seguintes classes:
b) Uma subclasse de Pessoa, chamada Funcionario. A classe Funcionario deve ter os atributos matricula (inteiro) e salário (double), com seus respectivos métodos get e set. O salário de um funcionário jamais poderá ser negativo. Todo funcionário recebe seu salário em duas parcelas, sendo 60 % na primeira parcela e 40% na segunda parcela. Assim, escreva os métodos getSalarioPrimeiraParcela que retorna o valor da primeira parcela do salário (60%) e getSalarioSegundaParcela que retorna o valor da segunda parcela do salário (40 %).

Passo 1

Beleza, vamos resolver esse exercício juntos! A gente precisa trabalhar com Programação Orientada a Objetos (POO), que é uma maneira de organizar o código usando classes e objetos. No caso, vamos criar uma subclasse chamada Funcionario que herda de uma classe Pessoa. Precisamos adicionar alguns atributos como matricula e salario, garantir que o salário não seja negativo, e criar métodos para obter as duas parcelas do salário (60% e 40%). Para isso, vamos usar conceitos como encapsulamento (usando getters e setters) e herança.

Passo 2

Primeiro, vamos definir a classe Funcionario como uma subclasse de Pessoa. Isso significa que Funcionario vai herdar todos os atributos e métodos da classe Pessoa. Em muitas linguagens de programação, como Java, usamos a palavra-chave extends para isso.
public class Funcionario extends Pessoa {
    // Atributos e métodos vão aqui
}

Passo 3

Agora, vamos adicionar os atributos específicos da classe Funcionario: matricula (um número inteiro que identifica o funcionário) e salario (um número de ponto flutuante que representa o salário). Esses atributos devem ser privados para seguir o princípio do encapsulamento, o que significa que só podem ser acessados através de métodos.
public class Funcionario extends Pessoa {
    private int matricula;
    private double salario;
    
    // Métodos vão aqui
}

Passo 4

Vamos criar os métodos getters e setters para esses atributos. Os getters servem para obter o valor dos atributos, e os setters para definir esses valores. No caso do salario, queremos garantir que ele nunca seja negativo. Para isso, no setter do salario, vamos verificar se o valor é positivo antes de atribuir.
public class Funcionario extends Pessoa {
    private int matricula;
    private double salario;
    
    // Getter para matricula
    public int getMatricula() {
        return matricula;
    }
    
    // Setter para matricula
    public void setMatricula(int matricula) {
        this.matricula = matricula;
    }
    
    // Getter para salario
    public double getSalario() {
        return salario;
    }
    
    // Setter para salario com verificação
    public void setSalario(double salario) {
        if(salario >= 0){
            this.salario = salario;
        } else {
            System.out.println("O salário não pode ser negativo.");
        }
    }
}

Passo 5

Por fim, vamos criar os métodos que retornam as duas parcelas do salário: getSalarioPrimeiraParcela que retorna 60% do salário, e getSalarioSegundaParcela que retorna 40% do salário. Usamos a fórmula da porcentagem para calcular esses valores.
A fórmula para calcular uma porcentagem é:
Parte = Total times ( Porcenta>=m100 )
Então, para 60%:
Primeira Parcela = Salário times 0.60 á
E para 40%:
Segunda Parcela = Salário times 0.40 á
Vamos implementar isso nos métodos.
public class Funcionario extends Pessoa {
    private int matricula;
    private double salario;
    
    // Getters e Setters anteriores
    
    // Método para obter a primeira parcela (60%)
    public double getSalarioPrimeiraParcela() {
        return salario * 0.60;
    }
    
    // Método para obter a segunda parcela (40%)
    public double getSalarioSegundaParcela() {
        return salario * 0.40;
    }
}

Resposta

Aqui está a classe completa Funcionario seguindo todas as especificações:
public class Funcionario extends Pessoa {
    private int matricula;
    private double salario;
    
    // Getter para matricula
    public int getMatricula() {
        return matricula;
    }
    
    // Setter para matricula
    public void setMatricula(int matricula) {
        this.matricula = matricula;
    }
    
    // Getter para salario
    public double getSalario() {
        return salario;
    }
    
    // Setter para salario com verificação
    public void setSalario(double salario) {
        if(salario >= 0){
            this.salario = salario;
        } else {
            System.out.println("O salário não pode ser negativo.");
        }
    }
    
    // Método para obter a primeira parcela (60%)
    public double getSalarioPrimeiraParcela() {
        return salario * 0.60;
    }
    
    // Método para obter a segunda parcela (40%)
    public double getSalarioSegundaParcela() {
        return salario * 0.40;
    }
}
Com essa classe, você pode criar objetos Funcionario, definir suas matrículas e salários (garantindo que o salário não seja negativo), e obter as duas parcelas do salário conforme solicitado.

Exercícios relacionados