Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Minha Solução] Desafio Utilizar Construtores

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();
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Oi, Carlos! Tudo bem?

Parabéns pela dedicação e obrigada por compartilhar seu código com a nossa comunidade! Seu código está muito bem estruturado. Caso tenha ficado alguma dúvida em relação ao curso ou atividade, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!