Orientação a Objetos (OO)

Documentos relacionados
Introdução à Modelagem Conceitual 1. Conceitos Básicos

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

Programação Orientada a Objetos

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

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

Programação Orientada a Objetos

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

Programação Orientada a Objetos JAVA - NETBEANS

Auto-Referenciamento e Herança

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

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

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

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II)

Python Orientação a Objetos. Introdução à Programação SI2

O PARADIGMA ORIENTADO POR OBJETOS

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

Programação Orientada a Objetos

Programação Orientada a Objetos

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

ORIENTAÇÃO A OBJETOS Histórico:

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Programação Orientada a Objetos

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

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

Desenvolvimento de Aplicações Desktop

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

UML. Diagrama de Classe

Unidade: sobrecarga, construtores e herança

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Programação Orientada a Objetos em Python

Laboratório de programação II

Banco de Dados I Generalização/Especialização

Linguagem de Programação. Diagrama de classes

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?

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

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

Aula 7 POO 1 Herança. Profa. Elaine Faria UFU

Programação por Objectos Introdução. Introdução 1/18

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

MODELAGEM DE DADOS MÓDULO III - UNIDADE V- MAPEAMENTO OBJETO RELACIONAL

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

Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos

Linguagem de Programação III

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

Universidade Federal de Uberlândia

Módulo III Padrões GOF

Introdução à Orientação a Objetos

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

IV. CONTEÚDO PROGRAMÁTICO

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

Programação de Computadores - I. Profª Beatriz Profº Israel

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

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

ACH2002. Orientação a Objetos

Conceitos. Conceitos Básicos do Paradigma de Orientação a Objetos. Conceitos: Objeto. duas pessoas (objetos) o comportamento desta pessoa

Sumário. BD Orientado a Objetos

Linguagens de Programação Aula 12

Capítulo 2. Orientação a Objetos

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

Engenharia de Software II e III - Introdução ao Diagrama de Classe

Programação Orientada a Objetos

Herança - Conceitos Básicos

Programação II. Cassio Diego

Televisao tamanho tela emitirsom. conectarperifericos

Projeto Orientado a Objetos

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

Introdução à Orientação a Objetos

Conceitos de Orientação a Objetos. Objeto Atributo Classe Método

Professor Leonardo Cabral da Rocha Soares Lattes:

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

Programação Estruturada Orientada a Objetos

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

Capítulo 5 Modelação do Sistema 1

POO29004 Programação Orientada a Objetos

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML.

Herança - Conceitos Básicos

Engenharia de Software Projeto de software

Modelagem Orientada a Objeto

SISTEMA DE INFORMAÇÃO Modelo Conceitual. Prof. Luiz Fernando Laguardia Campos FMS

Linguagem de Programação III

Laboratório de Programação. Aula 2 Java 5COP088. Aula 2 Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Complexidade do Software

Conceitos de Orientação a Objetos

Herança Tiago Eugenio de Melo

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

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

Banco de Dados Modelagem Conceitual de Dados. Prof. Edjandir Corrêa Costa

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Introdução à Análise e Projeto de Sistemas

Questões Comentadas APOO, OO, Coesão e Acoplamento

MAPEAMENTO OBJETO RELACIONAL. Professora Lucélia Oliveira

Transcrição:

CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 04 APRESENTAÇÃO: Hoje vamos discutir os conceitos de Orientação a Objetos. DESENVOLVIMENTO: Orientação a Objetos (OO) É uma forma de entender e representar sistemas complexos como estruturas hierárquicas de objetos correlatos. Objeto Um objeto é uma construção de software que encapsula estado e comportamento, através de propriedades (atributos) e operações (métodos); Estado de um objeto: composto por suas propriedades e seus respectivos valores; Comportamento: a maneira como o objeto reage quando o seu estado é alterado ou quando uma mensagem é recebida. CLASSES Conjunto de objetos similares. Estrutura de dados similares (propriedades); Comportamento similar (operações) Um objeto é uma instância de uma classe; Página 1/6

Objetos de uma mesma classe diferenciam-se pelos valores de suas propriedades e de seus identificadores únicos. Troca de Mensagens Mecanismo através do qual os objetos se comunicam, invocando as operações desejadas; Um objeto (Emissor) envia uma mensagem a outro (Receptor) que executará uma tarefa; Operações (métodos) são invocados através de mensagens. Encapsulamento Não mostre as cartas de seu baralho Objetivo: Ocultar do mundo externo ao objeto, os detalhes de implementação e restringir o acesso às propriedades e métodos. Vantagens: Segurança no acesso ao objeto; Melhor consistência no estado interno, pois evita alterações incorretas de valores das propriedades. Página 2/6

Herança Generalização define um relacionamento entre classes onde uma classe compartilha a estrutura e/ou comportamento de uma ou mais classes Generalização define uma hierarquia de abstrações na qual uma subclasse herda de uma ou mais superclasses Com herança simples, a subclasse herda de apenas uma superclasse Com herança múltipla, a subclasse herda de mais de uma superclasse Generalização é um relacionamento "é um" ou "tipo de" Desenhando uma Hierarquia de Herança Superclasse InfoRegistroUsuário Relacionamento de Generalização Subclasse InfoEstudante Considerações sobre generalização Como um relacionamento de generalização não se refere a objetos individuais O relacionamento não é nomeado Multiplicidade não tem sentido Teoricamente, não há limite no número de níveis em uma hierarquia Na prática, os níveis precisam ser bem limitados Hierarquias típicas em C++ tem 3 a 5 níveis Hierarquias em Smalltalk podem ser um pouco maiores O que é Herdado? Uma subclasse herda de seus pais: Atributos Operações Relacionamentos Uma subclasse pode: Incluir atributos, operações e relacionamentos adicionais Redefinir as operações herdadas (use com cautela!) Página 3/6

Herdando Atributos Atributos são definidos no nível mais alto da hierarquia de herança na qual eles são aplicáveis Subclasses de uma classe herdam todos os atributos Cada subclasse pode adicionar novos atributos Herdando Operações Operações são definidas no nível mais alto da hierarquia de herança na qual elas são aplicáveis Subclasses de uma classe herdam todas as operações Cada subclasse pode aumentar ou redefinir operações herdadas Herdando Relacionamentos Relacionamentos também são herdados e devem ser definidos no nível mais alto da hierarquia de herança na qual eles são aplicáveis Subclasses de uma classe herdam todos os relacionamentos Cada subclasse pode também possuir relacionamentos adicionais Generalização de Classes Generalização proporciona a capacidade de criar superclasses que reúnem estrutura e/ou comportamento comum a várias subclasses Procedimento de generalização Identificar similaridades de estrutura/comportamento entre várias classes Criar uma superclasse para reunir a estrutura/comportamento comum As classes originais passam a ser subclasses da nova superclasse Superclasses são mais abstratas que suas subclasses Exemplo de Generalização Página 4/6

Bens ContaBancária Seguro Imóveis Poupança ContaCorrente Ações Bônus Especialização de Classes A especialização proporciona a capacidade de criar subclasses que representam refinamentos nos quais a estrutura e/ou comportamento da superclasse são adicionados ou modificados Procedimento de Especialização Notar que algumas instâncias apresentam estrutura ou comportamento especializado Criar subclasses para agrupar instâncias de acordo com sua especialização Subclasses são menos abstratas que suas superclasses Hierarquias de Herança Tanto generalização quanto especialização são usadas no desenvolvimento de uma hierarquia de herança Durante a análise, são estabelecidas hierarquias de herança entre abstrações chaves (i.e., classes) se necessário Durante o projeto, as hierarquias de herança são refinadas para: Aumentar reutilização Incorporar classes de implementação Incorporar bibliotecas de classes disponíveis Herança Múltipla CoisaQueVoa herança múltipla Animal Avião Helicóptero Pássaro Lobo Cavalo Página 5/6

Conceitos de Herança Múltipla Conceitualmente é necessário para modelar o mundo real de forma precisa Na prática, isto pode gerar dificuldades na implementação Nem todas as linguagens de programação orientadas a objetos suportam herança múltipla diretamente Cada ambiente/linguagem de programação escolhe maneiras de resolver estas dificuldades. INTEGRAÇÃO: BIBLIOGRAFIA: FURGERI, SÉRGIO. Java 2 Ensino Didático. Desenvolvendo e Implementando Aplicações. ed. Érica. São Paulo, 2002. DEITEL, H. M. e DEITEL, P. J.. Java, como Programar. Ed. Bookman. Porto Alegre. 2001. ARNOLD Ken, GOSLING James: "The Java Programming Language Second Edition", Addison- Wesley, 1997. Página 6/6