33
Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral [email protected] 2º Módulo 2º Módulo

Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral [email protected]

Embed Size (px)

Citation preview

Page 1: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Colégio da ImaculadaCurso Técnico em Informática

Fundamentos da Orientação a Objetos (OO)

Prof. Tales K. [email protected]

2º Módulo2º Módulo

Page 2: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

O que é Orientação a Objetos?

Slide nº 2 de 31.

Orientação a Objetos, consiste em considerar tudo como sendo objeto. É um mundo onde qualquer “coisa” pode ser considerada um objeto.

Provém do conceito de um novo Paradigma.

Figura 1: Fundamentos da Orientação a Objetos

Page 3: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Exemplo real de OO

Slide nº 3 de 31.

Montagem de um computador: Composto por vários componentes:

Paca mãe CPU Placa de vídeo Hd, etc.

Cada componente é bastante sofisticado, mas o usuário não precisa saber como funciona internamente. Cada componente é independente dos demais Para quem está montando, interessa apenas como os componentes irão interagir entre si:

A placa de vídeo se encaixa no slot? O monitor funciona com esta placa? O processador é compatível com a placa mãe?

Page 4: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Paradigma

Slide nº 4 de 31.

“Paradigma é a representação do padrão de modelos a serem seguidos. É um pressuposto filosófico

matriz, ou seja, uma teoria, um conhecimento que origina o estudo de um campo científico; uma

realização científica com métodos e valores que são concebidos como modelo; uma referência inicial como base de modelo para estudos e

pesquisas”.Geral:

Origem: Wikipédia, a enciclopédia livre.Disponível em:

http://pt.wikipedia.org/wiki/Paradigma

Page 5: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Paradigma

Slide nº 5 de 31.

“Paradigma é um conjunto de regras que estabelecem

fronteiras e descrevem como resolver os problemasdentro destas fronteiras.

Os paradigmas influenciam nossa percepção;ajudam-nos a organizar e a coordenar a maneira

comoolhamos para o mundo...”

Em administração:Reengenharia - Reestruturando a

EmpresaDaniel Morris e Joel Brandon

Page 6: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Paradigma

Slide nº 6 de 31.

“Enfoque pelo qual o serhumano enxerga

o mundo, as coisas, a natureza,os outros seres e os

outros homens.”

No meio-ambiente:Projeto: “A Experiência do Semasa em Projetos de semi-urbanização de

Favelas” Disponível em: http://www.semasa.sp.gov.br/admin/biblioteca/docs/pdf/35Assemae104.pdf

Page 7: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Paradigma (exemplos)

Slide nº 7 de 31.

Em Ciência da Computação: Paradigmas explicam como os elementos que compõem um programa são organizados e como interagem entre si.

Em desenvolvimento de sistemas: Utilização da metodologia de Orientação a Objetos para se programar.

Page 8: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Surgimento da Orientação a Objetos

Slide nº 8 de 31.

Linguagem SIMULA (Anos 60): Linguagem SMALLTALK (Anos 70): C++ Java Object Pascal / ambiente de desenvolvimento

Delphi

Page 9: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Conceito de Objeto

Slide nº 9 de 31.

Um objeto denota uma entidade, seja ela de natureza física, conceitual ou de software:

– Entidades físicas: um carro, uma pessoa, uma casa– Entidade conceitual: um organograma de uma empresa– Entidade de software: um botão em uma GUI

Page 10: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Objetos e Classes

Slide nº 10 de 31.

Um objeto é um conceito, uma abstração, algo com limites e significados nítidos em relação ao domínio de uma aplicação.

Objetos facilitam a compreensão do mundo real e oferecem uma base real para implementação em computador

Um objeto é algo que tem: Estado – definição das propriedades (atributos) em um dado momento Comportamento – definição dos métodos (habilidades) do objeto Identidade – identificador do objeto se comparado a outros

O termo instância é frequentemente usado para descrever um objeto em particular

Page 11: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Objetos e Classes

Slide nº 11 de 31.

Figura 2: Objeto

Figura 3: Objeto (Estado)

Page 12: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Estado de um Objeto

Slide nº 12 de 31.

O estado de um objeto representa uma das possíveis condições em que um objeto pode existir.

O estado é representado pelos valores das propriedades de um objeto em um determinado instante

O estado do objeto usualmente muda ao longo do tempo Exemplo (Aluno Ricardo):

Nome: Ricardo Matricula: 969696 Semestre de Ingresso: 96.1 Idade: 18 Fone: xxxx9190

Page 13: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Comportamento de um Objeto

Slide nº 13 de 31.

O comportamento determina como um um objeto pode responder a interações mediante à ativação de operações decorrentes de mensagens recebidas de outros objetos

Assim o Comportamento define como um objeto reage a solicitações de outros objetos

O Comportamento é determinado pelo conjunto de operações que o objeto pode realizar.

Por Exemplo:Objeto: Botão. Operação: Apertar()

Page 14: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Identidade de um Objeto

Slide nº 14 de 31.

Cada objeto tem um único identificador, mesmo que seu estado seja idêntico ao de outro objeto.

O analista deve ter Cuidados na Análise Atenção: A linguagem natural é muito ambígua

Vários termos podem se referir ao mesmo objeto Um termo pode se referir a mais de um objeto

Identificar apenas objetos relevantes Cada substantivo deve ser considerado dentro do contexto do domínio do problema. Isto

quer dizer que ele não deve existir por si próprio.

Page 15: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Identidade de um Objeto

Slide nº 15 de 31.

Atenção: Substantivos podem ser verbalizados e vice-versa, ou seja, os resultados

dependem do estilo de escrita dos requisitos do problema Verificando os Substantivos

Ricardo (objeto) Controle Acadêmico (refere-se ao sistema que está sendo construído) Semestre (estado) Matrícula : 969696 (Propriedade de um aluno) Lista de Semestres Cursados (candidato a objeto) Necessidade Especial (propriedade/atributo)

Page 16: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Classes

Slide nº 16 de 31.

Uma classe é a descrição de um grupo de objetos com propriedades semelhantes (atributos), mesmo comportamento (operações), mesmos relacionamentos com outros objetos (associações e/ou agregações), e mesma semântica.

― Um objeto é uma instância de uma classe Uma classe representa um conjunto de objetos com

características afins. Uma classe é uma abstração que:

Enfatiza características relevantes Abstrai outras características

Abstração: ajuda a lidar com a complexidade. É uma forma de visualizar algo sem se “apegar aos detalhes”.

Page 17: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Abstração

Slide nº 17 de 31.

Focalizar o objeto em si e ignorar propriedades complementares…

Figura 4: Abstração (AERONAVE)

Figura 5: Abstração (VEICULO)

Page 18: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

ClassesExemplos de Classes

Slide nº 18 de 31.

Professor: Atributos: Nome, Matrícula, Data de Contratação, Titulação Operações: DefineNome(), AlteraNome(), TempoServiço(), DefineTitulação(), AlteraTitulação(), ...

Turma: Atributos: Cod, Nome, Local, Créditos, Horário, Capacidade Operações: DefineCod(),AlteraCod(),DefineNome(), AlteraNome(), NrCreditos(), AdicionaAluno(), EliminaAluno(), VerificaEstado(), ...

Page 19: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

ClassesNomeando Classes

Slide nº 19 de 31.

Uma classe deveria ser um substantivo singular que melhor caracteriza a abstração

― Dificuldades na nomeação das classes podem indicar abstrações mal definidas

― Nomes deveriam surgir diretamente do domínio do problema

Page 20: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

ClassesEstilo para Nomear Classes

Slide nº 20 de 31.

Uma proposta simples: Classes são nomeadas com um substantivo no singular O nome de uma classe inicia com a primeira letra maiúscula Não são utilizados símbolos de sublinhado (“_”) - nomes compostos de

múltiplas palavras são organizados com todas as palavras juntas, onde a primeira letra de cada uma fica em maiúscula

Exemplos: Aluno, Professor, ControleAcademico

Page 21: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Representando Classes e ObjetosCompartimentos de uma Classe

Slide nº 21 de 31.

Nome da classeAtributos

Propriedades compartilhadas por todos os objetos de uma mesma classe O conjunto dos valores dos atributos de um objeto, irão determinar o estado de um objeto

Operações Estabelece o que os objetos de uma classe são capazes de fazer Define o comportamento dos objetos de uma classe A implementação de uma operação é chamada de “método”

Page 22: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Representando Classes e ObjetosMensagens

Slide nº 22 de 31.

Uma mensagem é uma solicitação feita por um objeto “A” a um objeto “B”:

― Como resultado desta solicitação, o objeto B irá modificar seu estado ou irá retornar algum valor

― O conceito de mensagem está diretamente associado ao conceito de operação

― A interação entre os objetos é feita através da troca de mensagens.

Page 23: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Representando Classes e ObjetosPrincipais Relacionamentos

Slide nº 23 de 31.

Associação: conexão entre classes, quando um objeto está apto a se comunicar com outro

Agregação (especialização): especialização de uma associação onde um todo é relacionado com suas partes (relacionamento “parte-de” ou “contenção”

Generalização: é um relacionamento entre objetos de uma classe geral (superclasse) e objetos de classes mais específicas (subclasse).

OBS.: Uma associação é usualmente um relacionamento bidirecional

Dado uma instância de Aluno, há um objeto Disciplina associado Dado uma instância de Disciplina, há um objeto Aluno associado

Page 24: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Representando Classes e ObjetosPrincipais Relacionamentos

Slide nº 24 de 31.

Figura 6: Associação

Figura 7: Agregação (Especialização)

Figura 8: Generalização

é um / é uma é um / é uma

é um / é uma

Page 25: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Representando Classes e ObjetosPrincipais Relacionamentos

Slide nº 25 de 31.

Encapsulamento: consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os métodos que alteram estes estados. Exemplo: você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável (os botões, o monofone e os sinais de tom).

Polimorfismo: permite que uma referência de um tipo de uma super-classe tenha seu comportamento alterado de acordo com a instância da classe filha a ela associada. O polimorfismo permite a criação de super-classes abstratas, ou seja, com métodos definidos (declarados) e não implementados, onde a implementação ocorre somente nas sub-classes não abstratas.

Page 26: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Tipos de AssociaçõesNomeando uma Associação

Slide nº 26 de 31.

Uma associação precisa ser nomeadaO nome é representado como um “rótulo” colocado ao longo da linha de associação

Um nome de associação é usualmente um verbo ou uma frase verbal

Por exemplo: Uma pessoa usa um telefone ??? A tecla "1" é parte de um telefone ??? Um telefone pode ser comercial ou particular ???

Page 27: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Questões de concursos1. (TCM RJ) No contexto de Orientação a Objetos, o conjunto de objetos que têm a mesma

estrutura e o mesmo comportamento é denominado:a) Classe b) Herança c) Polimorfismo d) Encapsulamento2. (Eletrobrás) Em relação à tecnologia de orientação a objetos, a afirmativa de que o estado

de um objeto não deve ser acessado diretamente, mas sim por intermédio de métodos de acesso (ou propriedades) está diretamente relacionada ao conceito de:

a) Herança b) Interface c) Classe d) Polimorfismo e) Encapsulamento3. (Eletrobrás) Considere as seguintes assertivas sobre o modelo de classes mostrado abaixo

(notação UML padrão)I – Um objeto livro pode ser associado a mais de um objeto leitorII – Um objeto leitor está associado a no máximo um único objeto livroIII – Nenhum objeto empréstimo está associado a uma associação entre livro e leitoresAs assertivas corretas são:a) Somente o item I; b) Somente o item II; c) Somente o item III; d) Somente os itens I e II; e) Itens I, II e III.4. (UFF Analista TI-2009). Analise as seguintes sentenças em relação à orientação a objetos:I – As classes possuem atributos e métodosII – Na orientação a objetos existem dois tipos de métodos: herança e polimorfismo.III – Podem ser criadas classes a partir de objetos criados que, por sua vez, irão receber por herança os

atributos e métodos da superclasse.Das sentenças acima:a) Todas são verdadeiras b) apenas a I e II são veradadeiras c) apenas II e III são verdadeiras d) apenas I é

verdadeira.

Page 28: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Questões de concursos5. (TRE-BA Analista Judiciário TI) Todo objeto tem um identificador único que varia com o

tempo de vida do objeto: a) Certo b) Errado6. (TRE-BA Analista Judiciário TI) O estado de um objeto é definido pelo conjunto de valores de

suas propriedades: a) Certo b) Errado7. (SIMULADO FORUM Concurseiros) Analise: Na figura ao lado, que é a representação da classe de objetos, os elementos x,y e z, sem outros

méritos, descrevem, respectivamente :a) os atributos da classe, o nome da classe e as operações da classe. b) o nome da classe, os atributos da classe e as operações da classe. c) o nome da classe, as operações da classe e os atributos da classe.d) as operações da classe, o nome da classe e os atributos da classe.e) os atributos da classe, as operações da classe e o nome da classe.8. (SIMULADO FORUM Concurseiros) Em orientação a objetos:a) objetos com estrutura e comportamento diferentes são agrupados em classes. b) dois objetos são distintos mesmo que eles apresentem exatamente as mesmas características. c) o comportamento de um objeto é representado pelo conjunto de operações que podem ser executadas

sobre o objeto.d) dois objetos são distintos somente se todas as suas características forem diferentes.e) a estrutura de um objeto não pode se representada em termos de atributos.9. (SIMULADO FORUM Concurseiros) Em relação aos princípios da orientação a objetos, a

separação dos aspectos externos de um objeto, acessíveis por outros, dos detalhes internos da implementação que ficam ocultos dos demais, é uma característica conhecida por:

a) Polimorfismo. b) Compartilhamento. c) Encapsulamento. d) Herança. e) Classes.10. (EMPREL 2007) Analise as seguintes afirmações sobre Programação Orientada a Objetos.I. Uma classe define propriedades e comportamentos, ou seja, atributos e métodos, que objetos de

determinado tipo possuem.II. De um modo geral, cada classe define um novo tipo que pode ser utilizado no programa.III. Algumas linguagens orientadas a objetos permitem a criação de objetos, sem estarem associados a uma

classe específica.Assinale a alternativa que contém a(s) afirmação(ões) CORRETA(S).a) Apenas I. b) Apenas I e II. c) Apenas II. d) Apenas II e III. e) Apenas III.

x

Y

z

Page 29: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Trabalho em Aula

Slide nº 29 de 31.

1. Monte uma apresentação em Power Point mostrando: Título da apresentação (nome, assunto…) O que você entendeu por Orientação a Objetos? Exemplos (3 de cada) de:

a. Classesb. Objetosc. Atributos

O que você entendeu por associação?2. O que significa Instanciar uma classe? Como fazer isso?3. Procure na Internet e inclua na apresentação 5 exemplos de Linguagens de

Programação (atuais) que utilizam Orientação a Objetos?

(1 slide)

(1 slide)

(de 1 a 3 slides)

(1 slide)

(1 slide)

(1 slide)(1 slide)

Page 30: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Encapsulamento

Slide nº 30 de 31.

Num dado objeto somente interessa ao cliente as funções que ele executa e não a implementação da mesma.

Se precisarmos mudar o valor de alguma variável de instância de um objeto, devemos enviar uma mensagem que recebe um valor como argumento e faz a alteração.

As palavras encapsular e esconder são termos técnicos da definição de linguagens orientadas a objeto.

Um bom exemplo de encapsulamento seria um disco rígido. A interface do disco rígido deixa acessível ao computador (cliente) suas funções de leitura e escrita, os dispositivos mecânicos e eletromagnéticos que o HD utiliza para realizar tais operações não fica acessível ao seu cliente estando assim encapsulados.

Por Exemplo a “Caixa preta” – não é necessário saber como funciona internamente, mas apenas como saber utilizar.

Page 31: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Herança

Slide nº 31 de 31.

A herança é a principal característica da programação orientada a objetos pois é através desse mecanismo que a classe mais especializada herda todos os métodos e atributos da classe mais geral.

Permite que uma nova classe seja descrita a partir de uma outra classe já existente (reutilização);

Herança é um mecanismo que permite que características comuns a diversas classes sejam fatoradas em uma classe base, ou superclasse. A partir de uma classe base, outras classes podem ser especificadas. Cada classe derivada ou subclasse apresenta as características (estrutura e métodos) da classe base e acrescenta a elas o que for definido de particularidade para ela.

Page 32: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Polimorfismo

Slide nº 32 de 31.

De forma genérica, polimorfismo significa "várias formas". É a capacidade de objetos diferentes reagirem segundo a sua

função a uma ordem padrão. Por exemplo: O comando "abre", por exemplo, faz um objeto

entrar em ação, seja ele uma janela, uma porta ou uma tampa de garrafa.

Page 33: Colégio da Imaculada Curso Técnico em Informática Fundamentos da Orientação a Objetos (OO) Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br

Referências Bibliográficas

Slide nº 33 de 31.

Leendert Ammeraal, "Programas e Estruturas de Dados em C", Editora Presença, 1994 Programming Languages: Concepts and Constructs, Addison-Wesley, 1996. Ciência da Computação: uma visão abrangente, J. Glenn Brookshear, 2005. B. Kernighan, R. Pike, The Practice of Programming, Addison Wesley, 1999 Wikipedia – enciclopedia online. Disponível

em: http://pt.wikipedia.org/wiki/Paradigma. Acesso em Janeiro/2006.