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

Construtores do futuro e os problemas do passado

Se a minha classe em java é

package folhaPagamento;

public class Funcionario {
    private String cargo;
    private String nome;  
    private String cpf ;

// uma possível declaração de um construtor para essa classe seria
    public Funcionario (String cargo, String nome, String cpf){
        this.cargo = cargo; this.nome = nome; this.cpf = cpf;
}
// entretanto eu também posso querer outro construtor, agora vazio
  public Funcionario(){
  }
// para os sets e gets para o Funcionário seriam todos com o retorno do tipo no get e void para os sets

A possibilidade de ter mais de um tipo de construtor é algo muito bom para o código, pois assim temos opções do que inicializar, já o maior problema do passado ocorre da necessidade de alteração do código por novas demandas no mesmo ou a falta de uma diagramação do mesmo, sem colocar todos os dados necessários.

No exemplo dado na aula sobre funcionários do banco e seus diversos cargos, percebemos que o código vai ficando repetitivo e chato, pois temos que ficar fazendo diversos ifs para verificar os novos componentes e requisitos, sendo que nesse caso a classe em questão já não é compatível com o que estamos fazendo.

Dessa necessidade, aparece a herança como uma forma de redefinir alguns atributos e até adicionar outros , com seus respectivos métodos únicos para aquela nova classe, o que é muito bom.

Aprender a definir corretamente o que vai em cada classe é o essencial para se aprender POO , como é possível fazer o desenho e verificar se o mesmo está dentro da necessidade daquela classe ?

1 resposta
solução!

Olá Adalberto, tudo bem com você?

Sua análise está correta, ter mais que um tipo de construtor e usar também a herança é útil para muitos cenários de programação na linguagem Java.

Quanto à sua dúvida sobre a diagramação de classes, para definir corretamente o que vai em cada classe é importante identificar as responsabilidades e comportamentos específicos do problema que você deseja resolver. Ou seja, é importante entender o objetivo do projeto e com base nisso analisar o que é necessário, seja em relação a atributos, ao comportamento único de cada classe, quais heranças são possíveis, dentre outros. E neste contexto, o desenho é importante para trazer clareza do sistema de forma prévia e além disso, criar uma documentação da estrutura do projeto.

Dito isto, uma das técnicas que é muito utilizada no mercado para auxiliar nesse processo de desenhar previamente o sistema é o diagrama de classes da UML (Unified Modeling Language), que permite visualizar as relações entre as classes, seus atributos e métodos e com isto, poderemos avaliar de forma prévia, antes de colocar a mão no código, como será a estrutura do projeto. Abaixo um exemplo de diagrama de classes:

Exemplo de diagrama de classes uml

Todavia, vale ressaltar que não existe fórmula mágica, pois todo o processo de desenho e também do código é um processo iterativo, e é comum realizar ajustes e melhorias à medida que o projeto evolui. Então, não se preocupe caso você tenha que ajustar o desenho e o código com o passar do tempo - é algo esperado.

Para finalizar, deixo como recomendação dois cursos de modelagem UML da Alura que te auxiliará no processo de criação de um desenho das classes:

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software