Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6...

53
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 Objetos Professor: Ricardo Luis dos Santos IFSUL – Campus Sapucaia do Sul

Transcript of Introdução à Orientação a Objetos - ricardoluis.com · •Paladar •Tato •Olfato 6...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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