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
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
.
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
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 é:
Então, para 60%:
E para 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
(String) Escreva um programa que muda a ordem da primeira e da última palavra de uma frase.
Apresente um esquema recursivo para dividir dois números inteiros usando contagens sucessivas. Por exemplo: calcular A/B sendo
e
. Sabemos que dividir A por B é o mesmo que descobrir quantas vezes B cabe em A . Assim, para dividir 18 por 4 podemos contar o no. de vezes que 4 cabe dentro de 18 .
Escreva as seguintes classes:
d) Uma classe que contenha o método main e instancie os seguintes objetos com os respectivos valores:
d) Uma classe que contenha o método main e instancie os seguintes objetos com os respectivos valores:
pessoa1 (Pessoa) | pessoa2 | pessoa3 | pessoa4 |
---|---|---|---|
nome: João | (Funcionario) | (Professor) | (Professor) |
sobrenome: Silva | nome: Maria | nome: José | nome: Ana |
sobrenome: | sobrenome: | sobrenome: | |
Medeiros | Souza | Oliveira | |
salário: 1750.00 | salário: -500.00 | salário: 1500.00 |
Implemente:
a) Uma classe MeioDeTransporte com atributos ligado (boolean) e velocidade (inteiro) e métodos liga() e desliga (). O método ligado torna o atributo ligado true e o método desliga torna o atributo ligado false, além de tornar a velocidade zero. Crie também métodos get e set para modificar o atributo velocidade, sendo que a velocidade não pode ser negativa.
a) Uma classe MeioDeTransporte com atributos ligado (boolean) e velocidade (inteiro) e métodos liga() e desliga (). O método ligado torna o atributo ligado true e o método desliga torna o atributo ligado false, além de tornar a velocidade zero. Crie também métodos get e set para modificar o atributo velocidade, sendo que a velocidade não pode ser negativa.