Exercícios resolvidos de Orientação a Objetos em Java
Published: 2021-02-16 20:44:21


Vou trazer alguns exercícios resolvidos de Java que tive na faculdade em POO, tratando de interfaces e classe abstrata.

__1. Implemente o seguinte diagrama de classes em JAVA:__

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/scqarzj4p1vuvsys3vzc.png)

Para resolver este exercício, primeiro vamos criar uma classe abstrata (não pode ser instanciada) chamada Figura, que contém atributos e métodos em comum com todas as classes de Figura. Nós teremos um atributo cor do tipo String e dois métodos, um com retorno nulo setando a Cor e outro com retorno tipo String pegando a Cor.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xdbw2a7eu7qox0tkxem0.JPG)

Em seguida, vamos criar a classe Retângulo que vai estender a classe Figura e declarar dois atributos nela como double (lado1 e lado2). Vamos também criar o construtor padrão, os getters/setters, o métodos toString (para retornar um texto) e um método chamado double área(), onde colocaremos um return com a função lado 1 * lado 2, para obtermos a área.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x57binwz9bq33qdvup0z.JPG)

Vamos criar uma classe Triângulo que vai estender a classe Figura com os atributos base e altura, criar o construtor padrão, getters/setters, método toString e médoto double área que retorna base * altura.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6b4a803zyxf44d6g539o.JPG)

Vamos criar uma classe Círculo que vai estender a classe Figura com os atributos raio, criar o construtor padrão, getters/setters, método toString e o método getDiametro() que retorna a fórmula raio * 3.14 (valor de Pi) * 2.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vhwmtk5qxxsta08j4g19.JPG)

Vamos criar uma classe Quadrado que vai estender a classe Retângulo com um construtor super (de Retangulo) e o médoto toString.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jo7mwb9ga01vceejoj5g.JPG)

Para finalizar, vamos criar uma classe chamado Teste para criarmos os objetos de todas as classes que criamos e ver o resultado

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/46cq4mriecy5fuck7atn.JPG)



__2. Criar um projeto Java no Eclipse chamado "Heranca_02", que implemente todo o código necessário para a criação das classes abaixo:__

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2w5ukxw5s8isu91qxhr.png)

Vamos criar uma classe Veiculo, com os atributos placa e ano. Vamos criar o construtor padrão e o vazio, getters/setters e a função exibir dados, que vai apresentar um texto com os dados do veículo.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tcjqg90avqovixoyggob.JPG)

Vamos criar uma classe Ônibus que estende Veiculo e terá o atributo assentos, vamos criar o construtor com superclasse, getters/setters e sobreescrever o método exibirDados(), que exibirá os dados do ônibus.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z6wuo4a76fis56ibvkam.JPG)

Vamos criar a classe Caminhão que estende Veiculo e possui atributo de eixos, vamos criar o construtor vazio, construtor com super classe, getters/setters e o método dados para exibir os dados do Caminhão (sobreescrita do método).

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0pqx46v4mubdupaxmtxc.JPG)

Para finalizar, vamos criar uma classe Main para testarmos as classes que criamos. Vamos criar um array de veículos, que armazenará todos os nossos objetos Veículos e Caminhões. E, por fim, vamos criar dois laços de repetição para exibirmos os dados dos objetos que criamos.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0b53xjqec1d3v6n21rry.JPG)