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

Documentos relacionados
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 I Apresentação da Disciplina

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

Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos

Orientação a Objetos (OO)

Programação Orientada a Objetos

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

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

POO e C++: Herança e Polimorfismo

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

Programação Orientada a Objetos

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

Programação Orientada a Objetos

O PARADIGMA ORIENTADO POR OBJETOS

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

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

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

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

Sumário. BD Orientado a Objetos

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

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

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

Modelagem Orientada a Objeto

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

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

Laboratório de programação II

Linguagem de Programação III

Programação Java (nível intermediário) 4. Polimorfismo

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

Desenvolvimento de Aplicações Desktop

Conceitos de Programação Orientada a Objetos

Laboratório de programação II

Levantamento, Análise e Gestão Requisitos. Aula 03

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

Daniel Wildt

Programação Orientada a Objetos JAVA - NETBEANS

Programação Estruturada Orientada a Objetos

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

UNIDADE 5 Aplicação dos Conceitos de Orientação a Objetos

Linguagem de Programação II Herança

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

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

Aula 2 POO 1 Introdução. Profa. Elaine Faria UFU

Os princípios do desenho orientado a objetos

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

Classes e Objetos. Sintaxe de classe em Java

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

Análise de Sistemas 3º Bimestre (material 2)

Linguagem de Programação. Diagrama de classes

Conceitos de Orientação a Objetos

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

Programação Orientada a Objetos em Python

Sobreposição de Métodos

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?

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

Capítulo 2. Orientação a Objetos

Fundamentos de Orientação a Objetos

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

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

4 Conceito de Herança

Fundamentos de Orientação à objetos

Programação Orientada a Objetos JAVA - NETBEANS

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

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

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

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

Aula 4 Encapsulamento e Relacionamento Cleverton Hentz

C com introdução a OO

Unidade: sobrecarga, construtores e herança

Linguagens de Programação Aula 12

Interfaces e Classes Abstratas

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

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Classe Abstrata e Interface

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

Transcrição:

Orientação a Objetos (OO) LPG II - Java Orientação a Objetos (OO) Roberto Vedoato vedoato@joinville.udesc.br Programação Procedimental x Orientada a Objetos Objetivos e Benefícios da Orientação a Objetos Conceitos e Terminologia Classes e Objetos Encapsulamento Métodos e Mensagens Herança Polimorfismo Ligação Dinâmica Orientação a Objetos (OO) 2 Programação Procedimental Programação Orientada a Objetos Proc1 Proc2 Proc3 processos e separados processos e encapsulados Foco nos procedimentos (algoritmos) que alteram os Estado e comportamento separados fazendo com que estruturas de sejam enviadas a funções ou procedimentos Foco em conceitos, representados por, sobre os quais são definidas as operações Melhor modelagem do mundo real, pois objetos possuem atributos e atividades associadas à eles Agrupa estado e comportamento num mesmo módulo e controla o acesso a essas propriedades (encapsulamento) Orientação a Objetos (OO) 3 Orientação a Objetos (OO) 4

Objetivos da Orientação a Objetos Reduzir a complexidade, aumentar a confiabilidade Produzir software mais confiável Proteção aos : encapsulamento Aumentar a produtividade de software Reutilização de código: classes Extensão da biblioteca de classes: Definição de subclasses (herança) Implementação de novos métodos Redefinição de métodos (polimorfismo) Conceitos Fundamentais e Terminologia OO Objetos entidades básicas do software OO, são instâncias de classes Classes conjunto de objetos com as mesmas características, organizadas em hierarquia Atributos estruturas de dos objetos Métodos operações que atuam sobre os Mensagens chamadas a operações (métodos) Orientação a Objetos (OO) 5 Orientação a Objetos (OO) 6 Conceitos Fundamentais e Terminologia OO Encapsulamento proteção: e comportamento especificados num mesmo módulo Comunicação entre objetos objetos comunicam-se através de troca de mensagens enviadas para seus métodos Herança subclasse herda propriedades da superclasse Polimorfismo mesma mensagem implementada de diferentes formas Ligação dinâmica ligação mensagem-método em tempo de execução Classes Classe é um modelo estático que representa um conceito ou artefato de implementação Exemplos: Pessoa, Veiculo, Tabela, Janela, Data Um conceito pode ser descrito por atributos Pessoa: nome, data nascimento, nacionalidade, sexo... Data: dia, mês, ano Os atributos podem sofrer operações Leitura, escrita, atribuição, cópia, comparação... Orientação a Objetos (OO) 7 Orientação a Objetos (OO) 8

Classes Objetos (instância de classe) É um tipo definido que contém uma estrutura de e um conjunto de operações que atuam sobre estes, servindo de modelo para a criação de objetos (instâncias) Encapsula os e as operações e controla o acesso a estas propriedades Organizadas em hierarquia especialização ou generalização definição de subclasses. Ex: Carro, moto, ônibus... subclasse herda propriedades da superclasse. adição de novas estruturas e/ou métodos redefinição de métodos Entidade dinâmica criada a partir de uma classe e possui os sobre os quais são realizadas as operações disponíveis em sua classe Encapsulam (estado + comportamento) estado = do objeto (variáveis de instância) comportamento = métodos Objetos reagem a mensagens mensagens são chamadas a métodos Cada objeto é responsável por seu conjunto de Exemplo: Objeto da classe Carro: Fiat Palio, Chassi n 7879713 Orientação a Objetos (OO) 9 Orientação a Objetos (OO) 10 Classe e Objeto Métodos Classe: estática, modelo de objetos Classe: Empregado nome depto salario atualizasalario calculaextras var de instância () comportamento (métodos) Objeto: dinâmico, instância de classe atualizasalario Maria Compras R$ 1000 Métodos são operações que atuam sobre os O efeito da chamada de um método depende Do que o método faz De seus argumentos e Do estado em que o objeto se encontra Exemplo sacar um determinando valor de uma conta, tem efeito diferente se a conta tem saldo ou não Podem ser classificados de acordo com o serviço que prestam Acessadores: consultam e retornam o estado do objeto (gettters) Alteradores: alteram o estado do objeto (setters) Iteradores: agem sobre diferentes componentes do objeto (busca,...) Construtores: criam um objeto e/ou iniciam seu estado Destrutores: liberam ou destroem o objeto Há linguagens em que é possível definir métodos de classe além de métodos de objeto (instância) Orientação a Objetos (OO) 11 Orientação a Objetos (OO) 12

Encapsulamento Proteção aos e operações: agrupa estado e comportamento num mesmo módulo e controla o acesso a essas propriedades Esconde a implementação deste agrupamento, não é necessário se preocupar com o como para se usar É implementado definindo se um método ou atributo é Público: visto pelos métodos de outras classes Privado: visto apenas pelos métodos da própria classe Protegido: visto pelos métodos da própria classe ou de classes herdeiras da classe Restringe o acesso aos objetos da classe, fornecendo um conjunto público de operações sobre estes (protocolo ou interface) Herança Filosofia básica para a solução de problemas OO Relação estática entre classes (generalização e especialização) Classes são organizadas dentro de uma hierarquia Na definição de subclasses subclasse herda propriedades da superclasse. pode haver adição de novas estruturas e/ou métodos pode haver redefinição de métodos Criação/destruição de um objeto na classe especialização implica na criação/destruição de um objeto na classe genérica Orientação a Objetos (OO) 13 Orientação a Objetos (OO) 14 Herança Herança Simples e Múltipla ESTUDANTE Simples Objeto herda propriedades diretamente de apenas uma classe Múltipla Objeto herda propriedades de duas ou mais superclasses GENERALIZAÇÃO A X ESTUDANTE DE DE GRADUAÇÃO ESTUDANTE DE DE PÓS- PÓS- GRADUAÇÃO ESPECIALIZAÇÃO B C Y Z Hierarquia de Classes D E W Orientação a Objetos (OO) 15 Orientação a Objetos (OO) 16

Herança Simples e Múltipla - Exemplos Herança (relacionamento é um ) Simples Múltipla Pessoa Pessoa Conta Docente Funcionário Docente Funcionário graduação pós-grad. graduação pós-grad. Poupança Especial Assistente Herança não é seletiva, todas propriedades do objeto genérico são herdadas Orientação a Objetos (OO) 17 Orientação a Objetos (OO) 18 Agregação (relacionamento é parte de ) Polimorfismo Dar formas distintas a uma mesma função ou dado Reutilização Conta saque A saque Poupança Especial saque B O2 O1 Agregação não implica em herança de propriedades Indica que um objeto contém como atributo outro objeto mesma mensagem sendo enviada a objetos de classes distintas (implementadas de diferentes formas) Orientação a Objetos (OO) 19 Orientação a Objetos (OO) 20

Ligação Dinâmica (dynamic binding) Correspondência de Termos binding ligação de chamada de subrotina ao código a ser executado early binding - em tempo de compilação late binding - em tempo de execução OO Objeto Classe Mensagem Procedimental Variável dinâmica (ponteiro) Tipo Chamada de subrotina em POO Método Subrotina (função/procedimento) ligação mensagem a método herança + polimorfismo dynamic binding Herança Polimorfismo Orientação a Objetos (OO) 21 Orientação a Objetos (OO) 22 Desenvolvimento de Programas OO Referências Foco em conceitos Informação encapsulada Funções não estão mais ligadas ao programa, mas, ao objeto Grande reutilização de código Todo objeto tem sua responsabilidade Objetos se comunicam através de mensagens Sistema é visto como um conjunto de objetos que cooperam entre si para atingir um objetivo DEITEL, H. M. & DEITEL, P. J. Java: como Programar. 4ª ed. Porto Alegre: Bookman, 2003 PRICE, A. Material de apoio da disciplina. Mestrado em Ciência da Computação, UFRGS, 2001. Orientação a Objetos (OO) 23 Orientação a Objetos (OO) 24