Herança em POO Importante:

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto Orientado a Objetos
Advertisements

Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
Princípios da Orientação a Objetos e a Linguagem UML
Linguagem II – Visual Basic
PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
Herança, Polimorfismo e Classes Abstratas em Java
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Orientação a Objetos: Encapsulamento e Classificação
Modelagem Orientada a Objetos
Persistência de objetos em arquivo texto usando Java
1 Orientação a Objetos: Herança Alcides Calsavara.
Orientação a Objetos: Encapsulamento e Classificação
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Iniciação ao Java – Márcio F. Campos
Análise Orientada a Objetos
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Introdução ao paradigma de programação: Orientado a Objetos
Linguagem de Programação II
Linguagem de Programação II
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Interfaces em Java1 Interfaces Prof. Ricardo Linden.
Programação Orientada a Objetos
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Classes Abstractas.
Paulo J. Azevedo Departamento de Informática Universidade do Minho
Herança e Polimorfismo
Classes e objetos P. O. O. Prof. Grace.
TÉCNICAS DE PROGRAMAÇÃO II
Herança em C#.
Polimorfismo em C#.
Linguagens de Programação
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Programação Orientada à Objetos
Laboratório de Programação I
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Aula 3 CoL, atividade Polimorfismo (late binding) Modificador final Modificador abstract Interfaces Herança múltipla Atribuição, Construtores, Destrutores,
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Herança em Java.
Orientação a Objetos Parte I
Programação orientada a objectos em C++
Curso de Aprendizado Industrial Desenvolvedor WEB
Princípios de Análise e Projeto Orientados a Objetos com UML
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
UML Diagrama de classes.
SISTEMAS DISTRIBUIDOS Aula 4
© Ricardo Pereira e Silva
Aula prática 14 Orientação a Objetos – C++ Parte 2
Programação I Aula 6 (Herança, Polimorfismo e Encapsulamento)
Programação Orientada à Objetos
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Orientação a Objetos usando Java
Classes Abstratas P. O. O. Prof. Ângela e Grace.
Polimorfismo.
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Herança Modelagem e Programação Orientada a Objetos
Bruno Inojosa MCP .NET Framework
Orientação a Objetos Programação Estruturada e Orientada a Objetos
Conteúdos Programáticos Criação de classes em VB Criar Criar Manipular Manipular Tipos de acesso Tipos de acesso Constructores Constructores.
Introdução a Orientação a Objetos
2 – Revisão de Programação Orientada a Objetos
20/04/2017 Orientação a Objetos 1 1.
Módulo II Capítulo 1: Orientação a Objetos
4 CONCEITOS BÁSICOS EM POO Dilvan Moreira.  Objetos  Classes  Herança  Polimorfismo Lembrando: 4 Conceitos Básicos.
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Continuação Modelagem Orientada a Objetos Técnico Subsequente.
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Prof.: Bruno Rafael de Oliveira Rodrigues. Herança Possibilita a uma classe usar campos ou métodos definidos em outra classe. Assim a classe pai possui.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Transcrição da apresentação:

Herança em POO Importante: É um mecanismo existente no paradigma Orientado a Objectos que permite a reutilização dos membros (atributos, propriedades, métodos) de uma classe (superclasse) ao definir-se novas classes (subclasses) a partir dela. Importante: Os construtores não são herdados!!!! Uma subclasse deriva apenas de uma superclasse Só os membros públicos ou friend da superclasse podem ser herdados pelas classes derivadas

Exemplos Herança em POO

Herança no VB Sintaxe Classe Base Classes Derivadas Palavra-Chave: Inherits

Exemplo

Não-exemplo

Pilares da POO Abstracção Encapsulamento Herança e Polimorfismo Herança é a propriedade de uma classe de herdar o comportamento de outra A herança em orientação a objectos resulta em árvores genealógicas que estruturam todo o sistema A herança é a chave do polimorfismo, onde um objecto pode ser representado por um de seus parentes Visibilidade e acesso no encapsulamento O uso de métodos como interface deve garantir o reaproveitamento e actualização do objecto Um objecto externo tem acesso aos métodos e estes têm garantido o acesso a atributos definidos na classe Existem também métodos privados, acessíveis somente por métodos do mesmo objecto Métodos também podem ter acesso a membros ocultos no processo de derivação Idealmente, a mensagem isola completamente os objectos entre si possibilitando o encapsulamento total entre dado e código

Exemplo – Cont. Classe Base (características comuns) Hierarquia Classe Base (características comuns) Superclasse Classe Derivada (características específicas) Herança é uma propriedade existente no paradigma orientado a objectos que permite a reutilização da estrutura e do comportamento de uma classe ao definir-se novas classes A classe que herda o comportamento é chamada de subclasse e a que definiu o comportamento superclasse Relação de herança nas propriedades: A subclasse herda as propriedades (atributos, operações e relações) da superclasse, podendo acrescentar outras É o mecanismo para expressar a similaridade entre classes, simplificando a definição de classes iguais que já foram definidas Herança - possibilidade de derivação de novas classes a partir de outras já existentes, recebendo os seus atributos e funcionalidades Possui os atributos e os métodos da classe base Subclasse

Herança no VB Sintaxe – Cont. Palavra-Chave: Inherits

Pessoa => Classe base estudante professor

Classes derivadas Estudante Professor

Polimorfismo Ambos possuem uma mesma função que é gravar mas esta função é realizada de forma diferente

Polimorfismo veículo Invocam o método acelerar acelerar usa um motor Todos os veículos possuem um modo de acelerar veículo Invocam o método acelerar acelerar usa um motor usa pedais e corrente Por outras palavras, temos objectos diferentes (carro, moto, bicicleta) que derivam de uma mesma classe (veículo). Esta classe possui um método Acelerar e, deste modo, podemos utilizar os diferentes objectos de modo polimórfico, invocando um método de mesmo nome, mas que possui implementação e comportamento diferente em cada um dos objectos. Mas com implementação e comportamento diferente em cada um dos objectos

Polimorfismo “Pilar da POO” O polimorfismo é uma característica importante da programação orientada a objectos e está directamente ligada à herança entre classes. “O polimorfismo ocorre quando um método que já foi definido na classe base é redefinido na classe derivada com um comportamento diferente.” A ideia do polimorfismo é que embora a mensagem seja a mesma, os objectos poderão ter comportamentos diferentes (muitas formas).

Polimorfismo “Pilar da POO” Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada. É necessário que os métodos tenham exactamente a mesma identificação forma veículo Acelerar() getArea() getArea() getArea() getArea() Acelerar() Acelerar()

Actividade

Actividade

Actividade Classes Derivadas Classe Base

Actividade Na classe base: Public Function obterArea() As Double Na classe derivada: Public overloads Function getArea() As Double objecto.getArea()

Actividade Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim r As New Retangulo(txt_altura.Text, txt_base.Text) MsgBox("Área do retângulo de base=" & txt_base.Text & " e altura=" & txt_altura.Text & " : " & r.getArea()) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim r As New Triangulo(txt_base.Text, txt_altura.Text) MsgBox("Área do triângulo de base=" & txt_base.Text & "e altura=" & txt_altura.Text & " : " & r.getArea()) Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim r As New Quadrado(txt_lado.Text) MsgBox("Área do quadrado de lado " & txt_lado.Text & ": " & r.getArea()) Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SairToolStripMenuItem.Click Me.Close() End Class

Vantagens do Polimorfismo Uma mesma mensagem pode provocar respostas diferentes quando recebidas por objectos diferentes. Vantagem Com o polimorfismo, pode-se enviar uma mensagem genérica e deixar a implementação a cargo do objecto receptor da mensagem. Para haver polimorfismo é necessário: Herança Sobrescrita (sobreposição de método) chamar método sobrescrito do objecto da subclasse, quando este objecto é referenciado por uma variável do tipo da superclasse

Mensagens em POO Elementos básicos: Mensagens Classes Objectos atributos + métodos não executáveis Objectos variáveis (dinâmicas) criadas a partir das classes estado + comportamento podem ser criados, copiados, destruídos, passados como argumentos, devolvidos como resultado... Mensagens actuam sobre objectos invocação os membros (métodos/propriedades) descritos na classe Existem três elementos básicos que devem ser considerados no modelo de POO: as classes; os objectos; as mensagens. As classes fazem parte do modelo conceptual e definem como o programa vai estar organizado, através da relação de herança e dos atributos e métodos, definidos para cada classe Os objectos vão ser as variáveis do programa, criadas a partir das classes já definidas. São os objectos que “dão vida” ao programa As mensagens são a forma de comunicação entre os objectos, invocando os métodos que foram definidos para a sua classe (no fundo, determinarão a evolução do programa)

Mensagens em POO Uma mensagem é dirigida a um objecto e provoca a execução de um membro que utiliza e/ou altera os valores dos seus atributos - o seu estado. pode provocar o envio de novas mensagens por parte deste, quer para ele próprio (internas), quer para outros objectos (externas). Jogador:Figo nome: “Figo” idade: 34 função: “médio” Jogador:Deco nome: “Deco” idade: 29 função: “central” Deco.Recebe() Figo.Passa() Figo 34 médio Figo.Lista() Deco.Passa() Deco.Recebe() Deco 29 central Deco.Lista() Deco.Finta() Deco.Marca()

Mensagens em POO Uma mensagem é dirigida a um objecto e provoca a execução de um método que utiliza e/ou altera os valores dos seus atributos - o seu estado. pode provocar o envio de novas mensagens por parte deste, quer para ele próprio (internas), quer para outros objectos (externas). JogodorxPC:Jogo2 jogadas(2,2) nJogadas JogoGalo:Jogo1 jogadas(2,2) nJogadas Altera o estado (atributo jogadas) Jogo1. jogar() Jogador1.Ganhou() Jogador1.estado() Jogo2.JogadaComputador() Jogo2. JogarAtaque()

Comunicação em POO Classe Jogador Atributos + Métodos Métodos Finta Marca Lista Passa Recebe Desloca Finta Marca Lista Passa Recebe Nome Idade Pos_x Pos_y Tem bola Por exemplo, no nosso simulador podíamos querer esconder o método «desloca». Esse método apenas vai ser invocado por mensagens internas do objecto, quando, por exemplo, lhe é enviado a mensagem para fintar, internamente ele envia uma mensagem para se deslocar. Se mais tarde quiséssemos alterar o método usado para deslocar um jogador para outro mais sofisticado, não teríamos que alterar o programa todo... Aquilo que vai estar acessível aos outros objectos é designado por interface! Função Atributos + Métodos (encapsulados) Métodos (Interface)

Comunicação em POO Elementos Mensagem: permitem a activação de um método/propriedade do objecto Interface: conjunto de métodos e atributos definidos na classe e oferecidos pelo objecto A comunicação entre os objectos dá-se através de mensagens trocadas pela interface (ou protocolo) especificada para o objecto. Assim, a interface é.... E são as mensagens que vão activar esses métodos (ou alterar os atributos se estiverem visíveis) E como se processa a comunicação? A interacção entre os objectos, ou seja, a evolução do programa, dá-se através da troca de mensagens! Como? Através da invocação dos métodos/atributos da interface (ou protocolo) especificada para o objecto. Análogo a uma chamada de função

Comunicação em POO Elementos Mensagem: permitem a activação de um método/propriedade do objecto Interface: conjunto de métodos e atributos definidos na classe e oferecidos pelo objecto Todos os objectos de uma mesma classe possuem a mesma interface e aplicam o mesmo método em resposta a uma mensagem idêntica. O valor retornado pode, no entanto, variar em função dos valores dos seus atributos e da existência de polimorfismo nas classes.

Recordar… Problema seleccionar aspectos importantes para o problema (abstrair entidades, acções, relacionamento, etc, ) capturar a estrutura da realidade Abstracção Agrupamento de elementos reais que possuem um conjunto atributos e comportamentos comuns Classificação representação VB

Recordar… ? geral Classe Base Veículo Classes Derivadas Carro Bicicleta especifico Herança ? Possibilitam a herança Polimorfismo Comunicação