37
Programação Orientada a Objetos Introdução

Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

Programação Orientada a ObjetosIntrodução

Page 2: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 3: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 4: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 5: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 6: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 7: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 8: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 9: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

Programação Estruturada x Programação Orientada a Objetos

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 10: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 11: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 12: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 13: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 14: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 15: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 16: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 17: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 18: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 19: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 20: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 21: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 22: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 23: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 24: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 25: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 26: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 27: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

Codificando

▪ Como seria o código da classe Pessoa?

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Page 28: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 29: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 30: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 31: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 32: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 33: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 34: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 35: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 36: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

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

Page 37: Programação Orientada a Objetos - Ariel Diasarieldias.com › material › 2019-2 › PG2 › Aula1.pdf · 2020-06-05 · 2. Levantar o carro 3. Retirar as porcas 4. Trocar o pneu

Por hoje é só!

▪ Qualquer dúvida:

▪ www.arieldias.com

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda