Bom dia galera!
Estou tentando fazer um exercício do treinamento de Java que estou cursando.
O exercício é basicamente construir um programa que cadastre CLIENTE ou FUNCIONÁRIO, consultar e excluir.
É para formar a seguinte tela:
Opções
(1) Cadastrar Clientes
(2) Cadastrar funcionários
(3) Pesquisar Clientes
(4) Pesquisar funcionários
(5) Excluir Clientes
(6) Excluir funcionário
(0) Sair
Digite sua opção:
No exercício cita que é para construir somente um Array, mas é ai que está minha dúvida. Temos a classe Pessoa, Cliente e Funcionário…o Array seria do tipo PESSOA, como fariamos para listar os atributos de FUNCIONARIOS e CLIENTES numa mesma lista???
É mais viável criar duas listas? (Uma para CLIENTE -do tipo cliente- e outra para FUNCIONARIO -do tipo funcionario-?
Abaixo o código para que vocês possam entender melhor:
CLASSE PESSOA
[code]package br.com.classe;
import java.util.Scanner;
import java.util.ArrayList;
public class Pessoa {
Scanner sc = new Scanner(System.in);
private String nomePessoa, cpfPessoa;
private int idadePessoa;
ArrayList<Pessoa> cadastro = new ArrayList <Pessoa>();
public void setNomePessoa(String nomePessoa){
this.nomePessoa=nomePessoa;
}
public String getNomePessoa(){
return nomePessoa;
}
public String getCpfPessoa() {
return cpfPessoa;
}
public void setCpfPessoa(String cpfPessoa) {
this.cpfPessoa = cpfPessoa;
}
public int getIdadePessoa() {
return idadePessoa;
}
public void setIdadePessoa(int idadePessoa) {
this.idadePessoa = idadePessoa;
}
}[/code]
CLASSE FUNCIONÁRIO
[code]package br.com.classe;
public class Funcionario extends Pessoa {
private String numeroCarteiraTrab;
int idFuncionario;
public void setIdFuncionario(int idFuncionario){
this.idFuncionario=idFuncionario;
}
public int getIdFuncionario(){
return idFuncionario;
}
public String getNumeroCarteiraTrab() {
return numeroCarteiraTrab;
}
public void setNumeroCarteiraTrab(String numeroCarteiraTrab) {
this.numeroCarteiraTrab = numeroCarteiraTrab;
}
public void cadastroFuncionario(){
Funcionario f1 = new Funcionario();
f1.setIdFuncionario(+1);
System.out.println("Digite o nome do funcionário: ");
f1.setNomePessoa(sc.nextLine());
System.out.println("Digite o CPF do funcionário");
f1.setCpfPessoa(sc.nextLine());
System.out.println("Digite a idade do funcionário: ");
f1.setIdadePessoa(sc.nextInt());
System.out.println("Digite o número da carteira de trabalho do funcionário: ");
setNumeroCarteiraTrab(sc.next());
cadastro.add(f1);
}
public void listarCadastro(){
for(Pessoa x:cadastro){
System.out.println(x.getNomePessoa()+ x.getIdadePessoa() + x.getCpfPessoa());
}
}
}[/code]
CLASSE CLIENTE
[code]package br.com.classe;
public class Cliente extends Pessoa{
private int idCliente;
private String tipoCliente;
public int getIdCliente() {
return idCliente;
}
public void setIdCliente(int idCliente) {
this.idCliente = idCliente;
}
public String getTipoCliente() {
return tipoCliente;
}
public void setTipoCliente(String tipoCliente) {
this.tipoCliente = tipoCliente;
}
public void cadastroCliente(){
Cliente c1 = new Cliente();
c1.setIdCliente(+1);
System.out.println("Digite o nome do Cliente ");
c1.setNomePessoa(sc.nextLine());
System.out.println("Digite o CPF: ");
c1.setCpfPessoa(sc.nextLine());
System.out.println("Digite a idade: ");
c1.setIdadePessoa(sc.nextInt());
System.out.println("Digite o tipo de cliente (pessoa juridica ou física) ");
tipoCliente=sc.next();
if(tipoCliente.equalsIgnoreCase("Juridica") || tipoCliente.equals("Física")){
((Cliente) c1).setTipoCliente(sc.nextLine());
}
else{
System.out.println("Digite apenas se é pessoa FÍSICA OU JURÍDICA");
System.out.println("Digite o tipo de cliente (pessoa juridica ou física) ");
tipoCliente=sc.next();
}
cadastro.add(c1);
}
public void listarCadastro(){
for(Pessoa x:cadastro){
System.out.println(x.getNomePessoa()+ x.getIdadePessoa() + x.getCpfPessoa());
}
}
}
[/code]
CLASSE PRINCIPAL[code]package br.com.principal;
import java.util.Scanner;
import br.com.classe.*;
public class CadastroClienteFuncionario {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int opcao;
Cliente c1 = new Cliente();
Funcionario f1 = new Funcionario();
System.out.println("***Cadastro Cliente Funcionário Curso Squadra***\n");
System.out.println(" Digite 1 para cadastrar Funcionário ou Cliente \n Digite 2 pesquisar por um Funcionário ou Cliente \n Digite 3 para excluir \n Digite 0 para sair");
opcao=sc.nextInt();
while(opcao!=0){
switch(opcao){
case 1: int opc;
System.out.println("Digite 1 para cadastrar um cliente ou 2 para cadastrar um funcionário: ");
opc=sc.nextInt();
if(opc==1){
c1.cadastroCliente();
}
else if(opc==2){
f1.cadastroFuncionario();
}
else{
System.out.println("Opção inválida!");
}
break;
case 2: f1.listarCadastro();
c1.listarCadastro();
break;
default: System.out.println("Opção inválida"); break;
}
System.out.println(" Digite 1 para cadastrar Funcionário ou Cliente \n Digite 2 pesquisar por um Funcionário ou Cliente \n Digite 3 para excluir \n Digite 0 para sair");
opcao=sc.nextInt();
}
}
}[/code]
Valeu pessoa, abraços!