UML - Orientação a Objetos

Índice
Desde o seu início, o orientação do objeto Tem sido uma revolução no mundo do desenvolvimento de software, já que sua visão de programas semelhantes às coisas da vida real o torna muito versátil.
Ao usá-lo para construir programas, permite-nos implementar metodologias modulares, para que possamos estender a funcionalidade do programa adicionando novos módulos ou incluindo novos métodos em módulos existentes.
Objetos
Começamos com objetos, por ser uma das unidades que mais usaremos, podemos definir o objeto como uma instância de uma classe, ou seja, uma unidade com os atributos da classe já com valores, com isso podemos têm muitos objetos diferentes, mas uma mesma classe, como uma classe de pessoa, duas pessoas têm nomes diferentes, idades diferentes, alturas diferentes, porém podem fazer as mesmas ações como comer, caminhar, falar, dependendo da nacionalidade uma pessoa pode falar Em inglês e em francês, o que acabamos de fazer foi instanciar dois objetos.
Neste caso, a classe é um modelo com o qual podemos criar os objetos, quando definimos uma classe em UML podemos vê-lo como uma lista ou estrutura sob a qual o objeto será criado.
Vejamos um exemplo com o seguinte gráfico:

Se levarmos em conta que a orientação a objetos nos permite modelar coisas na vida real, então devemos dizer que quanto mais extensas nossas classes, mais detalhes e semelhanças teremos com o mundo real, vamos estender isso um pouco mais Classe de lavadora:

Podemos perceber que com esta extensão dos atributos e métodos da classe máquina de lavar eles a aproximam muito mais do objeto da vida real, se neste momento instalamos esta classe utilizando os atributos da máquina de lavar que temos em casa, nós ficará agradavelmente surpreso ao ver a semelhança com nosso diagrama.
Abstração
Este conceito é muito importante, pois nos permite construir classes gerais com as quais podemos dar vida ao nosso sistema e economizar trabalho com a geração das classes subsequentes.
Podemos dizer que abstração é a definição de uma classe com todos os atributos realmente necessários e que dão à classe uma singularidade, ou seja, atributos sem os quais uma classe não pode refletir sua comparação na vida real.
Se olharmos nosso exemplo anterior, vemos que existem atributos sem os quais a classe Máquina de lavar continuaria a definir uma máquina de lavar, ou seja, eles não mudam o sentido e o significado da classe, quando fazemos esta análise estamos fazendo uma abstração de classes.
Herança
Herança é outro dos pontos que tornam a orientação a objetos tão atrativa, quando fazemos uma boa abstração, ficamos com uma classe bastante geral e de amplo espectro, o que acontece se quisermos detalhar algo mais específico, criamos uma nova classe, mas se esta classe vai carregar muitos atributos de nossa classe geral, vale a pena repetir?; Como você deve ter pensado, a resposta é não, você não precisa repetir coisas que já foram feitas, para isso temos uma herança onde uma classe pode herdar os atributos e métodos de outra e desta forma adicionar seus próprios atributos e métodos em a fim de obter sua distinção.
Vejamos a seguinte imagem para nos ilustrarmos sobre o assunto:

Como podemos ver em nossa classe de eletrodomésticos, podemos pegar 3 subclasses que, embora compartilhem atributos como nome e marca, podem ter diferenças marcadas o suficiente para ter objetos diferentes.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave