Programação Orientada a Objetos

Documentos relacionados
Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Curso Profissional de Gestão e Programação de Sistemas Informáticos

Introdução ao Java. Prof. Herbert Rausch Fernandes

O PARADIGMA ORIENTADO POR OBJETOS

Linguagem de Programação I Apresentação da Disciplina

Introdução à Orientação a Objetos. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Conceitos de Programação Orientada a Objetos

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Linguagem de Programação III

Laboratório de programação II

Java para Desktop. Programação Orientada à Objetos 2 JSE

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Informática. Professor: Diego Oliveira. Conteúdo 04: Orientação a Objetos

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Programação Orientada a Objetos em Python

Programação Orientada a Objetos

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

Daniel Wildt

CURSO TÉCNICO DE INFORMÁTICA Módulo C ORIENTAÇÃO À OBJETO. Conceitos

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

Programação Orientada a Objetos

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objetos JAVA - NETBEANS

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Capítulo 2. Orientação a Objetos

ORIENTAÇÃO A OBJETOS Histórico:

Linguagens de Programação Aula 12

Interfaces e Classes Abstratas

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Programação Orientada a Objetos

A crise do software As duas abordagens actuais para o desenvolvimento de software: abordagem clássica abordagem orientada para objectos

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

Definição. Em POO, a abstração é o processo de esconder os detalhes de implementação de uma aplicação.

Linguagem de Programação I

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO (PSI) 11ºANO

Introdução a orientação a objetos

Introdução à Programação Orientada a Objetos. Programação Estruturada vs Programação Orientada a Objetos

ACH2002. Orientação a Objetos

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Orientação a objetos. Objetos ou Instâncias I

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Orientação a Objetos (OO)

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. JAVA6 e Programação Orientada Pelos Objectos, F. Mário Martins, FCA, Julho de 2009.

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Programação Orientada a Objetos

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Programação Orientada a Objetos

Programação Orientada a Objetos

Modelo do Mundo Real. Abstração. Interpretação

Programação Orientada a Objetos

Paradigmas de Linguagens de Programação. Tipos de Dados Abstratos

Classes e Objetos. Sintaxe de classe em Java

Orientação a Objetos e UML

Reinaldo Gomes Análise/projeto estruturado

Programação Orientada a Objetos

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Linguagem de Programação IV Introdução

Programação I Curso: Sistemas de Informação. Prof.: José Ronaldo Leles Júnior .:

9 Classes Abstractas e Interfaces

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Avançando em Java com

INTRODUÇÃO A POO. Programação Orientada a Objetos Flávio de Oliveira Silva 6. PROCEDIMENTAL (Algorítmica)

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Aula 04 Introdução à Programação Orientada à Objetos

INTRODUÇÃO À ORIENTAÇÃO A OBJETOS E UML

LINGUAGEM DE PROGRAMAÇÃO

3.4. Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos

Herança e Polimorfismo

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Introdução à Programação. Conceitos Básicos de Orientação a Objetos

Polimorfismo. O que é polimorfismo?

Programação Orientada a Objetos Flávio de Oliveira Silva 144

2. Introdução à Programação e Análise. Orientada a Objetos. Programação Orientada a Objetos em C O que é a Programação Orientada a Objetos?

Introdução a Orientação a Objetos e UML

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU

Computação II Orientação a Objetos

C com introdução a OO

Introdução ao paradigma da orientação a objetos

Aula II Orientação a Objetos. Pedro Baesse Alves Pereira

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Herança Sendo uma linguagem orientada a objetos Java oferece mecanismos para definir classes derivadas a partir de classes existentes; As classes deri

Orientação a Objetos. Leonardo Gresta Paulino Murta.

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

2. Introdução à Programação e Análise. Orientada a Objetos

Introdução à Orientação a Objetos

Introdução à Orientação a Objetos

Desenvolvimento de Aplicações Desktop

Transcrição:

Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017

História A OO surgiu no final da década de 60, quando dois cientistas dinamarqueses criaram a linguagem Simula. O termo POO foi introduzido com a linguagem Smalltalk (1983) No final dos anos 80 surgiu o Paradigma de Orientação a Objetos.

História Linguagens orientadas a objetos: Smalltalk (1972) ADA (1983) Eiffel (1985) Object Pascal (1986) Common Lisp (1986) C++ (1986) Java (1990) Python (1990) Perl 5 (2005)

Programação estruturada vs POO

Mundo Real Visão do Mundo orientada por Objetos vivemos num mundo de objetos estes objetos existem na natureza feitos pelo homem como produtos que usamos.. podem ser criados categorizados descritos organizados combinados manipulados

Noção de Objeto A noção de Objeto na Engenharia de SW OO Baseia-se nas propriedades fundamentais: independência de contexto => reutilização abstração de dados => abstração encapsulamento => abstração e proteção modularidade => desenvolvimento feito por composição de partes simples Um Objeto é o módulo computacional básico e único que corresponde à representação abstrata de uma entidade autónoma

Noção de Objeto Um Objeto é constituído por: um identificador único um conjunto privado de atributos (estado interno) variáveis de instância um conjunto de operações métodos de instância são as únicas a poderem aceder ao estado interno e que no seu conjunto definem o comportamento do objeto As operações podem ser: públicas - constituem a sua interface (API) privadas - apenas podem ser usadas por operações internas (não são visíveis do exterior) Objeto Triangulo Variáveis de Instância Ponto p1 = (10,2) Ponto p2 = (0,5) Ponto p3 = (3,7) Métodos de Instância void desenha() void roda(int x) int perimetro() boolean equilatero()

Objetos, Instâncias e Classes Classe entidade que tem dois objetivos contem a descrição da estrutura e comportamento de objetos da mesma família (mesmas variáveis de instância e métodos) cria esses objetos (todos com a mesma estrutura e comportamento) Instâncias são os objetos criados pelas classes Um objeto é instância de uma única classe Um objeto apenas pode ser criado por uma única classe Uma classe pode ter (criar) várias instâncias Instâncias da mesma classe têm igual estrutura e comportamento diferem nos valores que estão nas variáveis de instância

CLASSE Triangulo Variáveis de Instância Ponto p1 Ponto p2 Ponto p3 Métodos de Instância void desenha() void roda(int x) int perimetro() boolean equilatero() Classe instância triang1 p1 p2 p3 (10,2) (0,5) (3,7) void desenha() void roda(int x) int perimetro() boolean equilatero() Objeto Instanciação processo que cria um objeto a partir de uma classe Instância objeto resultante do processo de instanciação

CLASSE Triangulo Variáveis de Instância Ponto p1 Ponto p2 Ponto p3 Métodos de Instância void desenha() void roda(int x) int perimetro() boolean equilatero() Classe triang3 p1 p2 p3 instância instância (1,2) (0,5) (3,7) void desenha() void roda(int x) instância triang2 p1 p2 p3 (1,1) (3,5) (-4,0) void desenha() void roda(int x) int perimetro() boolean equilatero() triang1 p1 p2 p3 (10,2) (0,5) (3,7) void desenha() void roda(int x) int perimetro() boolean equilatero() Objeto Objeto int perimetro() boolean equilatero() Objeto

Métodos Os métodos são as ações que a classe pode realizar. É cada uma das operações (subprogramas) aplicadas ao objeto. Num programa, um método é a implementação de uma função. Método Construtor - Método utilizado para iniciar automaticamente os dados das instâncias de uma classe. Possui o mesmo nome da classe. Não possui retorno e é chamado no momento que a instância é criada. Método Destrutor - Método utilizado para destruir automaticamente os dados das instâncias de uma classe. Possui o mesmo nome da classe, precedido de ~. Não possui retorno e é chamado no momento que a instância é liberada.

Interface A interface é o contacto entre a Classe e o mundo externo, assim sendo quando uma classe implementa uma interface está comprometida a fornecer o comportamento publicado pela interface POO O PARADIGMA

Polimorfismo As classes fazem a mesma operação (método) mas de forma diferente. POO O PARADIGMA

Herança As classes relacionam-se entre si de modo a partilharem e enriquecerem as definições das estruturas e comportamentos das suas instâncias Objetivo reutilização definir uma vez e reutilizar n vezes superclasse Formas de reutilização Herança simples Herança Múltipla Delegação subclasse

Herança Uma classe: - é criada como subclasse de uma superclasse herdando as especificações (estado e comportamento) desta última - pode acrescentar estado e comportamento ao herdado da sua superclasse bem como alterar o comportamento que herda classe: mobília custo dimensões peso cor compra vende move classe: cadeira custo dimensões peso cor pernas compra vende move forra a classe cadeira herda (é subclasse) da classe mobília e pode definir atributos e operações próprias

Herança Herança simples uma classe herda a estrutura e comportamento definido na sua superclasse e acrescenta à estrutura e comportamento com as suas próprias definições mobilia uma classe apenas tem uma superclasse mesa cadeira armário Sistema Hierárquico de classes Hierarquia de Classes armário de WC armário de sala

Herança Herança Múltipla idêntica à herança simples com a diferença de que uma classe pode herdar de várias superclasses em simultâneo veículos terrestres aquáticos aéreos uma classe pode ter mais do que uma superclasse hovercrafts

Herança e Classes Derivadas Classe-base classe que serve de base à criação de outra classe; Classe-derivada classe que é criada a partir de outra classe. Derivação de classes criação de classes a partir de outras. Herança uma classe derivada herda, em princípio, todos os membros (variáveis ou atributos e funções ou métodos) da sua classe base. Uma classe derivada, para ter razão de ser, deverá ter os seus elementos próprios, a nível de atributos e métodos (variáveis e funções), nuns casos, inteiramente novos, noutros casos, readaptados da classe-base. Uma classe derivada também pode servir de classe-base de uma outra classe, logo podemos construir uma estrutura com vários níveis de hierarquia entre classes-base e derivadas hierarquia de classes.

Exemplo

Derivação de Classes A derivação de classes com herança das classes-base e com as suas características próprias, juntamente com a possibilidade de criarmos e utilizarmos objetos de todas essas classes constitui, em traços gerais, a essência da programação orientada para objetos.

Abstração O termo abstração, aplicado em programação significa a grosso modo, ou seja, só deve ser representado o que vai ser utilizado.

Encapsulamento Um objeto é uma cápsula que contém dados e métodos. Os dados apenas podem ser manipulados pelos seus métodos (públicos ou privados) Os seus métodos privados, tal como os dados, estão fechados dentro da mesma cápsula, não sendo visíveis do exterior Este conceito permite atingir a independência do contexto a facilidade de reutilização a facilidade de deteção de erros modularidade Estrutura de dados privada método público 1 método público 2 método público 3 método privado 1

Encapsulamento É um dos princípios da O.O., no qual a estrutura de um objeto só é acessível através de mensagens enviadas ao objeto. Assim, encapsular significa esconder a estrutura de dados. O encapsulamento determina que uma classe consiste em duas partes: Parte Invisível ou Privativa: formada pelas variáveis de instâncias e implementação dos métodos (em C++ a parte privada é especificada pela palavra reservada private). Parte Visível ou Pública: formada pelas assinaturas dos métodos. (em C++ a parte publica é especificada pela palavra reservada public). POO O PARADIGMA

Mensagens Os objetos interagem entre si através de um mecanismo de envio e receção de mensagens Uma mensagem é: uma invocação de um método público do objeto recetor da mensagem esta invocação é feita através da indicação do nome do método e de parâmetros adicionais para a sua execução o emissor passa o controlo de execução ao recetor da mensagem o resultado da execução deste método é retornado ao objeto emissor da mensagem o recetor devolve o controlo de execução ao emissor da mensagem

Mensagens Comunicação por mensagens através de mensagens um objeto ativa métodos, envia dados e recebe dados de outros objetos o envio de uma mensagem implica a transferência de controlo Sequência: 1- o emissor envia mensagem ao recetor o emissor pára, à espera que o recetor lhe devolva o resultado da execução 3 2 2- o recetor executa o método associado à mensagem 3- quando termina a execução do método, o recetor devolve o resultado e o controlo ao emissor 1 o emissor pode então continuar a executar

Noção de Programa em POO Um Programa em POO é o resultado da computação gerada pela interação (troca de mensagens) entre os vários objetos que o constituem. Um programa OO é constituído apenas por objetos, que por sua vez são criados a partir de classes. Um programa OO é construído com base: nas classes que irão criar os objetos que o constituem numa mensagem inicial, a ser enviada a uma classe, que irá desencadear todo o processo de construção dos objetos que o constituem Processo de explosão