Fala galera do GUJ blzera?
o que acontece é que encapsulei (acredito que certo) e criei os métodos para conseguir escrever nos atributos.
Mais no retorno os valores vem todos como zero, ou seja, pelo o que eu vi não consigo pegar o que tem naqueles atributos, o sistema é pra cadastrar um Celetista ou Pessoa Jurídica.
os códigos são esses.
Desculpe se fiz muita coisa e era mais simples que isso. eu tenho ainda que cadastrar os nomes, mais isso não é complicado, quero só conseguir fazer essas partes retornarem os valores corretos.
Obs: Pra quem quiser entender o Exercício, ele está em Anexo, obrigado desde já. Eu também não consegui usar o Construtor para inicializar os dados.l
package Colaboradores;
public class Principal {
public static void main(String[] args){
Menu menu=new Menu();
menu.Menu1();
}
}
package Colaboradores;
import java.util.Scanner;
public class Menu {
public void Menu1() {
Scanner in = new Scanner(System.in);//Instanciar o Scanner para ler os dados
String opcao;
int escolha1 = 3;
int escolha2 = 3;
while ((escolha1 != 0) && (escolha1 != 1) && (escolha1 != 2)) {//Retornar ao Menu
//****************************MENU**************************
System.out.println("Escolha uma das seguintes Opções");
System.out.println("1 - Celetista");
System.out.println("2 - Pessoa Jurídica");
System.out.println("0 - Sair");
System.out.println("\n");
//************************Fim do MENU***********************
opcao = in.nextLine();//Ler opção do Menu
escolha1 = Integer.parseInt(opcao);//Converter opção do Menu
/*-------------------------------------------------------
*------------------OPÇÂO CELETISTA----------------------
*-----------------------------------------------------*/
if (escolha1 == 1) {//CELETISTA
do {
Celetista cel = new Celetista();
//****************MENU*************
System.out.println("\nEscolha uma das seguintes Opções - ---CELETISTA---");
System.out.println("1 - Alterar o valor do pagamento");
System.out.println("2 - Calcular pagamento");
System.out.println("0 - Sair");
//***********FIM DO MENU***********
opcao = in.nextLine();//Ler Opção do Menu
escolha2 = Integer.parseInt(opcao);//Converter Opção do Menu
if (escolha2 == 1) {//Alterar o valor Mensal - CELETISTA
System.out.println("Alterar Valor Mensal");
String valor1;
double valor = 0;
System.out.print("Digite o valor para alterar: ");
valor1 = in.nextLine();//Ler o valor para alterar
valor = Double.parseDouble(valor1);//Converter o valor para alterar
cel.alterarSalarioMensal(valor);//chama método para alterar o salário
escolha2 = 5;//retorna para o MENU ANTERIOR
}//if Alterar valor
else if (escolha2 == 2) {//Calcular pagamento - CELETISTA
String valorS;
double valor;
double liquido;
System.out.println("Qual o número de horas trabalhadas? ");
valorS = in.nextLine();//Ler o valor de horas trabalhadas
valor = Double.parseDouble(valorS);//converte o valor
liquido = (valorBrutoCeletista(valor) - cel.INSS() - cel.IRRF());//Pega o salário Líquido do Celetista
System.out.println("O salário Mensal é: " + cel.salarioMensal());//Mostra o Salário Mensal
System.out.println("O Valor Bruto é: " + valorBrutoCeletista(valor));//Mostra o Salário Bruto
System.out.println("O Valor do imposto IRRF é: " + cel.IRRF());//Mostra o Imposto IRRF
System.out.println("O Valor do imposto INSS é: " + cel.INSS());//Mostra o Imposto INSS
System.out.println("O Valor do Líquido é: " + liquido);//Mostra o Salário Líquido
escolha2 = 5;//volta para o Menu Anterior
}//if Calcular pagamento
else if (escolha2 == 0) {//Opção Sair
System.out.println("Opção 0");
}//if Sair
else if ((escolha2 != 2) && (escolha2 != 1) && (escolha2 != 0) && (escolha2 != 5)) {//Opção Inválida
System.out.println("Opção Inválida, favor escolher uma das opções!\n\n\n\n\n\n\n");
}//if Opção Inválida
} while ((escolha1 != 0) && (escolha1 != 1) && (escolha1 != 2));//retorna para o Menu
}//Fim do Celetista
/*-------------------------------------------------------
*----------------FIM OPÇÃO CELETISTA--------------------
*-----------------------------------------------------*/
/*-------------------------------------------------------
*---------------OPÇÂO Pessoa Jurídica-------------------
*-----------------------------------------------------*/
if (escolha1 == 2) {//Pessoa Jurídica
do {
PessoaJuridica pj = new PessoaJuridica();//Instanciação
//****************MENU*************
System.out.println("\nEscolha uma das seguintes Opções - ---PJ---");
System.out.println("1 - Alterar o valor do pagamento");
System.out.println("2 - Calcular pagamento");
System.out.println("0 - Sair");
//***********FIM DO MENU***********
opcao = in.nextLine();//Ler Opção do Menu
escolha2 = Integer.parseInt(opcao);//Converter Opção do Menu
if (escolha2 == 1) {//Alterar o valor das Horas - PJ
System.out.println("Alterar Valor das horas");
String valor1;
double valor = 0;
System.out.print("Digite o valor para alterar: ");
valor1 = in.nextLine();//Ler o valor da hora
valor = Double.parseDouble(valor1);//converter o valor da hora
pj.alterarValorHora(valor);//chama o método que altera o valor da hora
escolha2 = 5;//retorna para o Menu anterior
}//if Alterar valor
else if (escolha2 == 2) {//Calcular pagamento - PJ
String valorS;
double valor;
double liquido;
System.out.println("Qual o número de horas trabalhadas? ");
valorS = in.nextLine();//Ler o valor de horas trabalhadas
valor = Double.parseDouble(valorS);//converte o valor
liquido = (valorBrutoPJ(valor) - pj.ISS() - pj.IRRF() - pj.PIS());//Pega o salário Líquido do Celetista
System.out.println("O Valor Bruto é: " + valorBrutoPJ(valor));//Mostra o Salário Bruto
System.out.println("O Valor do imposto IRRF é: " + pj.IRRF());//Mostra o Imposto IRRF
System.out.println("O Valor do imposto INSS é: " + pj.ISS());//Mostra o Imposto ISS
System.out.println("O Valor do imposto PIS é: " + pj.PIS());//Mostra o Imposto PIS
System.out.println("O Valor do Líquido é: " + liquido);//Mostra o Salário Líquido
escolha2 = 5;//volta para o Menu Anterior
}//if Calcular pagamento
else if (escolha2 == 0) {//Opção Sair
System.out.println("Opção 0");
}//if Sair
else if ((escolha2 != 2) && (escolha2 != 1) && (escolha2 != 0) && (escolha2 != 5)) {//Opção Inválida
System.out.println("Opção Inválida, favor escolher uma das opções!\n\n\n\n\n\n\n");
}//if Opção Inválida
} while ((escolha2 != 0) && (escolha2 != 1) && (escolha2 != 2));//retorna para o Menu
}//Fim do PJ
}
}
public double valorBrutoCeletista(double valor) {
Colaborador col = new Colaborador();
Celetista cel = new Celetista();
double salario = 0;
double salarioHora;
if (col.mostraHorasMensal(valor) <= 160) {
salario = cel.salarioMensal();
}
if (col.mostraHorasMensal(valor) >= 161) {
salarioHora = cel.salarioMensal() / 160;
salario = salarioHora * cel.salarioMensal();
}
return salario;
}
public double valorBrutoPJ(double valor) {
Colaborador col = new Colaborador();
PessoaJuridica pj = new PessoaJuridica();
double salario = 0;
salario = pj.mostraValorHora() * col.mostraHorasMensal(valor);
return salario;
}
}
package Colaboradores;
import java.util.Scanner;
public class Colaborador {
private String nome;
private String endereco;
private String telefone;
private double horasTrabalhadas;
public Colaborador() {
}
public void incluir() {
Scanner in = new Scanner(System.in);
String horas;
System.out.print("Digite o Nome: ");
this.nome = in.nextLine();
System.out.print("Digite o Endereço: ");
this.endereco = in.nextLine();
System.out.print("Digite o Telefone: ");
this.telefone = in.nextLine();
System.out.print("Digite a quantidade de horas trabalhadas no Mês: ");
horas = in.nextLine();
this.horasTrabalhadas = Double.parseDouble(horas);
}
public void imprimir() {
System.out.println(this.nome);
System.out.println(this.endereco);
System.out.println(this.telefone);
System.out.println(this.horasTrabalhadas);
}
public double mostraHorasMensal(double horasTrabalhadas) {
this.horasTrabalhadas = horasTrabalhadas;
return this.horasTrabalhadas;
}
}
package Colaboradores;
import java.util.Scanner;
public class Celetista extends Colaborador{
private String RG;
private String CPF;
private double salarioMensal;
public Celetista(){
}
public void incluirCeletista(){
Scanner in=new Scanner(System.in);
String salario;
System.out.print("Digite o RG: ");
this.RG=in.nextLine();
System.out.print("Digite o CPF: ");
this.CPF=in.nextLine();
System.out.print("Digite o Salário Mensal: ");
salario=in.nextLine();
this.salarioMensal=Double.parseDouble(salario);
}
public void imprimirCeletista(){
System.out.println(this.RG);
System.out.println(this.CPF);
System.out.println(this.salarioMensal);
}
public double IRRF(){
double impostoIRRF=0;
if(this.salarioMensal<1499.15){
impostoIRRF=0;
}
else if((this.salarioMensal>=1499.16)&&(this.salarioMensal<=2246.75)){
impostoIRRF=((this.salarioMensal/100)*7.5)-112.43;
}
else if((this.salarioMensal>=2246.76)&&(this.salarioMensal<=2995.70)){
impostoIRRF=((this.salarioMensal/100)*15)-280.94;
}
else if((this.salarioMensal>=2995.71)&&(this.salarioMensal<=3743.19)){
impostoIRRF=((this.salarioMensal/100)*22.5)-502.72;
}
else{
impostoIRRF=((this.salarioMensal/100)*27.5)-692.78;
}
return impostoIRRF;
}
public double INSS(){
double imposto=0;
if(this.salarioMensal<=965.67){
imposto=(this.salarioMensal/100)*8;
}
else if((this.salarioMensal<=965.68)&&(this.salarioMensal<=1609.45)){
imposto=(this.salarioMensal/100)*9;
}
else{
imposto=(this.salarioMensal/100)*11;
if(imposto>354.08){
imposto=354.08;
}
}
return imposto;
}
public void alterarSalarioMensal(double valor) {
this.salarioMensal = valor;
}
public double salarioMensal(){
return this.salarioMensal;
}
}
package Colaboradores;
import java.util.Scanner;
public class PessoaJuridica extends Colaborador {
private String CNPJ;
private double valorHora;
private double valorBruto;
public void incluirPJ() {
Scanner in = new Scanner(System.in);
String hora;
System.out.print("Digite o CNPJ: ");
this.CNPJ = in.nextLine();
System.out.print("Digite o Valor por Hora: ");
hora = in.nextLine();
this.valorHora = Double.parseDouble(hora);
}
public void imprimirPJ() {
System.out.println(this.CNPJ);
System.out.println(this.valorHora);
}
public double IRRF() {
double imposto = 0;
imposto = (this.valorBruto / 100) * 1.5;
return imposto;
}
public double PIS() {
double imposto = 0;
if (this.valorBruto > 5000) {
imposto = (this.valorBruto / 100) * 4.65;
}
return imposto;
}
public double ISS() {
double imposto = 0;
if (this.valorBruto > 5000) {
imposto = (this.valorBruto / 100) * 4;
}
return imposto;
}
public void alterarValorHora(double valor){
this.valorHora=valor;
}
public double mostraValorHora(){
return this.valorHora;
}
}
