introdução à orientação a objetos - ricardoluis.com · •paladar •tato •olfato 6...
TRANSCRIPT
![Page 1: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/1.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense© 2016 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Introdução à Orientação a ObjetosProfessor: Ricardo Luis dos Santos
IFSUL – Campus Sapucaia do Sul
![Page 2: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/2.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Introdução
• Orientação a Objetos
• Conceitos
• Classes
• Objetos
• Resumo
• Boas Práticas
• Hands on
2
Agenda
Campus Sapucaia do Sul
![Page 3: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/3.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Existem diversos paradigmas (filosofia) adotados naconstrução de software
• Imperativo ou Procedural (C, Fortran, etc...)
• Lógico (Prolog, etc...)
• Funcional (Lisp, OCAML, etc...)
• Orientado a Objetos (Java, C++, SmallTalk, etc... )
• Orientado a Aspectos (AspectJ, AspectC++, etc...)
3
Introdução
Campus Sapucaia do Sul
![Page 4: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/4.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Programação Estruturada
• Composição dos Programas
• Um programa é composto por um conjunto de rotinas (funções)
• A funcionalidade do programa é separado em funções
• Os dados do programa são variáveis locais ou globais
• Fluxo de Execução
• O programa tem início em uma rotina principal (main)
• A rotina principal chama outros métodos
• Estas funções podem chamar outras funções, sucessivamente
• Ao fim de uma função, o programa retorna para a função que a chamou
4
Introdução
Campus Sapucaia do Sul
![Page 5: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/5.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Programação Orientada a Objetos
• Composição dos Programas
• A funcionalidade do programa é agrupada em objetos
• Os dados do programa são agrupados em objetos
• Os objetos agrupam dados e métodos correlacionados
• Fluxo de Execução
• Similar a programação estruturada
• Os objetos colaboram entre si para a solução dos objetivos
• A colaboração se realiza através de chamadas de rotinas
5
Introdução
Campus Sapucaia do Sul
![Page 6: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/6.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• A OO tenta aproximar o mundo virtual do mundo real
• Modelando aspectos existentes no mundo real para colocá-los em forma de bits e bytes permitindo o processamento simulado em computadores
• Mas primeiro, precisamos compreender melhor o mundo a nossa volta
• Audição
• Visão
• Paladar
• Tato
• Olfato
6
Introdução
Campus Sapucaia do Sul
![Page 7: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/7.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Descrevam isto
7
Introdução
Campus Sapucaia do Sul
![Page 8: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/8.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Programação Orientada a Objetos
• Surgiu na tentativa de solucionar problemas complexosexistentes através do desenvolvimento de softwares menoscomplexos, confiáveis e com baixo custo dedesenvolvimento e manutenção
• Sugere a redução da distância entre a modelagemcomputacional e o mundo real
8
Introdução
Campus Sapucaia do Sul
![Page 9: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/9.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Programação Orientada a Objetos
• Permite que objetos do mundo real sejam mapeados emobjetos no computador, pressupondo que o mundo écomposto por objetos
• Os sistemas são modelados como um conjunto de objetosque interagem entre si
9
Introdução
Campus Sapucaia do Sul
![Page 10: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/10.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Programação Orientada a Objetos, por que usar?
• Permite alta reutilização de código
• Reduz tempo de manutenção de código
• Reduz complexidade através da melhoria do grau deabstração do sistema
• Aumenta qualidade e produtividade oferece maioresfacilidades ao desenvolvedor
• Adoção (aceitação) comercial crescente
10
Introdução
Campus Sapucaia do Sul
![Page 11: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/11.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Programação Orientada a Objetos, por que usar?
• Velocidade na prototipagem de sistemas
• Reutilização de códigos
• Modularidade no desenvolvimento
• Abstração do mundo real
11
Introdução
Campus Sapucaia do Sul
![Page 12: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/12.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Programação Orientada a Objetos, problemas?
• Pensar no paradigma OO simplesmente como uma linguagem
• Aversão a reutilização
• Pensar na OO como uma solução para tudo
• Programação Egoísta:• É preciso documentar!
12
Introdução
Campus Sapucaia do Sul
![Page 13: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/13.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Estruturada
Sequencia
Decisão
Repetição
OO
Encapsulamento
Herança
Polimorfismo
13
Introdução
Campus Sapucaia do Sul
![Page 14: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/14.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Nós (seres humanos) interagimos com o mundo através de objetos
• Estamos sempre identificando objetos ao nosso redor
• Atribuímos nomes
• Classificamos em grupos (classes)
• Vamos tentar agrupar alguns objetos?
14
Como começar?
Campus Sapucaia do Sul
![Page 15: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/15.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Definição de Classe
• Classe é a implementação de tipo abstrato de dados (TAD)no paradigma orientado a objetos
• Uma classe é um “molde” para a criação de objetos. Aclasse define as propriedades (atributos) e oscomportamentos (métodos)
• Uma classe define como produzir (instanciar) objetos apartir dela
• Exemplos
• Carro, Felinos, Alunos, Professores
15
Orientação a Objetos
Campus Sapucaia do Sul
![Page 16: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/16.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Definição de Objeto
• Um objeto é a representação computacional de um elemento ou processo do mundo real
• Cada objeto possui um conjunto de características e comportamentos
• Um objeto é a instância de uma classe
16
Orientação a Objetos
Campus Sapucaia do Sul
CLASSE P
P1P2P3
![Page 17: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/17.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Definição de Objeto
• Um objeto é uma construção de software que encapsulaestado e comportamento, através respectivamente depropriedades (atributos) e operações (métodos)
• Objetos interagem entre si através de mensagens
• Exemplos
• Carros: Fusca, Gol, Sonic, Ka, Stillo
• Felinos: Gato, Tigre, Leão
• Alunos: João, Maria, Carlos, Carolina
• Professores: Girafales, Remor, Ricardo
17
Orientação a Objetos
Campus Sapucaia do Sul
![Page 18: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/18.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Definição de Objeto
• Estado de um Objeto
• Composto por suas propriedades e seus respectivos valores
• Comportamento
• Maneira como o objeto reage quando o seu estado é alterado ouquando uma mensagem é recebida
• Características
• São as propriedades que definem um objeto (cor, idade, altura,modelo, marca ...)
18
Orientação a Objetos
Campus Sapucaia do Sul
![Page 19: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/19.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Definição de Objeto
• Uma característica descreve uma propriedade de um objeto (atributo), ou seja, algum elemento que descreva o objeto
• Exemplo de características de um objeto identificado como carro
• Cor
• Marca
• Número de portas
• Ano de fabricação
• Consumo
• Tipo de combustível
19
Orientação a Objetos
Campus Sapucaia do Sul
![Page 20: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/20.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Definição de Objetos
• Um comportamento representa uma ação ou reposta(método) de um objeto a uma ação do mundo real
• Exemplo de comportamentos de um objeto identificado como carro
• Acelerar
• Parar
• Estacionar
• Lecionar
• Estudar
• Almoçar
• ...
20
Orientação a Objetos
Campus Sapucaia do Sul
![Page 21: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/21.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
• Outros Exemplos
• Cachorro
• Características: nome, cor, raça
• Comportamentos: latir, correr
• Bicicleta
• Características: marcha, quantidade de marchas, velocidade
• Comportamentos: trocar marcha, aplicar freios
21
Orientação a Objetos
Campus Sapucaia do Sul
![Page 22: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/22.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Mundo Virtual
Atributos Métodos
Mundo Real
Características Comportamentos
22
Orientação a Objetos
Campus Sapucaia do Sul
![Page 23: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/23.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense23
Orientação a Objetos
Campus Sapucaia do Sul
• Identificar as características e o comportamento de objetos do mundo real é o primeiro passo da Programação Orientada a Objetos
• Para tanto, devemos nos perguntar
• Quais as possíveis características relevantes deste objeto e quais estados elas assumem?
• Quais comportamentos (ações) que ele deve executar?
![Page 24: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/24.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense24
Orientação a Objetos
Campus Sapucaia do Sul
• Abstrair é a resposta (42)!
• Objetos não são considerados isoladamente
• Um processo natural é identificar características e comportamentos semelhantes entre os objetos
• Objetos com características e comportamentos semelhantes são agrupados em classes
![Page 25: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/25.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense25
Orientação a Objetos
Campus Sapucaia do Sul
Carro
marcamodeloanoplacachassicorcorLateralvelocidadeconsumotipoCombustivel
movimentarpararacelerarestacionargetVelocidade
Atributos
Métodos
![Page 26: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/26.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense26
Orientação a Objetos
Campus Sapucaia do Sul
Carro
marcamodeloanoplacachassicorcorLateralvelocidadeconsumotipoCombustivel
movimentarpararacelerarestacionargetVelocidade
Atributos
Métodos
![Page 27: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/27.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense27
Orientação a Objetos
Campus Sapucaia do Sul
![Page 28: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/28.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense28
Orientação a Objetos
Campus Sapucaia do Sul
• Objetos colaboram através da troca de mensagens
• A troca de mensagens representa a chamada de um método
Freiar
![Page 29: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/29.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense29
Orientação a Objetos
Campus Sapucaia do Sul
• Um envio de mensagem sempre possui
Freiar
Emissor
Receptor
Seletor de mensagens (método)
Parâmetros (opcionais)
Retorno de valor (opcional)
![Page 30: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/30.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense30
Resumindo
Campus Sapucaia do Sul
• Objeto
É uma instância que possui dados (características) e métodos (operações ou ações)
• Método
É uma sub-rotina interna no objeto que informa como executar uma ação
• Classe
É um recipiente para construir objetos. Ela sabe as variáveis que estão no objeto e detém os métodos para cada objeto
MensagemPerguntar a um objeto alguma coisa é chamado de:
“envio de mensagem.” Isto é similar a solicitar uma rotina
![Page 31: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/31.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense31
Resumindo
Campus Sapucaia do Sul
• A classe provê a estrutura para a construção de objetos
• Um objeto é uma instância de uma classe
• Um objeto possui características, comportamentos e um estado (valores de seus atributos)
• O comportamento de um objeto é exposto através de métodos
![Page 32: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/32.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
BOAS PRÁTICAS
32Campus Sapucaia do Sul
![Page 33: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/33.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense33
Boas práticas
Campus Sapucaia do Sul
• Nome de classes
• Acentos e cedilha são desaconselhados
• O “compilador” usa o nome das classes pra nomear arquivos
• Números podem aparecer após uma letra
• $ e _ são considerados letras
• Maiúsculas <> minúsculas
• Há palavras reservadas
![Page 34: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/34.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense34
Boas práticas
Campus Sapucaia do Sul
• Nome de classes
• Iniciar nomes de classes com maiúsculas
• Usar maiúsculas para separar palavras
• CadastroDeFuncionario
• Uma classe por arquivo
• Usar o mesmo nome para o arquivo (com extensão .java) e para a classe
![Page 35: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/35.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense35
Boas práticas
Campus Sapucaia do Sul
![Page 36: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/36.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense36
Boas práticas
Campus Sapucaia do Sul
• Nomes de atributos de classes
• Acentos e cedilha podem ser usados sem restrição
• Números podem aparecer após letra
• _ e $ são considerados letra
• Maiúsculas <> minúsculas
• Há palavras reservadas
• É possível declarar vários campos com o mesmo tipo (ou classe) separando seus nomes por vírgulas
![Page 37: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/37.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense37
Boas práticas
Campus Sapucaia do Sul
• Nomes de atributos de classes
• Iniciar nomes de campos de classes com minúsculas
• Usar maiúsculas para separar palavras
• anoFabricacao
• anoModelo
• numeroDias
• velocidade
![Page 38: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/38.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense38
Boas práticas
Campus Sapucaia do Sul
• Nomes de métodos
• Mesmas regras que nomes de campos
• Iniciar nomes de métodos com minúsculas
• Usar maiúsculas para separar palavras
• mostrarCampos
• acende
• inicializa
• transferirDinheiro
![Page 39: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/39.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
HANDS ON
39Campus Sapucaia do Sul
![Page 40: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/40.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense40
Hands On – Rápida explicação
Campus Sapucaia do Sul
• Um objeto é uma instância de uma única classe
• Uma instância de um objeto é uma unidade de programação que é armazenada em uma variável
• Um programa orientado a objetos é composto por um conjunto de objetos que interagem entre si para a solução de um problema
![Page 41: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/41.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense41
Hands On
Campus Sapucaia do Sul
Atributos
Métodos
Carro
id: intmarca: Stringmodelo: Stringano: intplaca: Stringchassi: Stringcor: StringcorLateral: Stringvelocidade: doubleconsumo: doubletipoCombustivel: String
Carro()movimentar(): voidparar(): voidacelerar(velocidade: double): voidestacionar(): voidgetVelocidade(): double
![Page 42: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/42.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense42
Hands On
Campus Sapucaia do Sul
![Page 43: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/43.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense43
Hands On – Construtor Completo
Campus Sapucaia do Sul
![Page 44: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/44.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense44
Hands on
Campus Sapucaia do Sul
• Criar vários carros diferentes
• Exibir todos os atributos de todos os objetos
• Colocar os carros em arrays?
• Sobrescrever o método toString() do Object
![Page 45: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/45.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense45
Hands on
Campus Sapucaia do Sul
• Criar uma classe Jogador conforme
• Cadastrar pelo menos um timecompleto (11 jogadores)
• Um jogador está suspenso pelo 3 cartãoamarelo ou quando recebe uma punição(vermelho ou tribunal)
• Ao final, imprimir a lista com todos os jogadores, informando quem está apto para jogar
Jogador
id: intnome: Stringapelido: StringdataNascimento: Datenumero: intposicao: Stringqualidade: intcartoes: intsuspenso: Boolean
Jogador()Jogador(all attrs)verificarCondicaoDeJogo(): Boolean
![Page 46: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/46.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense46
Hands on
Campus Sapucaia do Sul
• Criar dois novos métodos na classe Jogador
• aplicarCartao(int quantidade): void - Aplica a quantidade de cartões informada ao jogador
• cumprirSuspencao(): void – Esse método vai zerar a quantidade de cartões e tornar o jogador apto a jogar
• Criar uma nova Classe Time
• Criar um método para relacionar 18jogadores observando apenas aqualidade de cada jogador e a suspensão
• No método main exibir esta escalação
• DESAFIOConsiderar a posição no momento da escalação
Time
nome: Stringapelido: Stringfundacao: Dateplantel: ArrayList<Jogador>relacionados: ArrayList<Jogador>
Time()Time(all attrs)relacionarJogadores(): ArrayList<Jogador>
![Page 47: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/47.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense47
Hands on
Campus Sapucaia do Sul
• Um desenvolvedor precisa modelar uma classe para mapear os funcionários de uma empresa
• Entre os atributos que o sistema precisa manipular estão
• Nome, sobrenome, data de nascimento, matricula , o salário do funcionário, endereço, e-mail e o cpf
• Entre os métodos que o sistema precisa manipular estão
• Receber aumento de salario, calcular o rendimento anual total do funcionário, calcular o imposto pago mensalmente pelo funcionário, calcular o total anual de imposto pago pelo funcionário. Adicionar também pelo menos 3 construtores
• CRIE o diagrama que representa esta classe
• CRIE a classe com a devida assinatura dosmétodos (não é necessário implementá-los)
![Page 48: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/48.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense48
Hands on
Campus Sapucaia do Sul
• Criar uma classe de Funcionário com os atributos
• Crie alguns métodos de acordo com sua necessidade
• receberAumento(int valor): void - que aumenta o salario do funcionário de acordo com o parâmetro informado
• calcularGanhoAnual(): Double - não recebe parâmetro algum, devolvendo o valor do salário anual
• Se necessário calcule o imposto (% em variáveis no construtor)
• O funcionário paga 11% de INSS
• Se o salário é maior que R$ 2.500,00 é cobrado 17,5% de IR do excedente
• calcularImposto(): Double - não recebe nenhumparâmetro e devolve o imposto pago no decorrerde um ano
![Page 49: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/49.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense49
Hands On 1
Campus Sapucaia do Sul
• Vamos definir classes necessárias para criar um banco simples
• Quais classes, atributos e métodos devem ser criados?
• Cadastros?
• Endereços?
• Sacar?
• Neste momento não é necessário implementar aschamadas de objetos para executar as ações
• Fazer um diagrama de classes no quadro
![Page 50: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/50.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense50
Campus Sapucaia do Sul
Criar uma conta Especial que tem limite e que cobra juros para o valor usado
Criar uma conta Poupança e calcular os rendimentos para esta conta
![Page 51: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/51.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense51
Hands On 2
Campus Sapucaia do Sul
• Criar um jogo da velha para 2 jogadores
• Averiguar se um jogador ganhou a cada movimento
• Exibir no console passo a passo como está o tabuleiro
• DESAFIO 1
• Fazer o computador assumir o lugar de um jogador (tentar ganhar)
![Page 52: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/52.jpg)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense52
Hands On 3 (Desafio)
Campus Sapucaia do Sul
• Criar um jogo da velha para até 3 jogadores• Criar um outro jogo da velha tridimensional (novas classes)
• Ganha quem fizer o maior número de “linhas”
• DESAFIO 1
• Fazer um algoritmo para jogar contra um humano o jogo da velha 3D
![Page 53: Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6 Introdução Campus Sapucaia do Sul. Instituto Federal de Educação, Ciência e Tecnologia](https://reader031.vdocuments.pub/reader031/viewer/2022021700/5c39022109d3f2944f8c05be/html5/thumbnails/53.jpg)