Post on 06-Jul-2020
Programação Orientada a ObjetosIntrodução
Revisão
▪ Algoritmo
▪ Sequência finita de ações utilizada para representar a solução de um ado problema
▪ Podem ser representadas como
▪ Narrativa
▪ Fluxograma
▪ Pseudocódigo
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Revisão
▪ Algoritmo – Narrativa
▪ O algoritmo é expresso em linguagem natural
▪ Exemplo: trocar um pneu
1. Afrouxar as porcas
2. Levantar o carro
3. Retirar as porcas
4. Trocar o pneu pelo estepe
5. Apertar as porcas
6. Abaixar o carro
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Revisão
▪ Algoritmo – Fluxograma
▪ Representação gráfica dos algoritmos com figuras geométricas, onde cada figura representa diferentes ações
▪ Elementos do fluxograma
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Início e Fim do programa
Decisão
Atribuição
Entrada de Dados
Operação de Saída
Revisão
▪ Algoritmo – Pseudocódigo
▪ Representação do algoritmo rica em detalhes
▪ Próximo ao código final a ser escrito em linguagem de programação
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Revisão
▪ Tipos de Dados
▪ Numéricos Inteiros
▪ Números positivos e negativos sem casas decimais
▪ Numéricos Reais
▪ Números positivos e negativos com casas decimais
▪ Dados Literais
▪ Formado por sequência de caracteres
▪ Dados Lógicos
▪ Podem ser apenas Verdadeiro ou Falso
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Revisão
▪ Variável
▪ A variável é o “apelido” ou “nome” que nós damos para uma região de memória onde colocaremos um valor
▪ Uma variável possui:
▪ Nome
▪ Tipo
▪ Conteúdo
▪ Variáveis devem ser declaradas antes de serem utilizadas
▪ Ao declarar uma variável, o sistema operacional reserva um “espaço” na memória para ela
▪ Cada tipo de variável ocupa um tamanho de espaço diferente na memória
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Programação Orientada a Objetos
▪ “É um paradigma de programação de computadores onde se usam classes e objetos, criados a partir dos modelos descritos anteriormente, para representar e processar dados usando programas de computadores”. (SANTOS, 2003)
▪ É um paradigma de programação baseado em objetos
▪ Um dos paradigmas mais utilizados
▪ Principais linguagens:▪ Java▪ C++▪ C#▪ Python
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Programação Estruturada x Programação Orientada a Objetos
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Programação Orientada a Objetos
▪ Surgiu no final da década de 50 com as linguagens ALGOL 58 e ALGOL 60 ▪
▪ Outras linguagens que preconizaram o conceito
▪ Simula 67 (60’s);
▪ Smalltalk (70’s);
▪ Surgiu da necessidade de modelar sistemas mais complexos.
▪ Os programas são arquitetados através de objetos que interagem entre si
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Programação Orientada a Objetos
▪ Este paradigma de programação tenta ser o mais óbvio, natural e exato possível;
▪ Princípios essenciais:
▪ Abstração
▪ Classes e objetos;
▪ Atributos, Métodos e Mensagens;
▪ Herança e Associação;
▪ Encapsulamento;
▪ Polimorfismo;
▪ Interfaces.
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Abstração
▪ Em seu redor tudo o que você vê é objeto
▪ O pensamento humano é em modelo de objeto
▪ Todos os objetos do mundo real possuem características (atributos) como cor, tamanho, modelo, marca, data de nascimento etc.
▪ Podemos concluir que a POO modela o software em um modelo semelhante aqueles que as pessoas utilizam para descrever os objetos do mundo real
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Classe
▪ “É um projeto de um objeto. Ela informa como criar um objeto de um tipo específico.” (SIERRA & BATES, 2007)
▪ As classes de programação são moldes de um objeto, aonde têm características e comportamentos, permitindo assim armazenar propriedades e métodos dentro dela.
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Classe
▪ Classe é a planta de uma casa, é o modelo que as casas construídas terão
▪ A classe define as características de uma casa e as funções que ela pode ter
▪ Mas é possível morar na planta de uma casa? Não!
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
O que é um Objeto?
▪ “É a representação de uma coisa do mundo real.” (BARNES, 2009)
▪ Os objetos seguem fielmente as especificações da sua Classe, sendo uma instância concreta delas
▪ As casas são instâncias das plantas
▪ No objeto casa você pode morar!
▪ Note também que você pode fazer muitas casas
a partir da mesma planta
▪ Em outras palavras, muitos objetos podem ser gerados a partir de uma classe
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Classe
▪ No mundo real, encontramos vários objetos de um mesmo tipo
▪ Deve haver milhares de cães da mesma raça e mesma cor ou cores diferentes;
▪ Cada raça possui suas características. Mesmo que se diferenciem em suas características, não deixam de ser categorizados como cães.
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Classe
▪ Uma classe define o formato dos objetos.
▪ Os objetos atribuem valor aos atributos de uma classe.
▪ Um objeto é também chamado de instância de uma classe.
▪ Guarde isso: Uma classe se assemelha a uma planta arquitetônica enquanto o objeto seria a construção.
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Classe
▪ Em orientação a objetos, dizemos que um objeto cachorro é uma instância da classe de objetos conhecida como Cães;
▪ Uma classe é o projeto a partir do qual objetos individuais são criados
▪ Ela define os atributos e os métodos correspondentes aos seus objetos.
▪ Podemos definir classe como a forma que modelará o objeto para que ele seja um cão (e não um cavalo, por exemplo).
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Classe
▪ Usamos a UML (Unified Unified Modeling Modeling Language Language) para representar as classes, utilizando um retângulo com três divisões: Nome da Classe, Variáveis de Instância e Métodos (ações).
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Objetos
▪ Objetos (computacionais) são caracterizados por atributos e métodos. Atributos são as propriedades de um objeto
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Objetos
▪ Objetos armazenam seu estado em atributos
▪ Como às variáveis em programação estruturada.
▪ Objetos expõem seu comportamento através de métodos
▪ Como às funções em programação estruturada.
▪ Por exemplo: um cachorro
▪ Atributos: nome, cor, raça, fome…
▪ Métodos: latindo, pegando osso, comendo…
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Objetos
▪ Quais são as características de um abajur?
▪ Quais são as características de uma lâmpada?
▪ E como tratamos a lâmpada de um abajur?
▪ Objetos variam em complexidade
▪ Porém, os detalhes relevantes dependem do contexto;
▪ Esta análise de características é traduzível em orientação a objetos.
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Classe Pessoa
▪ Como vimos, os atributos definem o estado de uma classe
▪ Quais atributos de uma classe Pessoa?
▪ Ou seja, quais características definem uma pessoa?
✓Nome
✓Idade
✓Sexo
✓Peso
✓Altura
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Objeto Homer
▪ O objeto Homer é do tipo Pessoa
▪ Ele possui todos os atributos (características) preenchidos:
✓Nome: Homer Simpson
✓Idade: 38
✓Sexo: Masculino
✓Peso: 120
✓Altura: 1.70
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Objeto Silvio
▪ O objeto Silvio é do tipo Pessoa (Mesma classe que originou o Homer!!!)
▪ Ele possui todos os atributos (características) preenchidos:
✓Nome: Silvio Santos
✓Idade: 88
✓Sexo: Masculino
✓Peso: 80
✓Altura: 1.80
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Classe e Objeto
▪ Note que a classe objeto possui os atributos nome, idade, sexo, peso e altura conforme ilustrado no bloco UML
▪ E esta mesma classe deu origem a dois objetos (do tipo pessoa) totalmente diferentes: Silvio Santos e Homer Simpson
▪ Apesar de serem pessoas diferentes, ambos compartilham dos mesmos atributos da classe Pessoa
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Pessoa
- nome- idade- sexo- peso- altura
Codificando
▪ Como seria o código da classe Pessoa?
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Codificando
▪ E como podemos instanciar o objeto Pessoa? Na classe principal!
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Métodos
▪ Enquanto o atributo define as características de uma classe, os métodos definem o comportamento dela
▪ São exemplo de comportamento
▪ realizar alguma atividade dentro da própria classe
▪ modificar o valor de algum atributo
▪ obter o valor de algum atributo
▪ ativar métodos em outros objetos
▪ entre outras ações
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Métodos
▪ Na classe pessoa podemos criar um método chamado calcularIMC() e calcular Índice de Massa Corpórea da pessoa (IMC), uma vez que o objeto Pessoa possui a variável de peso e a variável de altura
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Métodos
▪ Na classe principal podemos invocar o método conforme abaixo
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Parâmetros
▪ É o processo que temos de passar/enviar valores externos para um método
▪ Os parâmetros são passados/enviados entre parênteses logo após o nome do método
▪ O parâmetro possui um tipo e um nome
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Parâmetros
▪ No exemplo anterior, estamos dando o valor para cada atributo dos objetos Homer e Silvio da classe Pessoa
▪ Vamos modificar o método principal,atribuindo valores para os atributos peso e nem altura
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Parâmetros
▪ Note agora como é feita a passagem de parâmetro:
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Modificadores de Acesso (visão de método)
▪ Define como os métodos e atributos serão visualizados/acessados no projeto
▪ Modificadores
▪ public→ qualquer classe pode ter acesso a este método/atributo
▪ private→ apenas os métodos da própria classe podem manipular o método/atributo
▪ protected→ pode ser acessado apenas pela própria classe ou pelas suas subclasses
▪ O objetivo principal dos modificadores de acesso é impedir que o valor do atributo seja acessado diretamente (principio do encapsulamento – próxima aula)
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Modificadores de Acesso (visão de método)
▪ Na classe pessoa, coloque os modificadores de acesso conforme abaixo
▪ Após feito isso, vá na classe principal
▪ Ocorreu algum erro? O correto é ocorrer, pois colocamos os modificadores de acesso
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Por hoje é só!
▪ Qualquer dúvida:
▪ www.arieldias.com
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda