Observação:
a) O método calcularSalario() da classe Empregado é abstrato.
b) O método calcularSalario() da classe Chefe retorna o
valor do salarioMensal
c) O método calcularSalario() da classe Comissionado
retorna o valor da seguinte expressão, salarioBase + comissao*quatidade.
d) Faça uma sobrecarga dos métodos construtores.
Exercício 2 - Crie um programa em Java para manipular um vetor de 5 objetos da classe Comissionado criada no Exercício 1. Neste vetor serão armazenadas as instâncias desta classe, lidas a partir do teclado. O programa deverá cadastrar e ao final exibir os dados(nome, endereço, salarioBase, comissão e o saláriofinal(salarioBase+comissão*quantidade), que é calculado pelo método calcularSalario(), para cada um dos objetos no console de saída). Neste momento é obrigatória a chamada do método polimórfico presente nessas classes.
Observação: utilize obrigatoriamente os métodos de manipulação do objeto para alterar, obter e calcular as suas propriedades, inclusive na hora de escrevê-las na tela.
Exercício 3 - Analise a situação descrita abaixo:
Sua empresa foi contratada para desenvolver um software para administrar os salários dos funcionários de uma instituição de educação. Seu corpo docente que é formado por Professores Estatutários e Professores Contratados. A seguir é apresentado um diagrama de classes e pacotes do software descrevendo algumas das características de cada:
Atenção: Na classe Funcionario calcularSalrio() é um método abastrato. Na classe Professor o método calcularSalario() que retorna o valor da (cargaHoraria*valorDaHora). Na classe Contatado o método calcualrSalario() retorna o valor da (cargaHoraria*valorDaHora-inss). Na classe Estatutario o método calcularSalario() retorna o valor da (cargaHoraria * valorDaHora + trienio – rioprev).
Exercício 4 - Crie um programa em Java para manipular a classe Estatutario na questão número 1. Crie uma instancias desta classe.
O programa deverá cadastrar e ao final exibir os dados(matricula, nome, cargaHoraria e o salario. Os valores serão passados como parâmetros pela linha de comando.
Observação: utilize obrigatoriamente os métodos de manipulação do objeto para alterar, obter e calcular as suas propriedades, inclusive na hora de escrevê-las na tela.
Exercício 5 - Utilizando a linguagem Java implemente todas as classes dos diagramas abaixo, encapsulando obrigatoriamente todos os atributos.
Exercício 6
Crie um programa em Java para manipular um vetor de 5 objetos das classes BaseTriangular e BaseCircular da questão anterior.
Exercício 2 - Crie um programa em Java para manipular um vetor de 5 objetos da classe Comissionado criada no Exercício 1. Neste vetor serão armazenadas as instâncias desta classe, lidas a partir do teclado. O programa deverá cadastrar e ao final exibir os dados(nome, endereço, salarioBase, comissão e o saláriofinal(salarioBase+comissão*quantidade), que é calculado pelo método calcularSalario(), para cada um dos objetos no console de saída). Neste momento é obrigatória a chamada do método polimórfico presente nessas classes.
Observação: utilize obrigatoriamente os métodos de manipulação do objeto para alterar, obter e calcular as suas propriedades, inclusive na hora de escrevê-las na tela.
Exercício 3 - Analise a situação descrita abaixo:
Sua empresa foi contratada para desenvolver um software para administrar os salários dos funcionários de uma instituição de educação. Seu corpo docente que é formado por Professores Estatutários e Professores Contratados. A seguir é apresentado um diagrama de classes e pacotes do software descrevendo algumas das características de cada:
Utilizando a linguagem Java
implemente todas as classes dos diagramas acima, encapsulando obrigatoriamente todos os atributos.
Atenção: Na classe Funcionario calcularSalrio() é um método abastrato. Na classe Professor o método calcularSalario() que retorna o valor da (cargaHoraria*valorDaHora). Na classe Contatado o método calcualrSalario() retorna o valor da (cargaHoraria*valorDaHora-inss). Na classe Estatutario o método calcularSalario() retorna o valor da (cargaHoraria * valorDaHora + trienio – rioprev).
Exercício 4 - Crie um programa em Java para manipular a classe Estatutario na questão número 1. Crie uma instancias desta classe.
O programa deverá cadastrar e ao final exibir os dados(matricula, nome, cargaHoraria e o salario. Os valores serão passados como parâmetros pela linha de comando.
Observação: utilize obrigatoriamente os métodos de manipulação do objeto para alterar, obter e calcular as suas propriedades, inclusive na hora de escrevê-las na tela.
Piramide: altura / 3 * lado
BaseTriangular: (base * base) / 2 * altura
BaseCircular: pi * raio * raio * altura
Crie um programa em Java para manipular um vetor de 5 objetos das classes BaseTriangular e BaseCircular da questão anterior.
Nenhum comentário dos alunos de terça!? Tenho certeza, que o pessoal de quarta vai reverter esse placar !!!
ResponderExcluirProfessor estou com dúvida na questão 2, na criação do objeto com vetor...
ResponderExcluirBoa noite alunos ! Atendendo a solicitação do nosso estimado Jean, aluno de quarta, segue a sugestão de criação de vetor, do exercício 2:
ResponderExcluirComissionado c[]=new Comissionado[5];
// criação dos objetos
for(int i=0; i<c.length; i++) {
c[i] =new Comissionado();
}
// inserção de valores no vetor
for(int i=0; i<c.length; i++) {
System.out.print("Entre com o Nome.........: ");
c[i].setNome(sc.nextLine());
....
}
// exibição do vetor
for( int i=0; i<c.length; i++) { {
System.out.println("Nome............: "+ c[i].getNome());
....
}
Um abraço !
Valeu Professor! Deu certo aqui...
ResponderExcluirpackage Comum;
ResponderExcluirpublic abstract class Empregado {
private String nome;
private String endereco;
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 abstract double calcularSalario();
}
package Comum;
import javax.swing.JOptionPane;
import empregado.Chefe;
import empregado.Comissionado;
public class Teste {
public static void main(String[] args) {
Comissionado c1 = new Comissionado ();
Chefe c2 = new Chefe();
c1.setNome(JOptionPane.showInputDialog ("Insira o nome do Funcionario Comissionado:"));
c1.setEndereco(JOptionPane.showInputDialog ("Insira o endereço do Funcionario Comissionado:"));
c1.setSalarioBase(Integer.parseInt(JOptionPane.showInputDialog ("Insira o Salario Base:")));
c1.setComissao(Integer.parseInt(JOptionPane.showInputDialog ("Insira a comissao:")));
c1.setQuantidade(Integer.parseInt(JOptionPane.showInputDialog ("Insira a quantidade vendida:")));
c2.setNome(JOptionPane.showInputDialog ("Insira o nome do Lider:"));
c2.setEndereco(JOptionPane.showInputDialog ("Insira o endereço do Lider:"));
c2.setSalarioMensal(Integer.parseInt(JOptionPane.showInputDialog ("Insira o Salario Mensal:")));
JOptionPane.showMessageDialog(null,"\nNome do Funcionario: " + c1.getNome()
+"\nEndereço do funcionario:" + c1.getEndereco() + "\nSalario Base do Funcionario :" + c1.getSalarioBase()
+ "\nComissão: " + c1.getComissao() + "\nQuantidade de vendas" + c1.getQuantidade() + "\nCalcularSalario" + c1.calcularSalario());
JOptionPane.showMessageDialog(null,"\nNome do Chefe: " + c2.getNome()
+"\nEndereço do Chefe:" + c2.getEndereco() + "\nSalario do Chefe" + c2.getSalarioMensal());
}
}
package empregado;
import Comum.Empregado;
public class Chefe extends Empregado {
private double salarioMensal;
public void setSalarioMensal(double salarioMensal){
this.salarioMensal= salarioMensal;
}
public double getSalarioMensal(){
return salarioMensal;
}
public double calcularSalario(){
return salarioMensal;
}
}
package empregado;
import Comum.Empregado;
public class Comissionado extends Empregado {
private double salarioBase;
private double comissao;
private int quantidade;
public double getSalarioBase() {
return salarioBase;
}
public void setSalarioBase(double salarioBase) {
this.salarioBase = salarioBase;
}
public double getComissao() {
return comissao;
}
public void setComissao(double comissao) {
this.comissao = comissao;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
public double calcularSalario(){
return salarioBase + comissao*quantidade;
}
}
Professor essa é a resolução do exercício 1.
ExcluirExercício 2
ResponderExcluirpackage Interface;
import java.util.Scanner;
public class AppEmpregado {
public static void main(String[] args) {
int[] obj = new int[5];
Scanner entrada = new Scanner(System.in);
Comissionado C[] = new Comissionado[5];
for(int i = 0; i < C.length; i++){
C[i] = new Comissionado();
}
for(int i = 0; i < C.length; i++){
System.out.println("Informe o nome do empregado: ");
String nome = entrada.next();
C[i].setNome(nome);
System.out.println("Informe o endereço do empregado: ");
String endereco = entrada.next();
C[i].setEndereco(endereco);
System.out.println("Informe o salário base do empregado: ");
double salarioBase = entrada.nextDouble();
C[i].setSalarioBase(salarioBase);
System.out.println("Informe o valor da comissão do empregado: ");
double comissao = entrada.nextDouble();
C[i].setComissao(comissao);
System.out.println("Informe a quantidade de comissões do empregado: ");
int quantidade = entrada.nextInt();
C[i].setQuantidade(quantidade);
}
for(int i = 0; i < C.length; i++){
System.out.println("Nome do empregado na posição " + i + ": " + C[i].getNome());
System.out.println("Endereço do empregado na posição " + i + ": " + C[i].getEndereco());
System.out.println("Salário base do empregado na posição " + i + ": " + C[i].getSalarioBase());
System.out.println("Valor da comissão do empregado na posição " + i + ": " + C[i].getComissao());
System.out.println("Quantidade de comissões do empregado na posição " + i + ": " + C[i].getQuantidade());
System.out.println("Novo salário do empregado na posição " + i + ": " + C[i].calcularSalario());
}
}
}
Exercício 5
ResponderExcluirpackage Interface;
public interface Formas {
double pi = 3.14; //por definição todo atributo de uma interface é final
double calcularVolume();
}
package Interface;
public abstract class FormasTridimensionais implements Formas{
private double altura;
public double getAltura() {
return altura;
}
public void setAltura(double altura) {
this.altura = altura;
}
}
package Interface;
public class Piramide extends FormasTridimensionais {
private double lado;
public double getLado() {
return lado;
}
public void setLado(double lado) {
this.lado = lado;
}
@Override
public double calcularVolume(){
return getAltura()/(lado * 3);
}
}
package Interface;
public class BaseTriangular extends Piramide {
private double base;
public double getBase() {
return base;
}
public void setBase(double base) {
this.base = base;
}
@Override
public double calcularVolume(){
return (base * base)/2 * getAltura();
}
}
package Interface;
public class BaseCircular extends Piramide {
private double raio;
public double getRaio() {
return raio;
}
public void setRaio(double raio) {
this.raio = raio;
}
@Override
public double calcularVolume(){
return pi * raio * raio * getAltura();
}
}
Exercício 6
ResponderExcluirpackage Interface;
import java.util.Scanner;
public class AppPiramide {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
BaseTriangular T[] = new BaseTriangular[5];
BaseCircular C[] = new BaseCircular[5];
for(int i = 0; i < C.length; i++){
T[i] = new BaseTriangular();
}
for(int i = 0; i < C.length; i++){
C[i] = new BaseCircular();
}
for(int i = 0; i < C.length; i++){
System.out.println("Informe a altura do triângulo: ");
double altura = entrada.nextDouble();
T[i].setAltura(altura);
System.out.println("Informe o lado do triângulo: ");
double lado = entrada.nextDouble();
T[i].setLado(lado);
System.out.println("Informe a base do triângulo: ");
double base = entrada.nextDouble();
T[i].setBase(base);
}
for(int i = 0; i < C.length; i++){
System.out.println("Informe a altura do circulo: ");
double altura = entrada.nextDouble();
C[i].setAltura(altura);
System.out.println("Informe o lado do circulo: ");
double lado = entrada.nextDouble();
C[i].setLado(lado);
System.out.println("Informe o raio do circulo: ");
double raio = entrada.nextDouble();
C[i].setRaio(raio);
}
for(int i = 0; i < C.length; i++){
System.out.println("Altura do triângulo na posição " + i + ": " + T[i].getAltura());
System.out.println("Lado do triângulo na posição " + i + ": " + T[i].getLado());
System.out.println("Base do triângulo na posição " + i + ": " + T[i].getBase());
System.out.println("Volume do triângulo na posição " + i + ": " + T[i].calcularVolume());
}
for(int i = 0; i < C.length; i++){
System.out.println("Altura do circulo na posição " + i + ": " + C[i].getAltura());
System.out.println("Lado do circulo na posição " + i + ": " + C[i].getLado());
System.out.println("Raio do circulo na posição " + i + ": " + C[i].getRaio());
System.out.println("Volume do circulo na posição " + i + ": " + C[i].calcularVolume());
}
}
}
Pessoal, observem que os métodos definidos como abstratos, obrigam a redefinição desses métodos nas subclasses que estenderem essa superclasse. #ficaadica #blogDoMonteiro
ResponderExcluirBom dia professor!
ExcluirCom respeito aos métodos seria possível a criação de uma interface(s) "calcular salario" por exemplo, e, a partir daí implementar as classes que necessitem destes métodos? Esse caminho iria ferir o conceito de respeitar o que diz o diagrama? Ou continuaria dentro do que se pede?
Segue abaixo como fiz no exemplo do método calculaSalario:
ResponderExcluirCriei uma interface para o método:
package comum;
public abstract interface CalcSalario
{
public double calcularSalario();
}
CLASSE EMPREGADO:
package comum;
// JÁ QUE IMPLENTEI A INTERFACE NA CLASSE MÃE TODAS AS SUB-CLASSES POSSUEM O MÉTODO.
public abstract class Empregado implements CalcSalario
{
private String nome, endereco;
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;
}
@Override
public double calcularSalario(){
return 0;
}
}
SUB- CLASSE CHEFE:
package empregado;
import comum.Empregado;
public class Chefe extends Empregado
{
private double salarioMensal;
public double getSalarioMensal(double salarioMensal)
{
return salarioMensal;
}
public void setSalarioMensal(double salarioMensal)
{
this.salarioMensal = salarioMensal;
}
@Override
public double calcularSalario()
{
return this.salarioMensal;
}
}
SUB -CLASSE COMISSIONADO:
package empregado;
import comum.Empregado;
public class Comissionado extends Empregado
{
private double salarioBase, comissao;
private int quantidade;
public double getSalarioBase()
{
return salarioBase;
}
public void setSalarioBase(double salarioBase)
{
this.salarioBase = salarioBase;
}
public double getComissao()
{
return comissao;
}
public void setComissao(double comissao)
{
this.comissao = comissao;
}
public int getQuantidade()
{
return quantidade;
}
public void setQuantidade(int quantidade)
{
this.quantidade = quantidade;
}
@Override
public double calcularSalario() {
return salarioBase + comissao*quantidade;
}
}
CLASSE COM MAIN:
package comum;
import javax.swing.JOptionPane;
import empregado.*;
public class Start_Empregados {
public static void main(String[] args)
{
Chefe novo = new Chefe();
novo.setNome(JOptionPane.showInputDialog("Digite o nome: "));
novo.setEndereco(JOptionPane.showInputDialog("Digite o endereço: "));
novo.setSalarioMensal(Double.parseDouble(JOptionPane.showInputDialog("Digite o Salário: ")));
JOptionPane.showMessageDialog(null, "Nome : "+ novo.getNome() + "Endereço : "
+ novo.getEndereco() + "O salário atualizado é : "+ novo.calcularSalario());
Comissionado n = new Comissionado();
n.setNome(JOptionPane.showInputDialog("Digite o nome: "));
n.setEndereco(JOptionPane.showInputDialog("Digite o endereço: "));
n.setSalarioBase(Double.parseDouble(JOptionPane.showInputDialog("Digite o Salário: ")));
n.setQuantidade(Integer.parseInt(JOptionPane.showInputDialog("Digite a quantidade: ")));
n.setComissao(Double.parseDouble(JOptionPane.showInputDialog("Digite a comissão: ")));
JOptionPane.showMessageDialog(null, "Nome : "+ n.getNome() + "Endereço : "
+ n.getEndereco() + "Salario " + n.getSalarioBase() + "Qiantidade " + n.getQuantidade()
+ "Comissão " + n.getComissao() + "O salário atualizado é : "+ n.calcularSalario());
}
}
Exercicio 5:
Excluirpackage ex5;
public interface Formas {
final double pi =3.14;
public abstract double calcularVolume();
}
package ex5;
public abstract class FormasTridimensionais implements Formas{
private double altura;
public void setAltura(double altura){
this.altura=altura;
}
public double getAltura(){
return this.altura;
}
}
package ex5;
public class Piramide extends FormasTridimensionais{
private double lado;
public double calcularVolume(){
return getAltura()/3*lado;
}
public void setLado(double lado){
this.lado=lado;
}
public double getLado(){
return this.lado;
}
}
package ex5;
public class BaseTriangular extends Piramide{
private double base;
public double calcularVolume(){
return (this.base*this.base)/2*getAltura();
}
public double getBase() {
return base;
}
public void setBase(double base) {
this.base = base;
}
}
package ex5;
public class BaseCircular extends Piramide{
private double raio;
public double calcularVolume(){
return pi*this.raio*this.raio*getAltura();
}
public double getRaio() {
return raio;
}
public void setRaio(double raio) {
this.raio = raio;
}
}
Exec nº 6 com entradas em JOptionPane(caso alguém tenha dúvidas) :
ResponderExcluirpackage ex5;
import javax.swing.*;
public class AppEx6 {
public static void main(String[] args) {
BaseTriangular[] BT = new BaseTriangular[5];
BaseCircular[] BC = new BaseCircular[5];
for(int i=0; i<BT.length; i++){
BT[i] = new BaseTriangular();
BC[i] = new BaseCircular();
}
for(int i=0;i<BT.length;i++){
double vai=Double.parseDouble(JOptionPane.showInputDialog("altura do OBJ Tiangular nº "+i));
BT[i].setAltura(vai);
BT[i].setBase(Double.parseDouble(JOptionPane.showInputDialog("BASE do OBJ Triangular nº "+i)));
BC[i].setAltura(Double.parseDouble(JOptionPane.showInputDialog("altura do OBJ Circular nº "+i)));
BC[i].setRaio(Double.parseDouble(JOptionPane.showInputDialog("Raio do OBJ Circular nº "+i)));
}
for(int i=0;i<BT.length;i++){
JOptionPane.showMessageDialog(null,"Dados do OBJ TRIANGULAR nº "+i+ "são: \nBase: "+
BT[i].getBase()+"\nAltura: "+BT[i].getAltura()+
"\nVolume :"+BT[i].calcularVolume());
JOptionPane.showMessageDialog(null,"Dados do OBJ Circular nº "+i+ "são: \nRaio: "+
BC[i].getRaio()+"\nAltura: "+BC[i].getAltura()+
"\nVolume :"+BC[i].calcularVolume());
}
}
}
Exercício 02
ResponderExcluirpackage empregado;
import javax.swing.JOptionPane;
public class UsaComissionado {
public static void main(String[] args) {
Comissionado c[]= new Comissionado[5];
for(int i=0; i<c.length; i++) {
c[i] =new Comissionado();
}
for (int x=0; x<5; x++){
c[x].setNome(JOptionPane.showInputDialog("Digite o nome"));
c[x].setEndereco(JOptionPane.showInputDialog("Digite o Endereco"));
c[x].setSalarioBase(Double.parseDouble(JOptionPane.showInputDialog("Digite o Salario Base")));
c[x].setComissao(Double.parseDouble(JOptionPane.showInputDialog("Digite a Comissão")));
c[x].setQuantidade(Integer.parseInt(JOptionPane.showInputDialog("Digite a Quantidade")));
}
for (int x=0; x<5; x++){
JOptionPane.showMessageDialog(null,"Nome: "+c[x].getNome()+"\nEndereço:"
+c[x].getEndereco()+"\nSalario Base"+c[x].getSalarioBase()+"\nComissão"
+c[x].getComissao()+"\nSalário Final"+c[x].calcularSalario());
}
}
}