Primeiros passos com Java V | programaDev
13 de outubro de 2021 • 6 min de leitura
POO Sobrecarga, Wrappers e Autoboxing
A sobrecarga de métodos permite a pessoa que estiver desenvolvendo ter maior flexibilidade sobre um determinado método, onde pode haver vários métodos com o mesmo nome porém com parâmetros diferentes, para exemplificar vamos imaginar que você está desenvolvendo um jogo onde o personagem pode correr com algum veículo ou a pé, para esse caso pode haver várias abordagens mas para explicar sobrecarga de métodos iremos criar classes para cada tipo de veículo, então teremos as classes Carro, Moto e Bicicleta e também iremos criar a classe Personagem que irá conter a ação de acelerar:
Esse é o exemplo da classe Carro, onde ela só possui o atributo nome, o construtor recebendo o nome e os métodos getter/setters, as outras classes Moto e Bicicleta seguem o mesmo padrão, e agora vamos ver a classe Personagem:
As classes Wrappers são classes que foram criadas na linguagem Java para representar um tipo primitivo, elas são classes empacotadoras desses tipos primitivos. Quando em um programa usamos um tipo primitivo, por exemplo um int por padrão ele recebe um valor padrão caso nenhum valor seja passado diretamente para ele, no caso de int o valor é 0. Isso é um detalhe do Java, quer seja tipo primitivo ou não tudo recebe um valor padrão, nos casos de classes o valor padrão é null, que significa ausência de valor.
No exemplo abaixo será mostrado a diferença entre o tipo primitivo int e a classe Integer que empacota o tipo int:
Pensando nisso foram criadas as classes Wrappers que representam os tipos primitivos, com isso é possível ter uma classe que representa um valor primitivo, como ocorre com int, porém sem ter um valor padrão definido a ele. Fora que por ser uma classe existem vários métodos que podem ser utilizados e que auxiliam a pessoa que estiver desenvolvendo porém não são muito usados no dia-a-dia a vantagem que particularmente eu vejo é a capacidade que uma classe Wrapper tem de não possuir um valor o que também pode ser perigoso pois se tentarmos usar um atributo que for null será lançado uma Exception do tipo NullPointerException então lembre-se de sempre atribuir um valor quando estiver usando uma classe Wrapper.
Classes Wrappers possuem alguns métodos, como foi citado anteriormente, entre esses métodos existe o valueOf que faz conversão de um valor primitivo para a uma classe Wrapper: