Compartilhando o código que desenvolvi com os colegas, seguindo orientações do enunciado, porém em um projeto diferente. Nele utilizamos construtores para que seja obrigatório ao criar o objeto da classe, seja obrigatório nascer com os atributos.
public class Colaborador {
private String nome;
public Colaborador(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class PessoaClt extends Colaborador {
private int matricula;
//Construtor
public PessoaClt(String nome, int matricula) {
super(nome); //herda atributo da super classe
this.matricula = matricula; //atributo Classe PessoaClt
}
//Sobrecarga toString
@Override
public String toString() {
return "Nome: " + getNome().toString() + " - " + "Matricula: " + this.getMatricula();
}
//entrada de dados
public void entrarDados() {
Scanner sc = new Scanner(System.in);
ArrayList<String> nome = new ArrayList<>();
ArrayList<Integer> matricula = new ArrayList<>();
System.out.println("===== CADASTRO DE CLTs =====");
System.out.println("Insira o nome: ");
this.setNome(sc.nextLine());
nome.add(this.getNome());
System.out.println("Insira a matricula: ");
this.setMatricula(sc.nextInt());
matricula.add(this.getMatricula());
}
//saida de dados
public void sairDados() {
System.out.println("\n===== COLABORADOR CLT =====");
System.out.println(toString());
}
public int getMatricula() {
return matricula;
}
public void setMatricula(int matricula) {
this.matricula = matricula;
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class PessoaCnpj extends Colaborador {
private int cnpj;
public PessoaCnpj(String nome, int cnpj) {
super(nome); //herda atributo da super classe
this.cnpj = cnpj; // atributo da classe PessoaCnpj
}
//sobrecarga toString
@Override
public String toString() {
return "Nome: " + getNome().toString() + " - " + "CNPJ: " + this.getCnpj();
}
//entrada de dados
public void entrarDados() {
Scanner sc = new Scanner(System.in);
ArrayList<String> nome = new ArrayList<>();
ArrayList<Integer> cnpj = new ArrayList<>();
System.out.println("\n===== CADASTRO DE PJs =====");
System.out.println("Insira o nome: ");
this.setNome(sc.nextLine());
nome.add(this.getNome());
System.out.println("Insira o CNPJ: ");
this.setCnpj(sc.nextInt());
cnpj.add(this.getCnpj());
}
//saída de dados
public void sairDados() {
System.out.println("\n===== COLABORADOR PJ =====");
System.out.println(toString());
}
public int getCnpj() {
return cnpj;
}
public void setCnpj(int cnpj) {
this.cnpj = cnpj;
}
}
public class Principal {
public static void main(String[] args) {
//criar objeto PessoaClt e atributos obrigatórios do construtor da classe
PessoaClt clt = new PessoaClt("",0 );
clt.entrarDados();
clt.sairDados();
//criar objeto PessoaCnpj e atributos obrigatórios do construtor da classe
PessoaCnpj cnpj = new PessoaCnpj("",0);
cnpj.entrarDados();
cnpj.sairDados();
}
}