Академический Документы
Профессиональный Документы
Культура Документы
Caio Noronha
Swift
Java
Python
php
O que é um Objeto?
“Coisa material ou abstrata que pode ser percebida pelos sentidos e descrita através de
suas características, comportamentos e estados atuais.”
Ou seja, são objetos materiais (Carro, Celular, Relógio) ou imateriais (Data, Estudante,
Conta bancária) que podem ser transmitidos para a programação.
O que compõe um objeto?
Todo objeto pode conter características e ações que o definem, e isso também é passado
para a programação. Entre eles estão:
Mas devemos criar um “objeto” para cada objeto que vamos criar? Devemos criar um
objeto para cada carro, criando os mesmos atributos e métodos para cada um,
reescrevendo? Não! Porque nós temos a classe!
Ex: Uma fábrica de automóveis está criando um novo modelo de carro, e todos os carros
criados podem ser diferentes em cores, rodas, ar-condicionado etc. Mas todos seguem
um molde do novo modelo para seguir o mesmo padrão.
Os quatro pilares
Na programação orientada a objetos, temos quatro pilares muito importantes a serem
seguidos em seus projetos, facilitando a manutenção, mais protegido e com um código
mais otimizado. Os quatro pilares são:
Abstração
Encapsulamento
Herança
Polimorfismo
Abstração
Algumas pessoas não o consideram um dos pilares, mas talvez seja o mais importante.
Com isso, você a usa para abstrair as coisas relevantes do mundo real para o código e,
se você fizer isso errado, poderá adicionar muita informação ou ficar confuso. É por isso
que é extremamente importante, mas lembre-se sempre: se não fizer sentido no mundo
real, não fará sentido no código.
Ex: você criará um sistema de banco digital. Do que você vai precisar? Nome? Sim!
CPF? Sim! Cor dos olhos? Não! É por isso que é tão importante abstrair e identificar
apenas o que é NECESSÁRIO para o programa.
Encapsulamento
Encapsulamento é o pilar que protege o código, criando pontes no projeto, dizendo o
que pode ser acessado por usuários, objetos diferentes e outros. Imagine criar um carro,
sem nenhuma proteção para o motor, 100% exposto ao usuário para modificar tudo o
que ele deseja, mesmo que ele não entenda o assunto. Seria perigoso e um problema,
certo? Não precisamos entender como o carro funciona, só precisamos saber como
dirigir o carro. A programação é a mesma coisa. Há partes muito importantes que
precisam ser protegidas de outras pessoas, especialmente se você estiver construindo
um projeto com uma equipe.
O encapsulamento não é obrigatório, mas é uma boa prática de programação e produz
Classes mais eficientes.
Benefícios:
→ Tornar as alterações invisíveis.
→ Facilitar a reutilização de código.
→ Reduza os efeitos colaterais.
Tipos de encapsulamento
Público
Privado
Protegido
Getters e Setters são funções que tornam possível OBTER e ALTERAR o atributo.
Herança
Imagine que uma fábrica de automóveis queira expandir as vendas para novos estilos de
veículos, como motocicletas e aviões. Em sua linha de produção, eles passam por várias
etapas diferentes, mas depois percebem que, apesar de terem vários produtos e etapas
diferentes para cada um, eles repetiram etapas entre os produtos. Todo mundo tem um
motor, um número de assentos ou número de rodas, certo? Isso é herança! Quando
todas as classes têm uma característica comum, herdadas de uma superclasse.
Ex: As classes “Carro”, “Avião” e “Moto” são herdadas da classe veículo, com os
mesmos atributos (rodas, motor, assentos) e estados diferentes.
Benefícios :
→ Faça encapsulamento protegido.
→ Facilitar a reutilização de código.
→ Reduza os efeitos colaterais.
Conceitos
Abstrato
Final
Extender
Abstrato: Uma classe ou método que não pode ser instanciado, apenas herdado.
Final: Uma classe ou método que só pode ser instanciado, não herdado.
Estender: Quando uma classe herda / se estende de outra classe, utilizando os métodos
e atributos.
Polimorfismo
Não podemos pensar em polimorfismo sem herança. Imagine que agora, existem vários
animais, diferentes de várias maneiras, mas similares em algumas. Entre as
semelhanças, todo mundo emite um som, mas quase todo mundo emite sons diferentes.
Isso é polimorfismo! Quando eles herdam de uma classe, mas a implementam de
maneiras diferentes para o mesmo método.
Benefícios :
→ Maior clareza.
→ Facilitar a reutilização de código.
→ Manutenção de código.
Tipos de Polimorfismo
Sobrepor
Sobrecarga
Sobrepor: Substituir funções em subclasses e com diferentes implementações.
Sobrecarga: Funções com o mesmo nome na mesma classe, mas com assinaturas
diferentes.
Written by
Caio Noronha
Aug 1, 2018
Exemplo: Em seu celular, você acessa um app de Fotos para acessar suas fotos,
apertando apenas um Botão, na qual tudo isso é exibido na View. Ao apertar o botão,
passamos para o “user action”, ou seja, iniciando o comando para o Controller
consultar a foto. Após a Controller receber o comando, ela envia um “update” para a
Model, ou seja, requere a foto para ela. …