Preciso de ajuda com meu codigo, sou novo em java e ainda estou tentando aprender porém mesmo após pedir alguma ajuda ao professor fiquei com duvidas nisso, segue abaixo codigo:
Esta tudo no pastebin.com/ porém só posso inserir 2 links
Class Main: https://pastebin.com/muZhEsM9
Class Funcionarios " /5PEB0w09"
Class FuncionariosComissionados " /sBfdJzU2"
Class FuncionariosComissionadosBaseSalario " /BtufmMRD"
Class FuncionariosAssalariados " /GfSeNTc0"
Class FuncionariosHoristas " /1PdJWhN0"
Class PagamentoFuncionarios " /G8dterXG"
FuncionariosUI Aqui é onde está o problema o resto vou deixar só para referencia se necessário:
FuncionariosUI
package ui;
import java.util.ArrayList;
import java.util.Scanner;
import funcionarios.Funcionario;
import funcionarios.FuncionarioAssalariado;
import funcionarios.FuncionarioComissionado;
import funcionarios.FuncionarioComissionadoBaseSalario;
import funcionarios.FuncionarioHorista;
public class FuncionariosUI {
public static Scanner teclado;
private ArrayList Lista;
private boolean quit = false;
public FuncionariosUI(){
teclado = new Scanner(System.in);
Lista = new ArrayList<Funcionario>();
}
public void menu(){
do {
System.out.println("\n----Menu----\n");
System.out.println("Escolha a opção desejada:");
System.out.println("[1]Criar Novo Funcionario \n[2]Consultar Metodos de Pagamento\n"
+ "[3]Consultar Funcionarios\n[4]Sair");
switch(teclado.nextInt()){
case 1:
criaFuncionario();
break;
case 2:
consultaPagamentos();
break;
case 3:
System.out.println("---- Consultar Funcionarios ----");
break;
case 4:
System.out.println("Sair!");
quit = true;
break;
}
}while(quit == false);
}
private void consultaPagamentos() {
System.out.println("---- Consultar Metodos de Pagamento ----\n");
System.out.println("Escolha o tipo do Funcionario que deseja consultar:");
System.out.println("[1]Funcionarios Comissionados \n[2]Funcionarios Comissionados com Salario"
+ "\n[3]Funcionarios Assalariados \n[4]Funcionarios Horistas \n[0]Sair");
consultaPagamentos(teclado.nextInt());
}
private void criaFuncionario() {
System.out.println("---- Criar Novo Funcionario ----\n");
System.out.println("Escolha o tipo do Funcionario:");
System.out.println("[1]Funcionario Comissionado \n[2]Funcionario Comissionado com Salario"
+ "\n[3]Funcionario Assalariado \n[4]Funcionario Horista \n[0]Sair");
criaFuncionarioNovo(teclado.nextInt());
}
public void criaFuncionarioNovo(int menu) {
switch(menu){
case 1:
System.out.println("Funcionario Comissionado...\n");
criaFuncionarioComissionado();
break;
case 2:
System.out.println("Funcionario Comissionado com salario Base\n");
criaFuncionarioComissionadoSalario();
break;
case 3:
System.out.println("Funcionario Assalariado\n");
criaFuncionarioAssalariado();
break;
case 4:
System.out.println("Funcionario Horista\n");
criaFuncionarioHorista();
break;
case 0:
System.out.println("Sair!\n");
break;
default:
System.out.println("Opção Invalida!");
}
}
private void criaFuncionarioComissionado() {
System.out.println("---- Criar Funcionario Comissionado ---- \n");
System.out.println("Digite o nome do novo funcionario Comissionado");
teclado.next();
String nome = teclado.toString();
System.out.println("Digite o CPF do funcionario novo...");
teclado.next();
String CPF = teclado.toString();
System.out.println("Digite o valor da comissao do funcionario novo...");
double comissao = teclado.nextDouble();
System.out.println("Digite o percentual sobre as vendas do funcionario novo...");
double percentual = teclado.nextDouble();
Lista.add(new FuncionarioComissionado(nome, CPF, comissao, percentual));
System.out.println("Funcionario Criado!");
}
private void criaFuncionarioComissionadoSalario(){
System.out.println("---- Criar Funcionario Comissionado Assalariado ---- \n");
System.out.println("Digite o nome do novo funcionario Comissionado Assalariado");
teclado.next();
String nome = teclado.toString();
System.out.println("Digite o CPF do funcionario novo...");
teclado.next();
String CPF = teclado.toString();
System.out.println("Digite o valor da comissao do funcionario novo...");
double comissao = teclado.nextDouble();
System.out.println("Digite o percentual sobre as vendas do funcionario novo...");
double percentual = teclado.nextDouble();
System.out.println("Digite o valor do salario do funcionario novo...");
double salario = teclado.nextDouble();
Lista.add(new FuncionarioComissionadoBaseSalario(nome, CPF, comissao, percentual, salario));
System.out.println("Funcionario Criado!");
}
private void criaFuncionarioAssalariado(){
System.out.println("---- Criar Funcionario Assalariado ---- \n");
System.out.println("Digite o nome do novo funcionario assalariado.");
teclado.next();
String nome = teclado.toString();
System.out.println("Digite o CPF do funcionario novo...");
teclado.next();
String CPF = teclado.toString();
System.out.println("Digite o Salario do funcionario novo...");
double salario = teclado.nextDouble();
Lista.add(new FuncionarioAssalariado(nome, CPF, salario));
System.out.println("Funcionario Criado!");
}
private void criaFuncionarioHorista(){
System.out.println("---- Criar Funcionario Horista ---- \n");
System.out.println("Digite o nome do novo funcionario horista.");
teclado.next();
String nome = teclado.toString();
System.out.println("Digite o CPF do funcionario novo...");
teclado.next();
String CPF = teclado.toString();
System.out.println("Digite o Salario por hora do funcionario novo...");
double salarioPorHora = teclado.nextDouble();
System.out.println("Digite quantidade total de horas trabalhas pelo funcionario...");
double horasTrabalhadas = teclado.nextDouble();
Lista.add(new FuncionarioHorista(nome, CPF, salarioPorHora, horasTrabalhadas));
System.out.println("Funcionario Criado!");
}
public void consultaPagamentos(int menu){
switch(menu) {
case 1:
System.out.println("Funcionarios Comissionados");
System.out.println("O pagamento dos funcionarios comissionados é feito através"
+ " da comissão vezes o percentual de vendas.");
break;
case 2:
System.out.println("Funcionarios Comissionados com Salario Base");
System.out.println("O pagamento dos funcionarios comissionados com salario base "
+ "é a soma da comissão vezes o percentual de vendas, com o salario mensal.");
break;
case 3:
System.out.println("Funcionarios Assalariados");
System.out.println("O pagamento dos funcionarios assalariados é feito"
+ " semanalmente pelo salario previamente acordado.");
break;
case 4:
System.out.println("Funcionarios Horistas");
System.out.println("O pagamento dos funcionarios horistas é calculado de acordo com"
+ " as horas trabalhadas, se o funcionario trabalhou menos de 40 horas "
+ "semanais, é o Salario por hora vezes as horas trabalhadas, porém,"
+ " se trabalhou mais de 40 horas semanais, as horas "
+ "adicionais recebem adicional de 50%.");
break;
case 0:
System.out.println("Sair!");
break;
default:
System.out.println("Opção Invalida!");
}
}
public void consultaCadastros(){
for(int i = 0;i<Lista.size();i++){
Funcionario f = Lista.get(i);
System.out.println("Nome: "+ f.getNome());
System.out.println("CPF: " + f.getCPF());
if (f instanceof FuncionarioComissionado){
System.out.println("Percentual: " + ((FuncionarioComissionado)f).getPercentual());
System.out.println("Comissão: " + ((FuncionarioComissionado)f).getComissao());
}
if (f instanceof FuncionarioComissionadoBaseSalario){
System.out.println("Percentual: " + ((FuncionarioComissionadoBaseSalario)f).getPercentual());
System.out.println("Salario Base: " + ((FuncionarioComissionadoBaseSalario)f).getSalario());
System.out.println("Comissão: " + ((FuncionarioComissionadoBaseSalario)f).getComissao());
}
if (f instanceof FuncionarioAssalariado){
System.out.println("Salario: " + ((FuncionarioAssalariado)f).getSalario());
}
if (f instanceof FuncionarioHorista){
System.out.println("Horas Trabalhadas: " + ((FuncionarioHorista) f).getHorasTrabalhadas());
System.out.println("Salario Hora: " + ((FuncionarioHorista) f).getSalarioHora());
}
}
}
O problema está no ultimo metodo (Public Void ConsultaCadastro() {})