Herança e Propriedades

Documentos relacionados
A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

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

Programação Orientada a Objetos

Herança e Polimorfismo

Linguagem de Programação. Diagrama de classes

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

AULA 16 HERANÇA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

LÓGICA DE PROGRAMAÇÃO (JAVA) HERANÇA. Professor Carlos Muniz

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

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

Linguagem de Programação II Herança

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Nome do Aluno: Matrícula: Turma: Data: 08/04/2013

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

Introdução. Extends e Super. Exercício Prático 5 Herança. Nome:

Herança. Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman SISTEMAS DE INFORMAÇÃO 1

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

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

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

Programação por Objectos. Java

Notas de Aula 04: Herança e polimorfismo.

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

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

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

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

Prof. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1

Desenvolvimento Web TCC Turma A-1

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

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

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

Professor Leonardo Cabral da Rocha Soares Lattes:

Herança e Classes Abstratas. João Paulo Q. dos Santos

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

Programação Orientada a Objetos

Programação Orientada a Objeto

POO29004 Programação Orientada a Objetos

Composição e Herança. carro meucarro = new carro();

Herança; Sobrescrita, Sobrecarga e Polimorfismo; Classes abstratas e concretas (finais).

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Programação Orientada a Objetos JAVA - NETBEANS

Introdução à Programação. Encapsulamento e Herança

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

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

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

1 Introdução e Conceitos básicos

Universidade Federal de Uberlândia

Computação II Orientação a Objetos

extendsé usado para indicar herança em JAVA

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

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

Programação Orientada a Objetos para Redes de Computadores

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

PROGRAMAÇÃO ORIENTADA A OBJETOS: HERANÇA

Notas de Aula 05: Diretivas de atributos, métodos e classes e o uso de Interfaces.

Linguagem de programação Programação Orientada a objetos

COMPORTAMENTOS - Observações

Classes e Objetos. Sintaxe de classe em Java

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa

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

POO29004 Programação Orientada a Objetos

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Avançando em Java com Polimorfismo. Prof.: Hugo Barros

Como exemplo, vamos criar uma subclasse da classe Funcionario, vista nos capítulos anteriores.

POO29004 Programação Orientada a Objetos

Orientação a Objetos - Herança

Programação Orientada a Objetos

PROGRAMAÇÃO ORIENTADA A

Linguagens de Programação

Linguagem de Programação III

Repetindo mais código?

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

Classe Funcionario tem Endereco

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

Programação Orientada a Objetos Classes Abstratas. Sérgio Soares

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

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Introdução à Programação Orientada por Objectos em Java. Enquadramento e Objectivos Abstracção Encapsulamento Herança Polimorfismo Conclusão

AULA TEÓRICA 9. Tema 8. Herança (continuação) Ø Sobreposição de métodos. Ø Variáveis e métodos estáticos. Ø Hierarquia de classes.

[Linguagem de Programação 3] [Aula 01] [Gustavo Yoshio Maruyama]

Abstração e Herança Parte 6

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

POO - Programação Orientada a Objetos

Linguagem de Programação II Importando Classes/Pacotes

Herança e Polimorfismo

Classe Abstrata e Interface

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

Polimorfismo. PARTE II: Java e OO. Polimorfismo. Polimorfismo. Polimorfismo. Polimorfismo

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

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

9 Classes Abstractas e Interfaces

Transcrição:

Herança e Propriedades 2013

O que veremos hoje? Herança e Propriedades Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos

Objetivos Conceito de Herança em POO Herança Herança em C#

Modularidade Divisão dos componentes do software em unidades funcionais separadas Essas unidades se interagem entre si, fazendo com que o sistema funcione de forma adequada Vantagem: Reutilização de Software

Modularidade Veículos Moto Carro Caminhões

Herança Dado um sistema de venda que permita o cadastro de pessoa física ou Jurídica. Como evita a redundância? O que eles têm em comum? Como eles são relacionados? PESSOA FÍSICA Atributos: Nome Endereco Telefone CPF PESSOA JURÍDICA Atributos: Nome Endereco Telefone CNPJ Inscrição Estadual Inscrição Municipal

Herança Solução: Utilização de herança

Herança em POO Classe genérica, classe base, superclasse, ancestral ou pai: Define variáveis de instância genéricas e métodos Classe especializada, derivada, subclasse ou filha: Especializa, estende ou herda os métodos genéricos de uma superclasse Define apenas os métodos que são especializados

Herança em POO Herança é um conceito chave usado na orientada ao objeto para descrever uma relação entre classes Através da herança uma classe copia ou herda todas as propriedades, atributos e métodos de uma outra classe, podendo estender sua funcionalidade A herança evita a reescrita de código e especifica um relacionamento de especialização/generalização

Herança em POO Estrutura Hierárquica e modular Projeção de classes genéricas que podem ser especializadas em classes mais particulares. Classes especializadas reutilizam o código das mais genéricas.

Herança Simples

Hierarquia de Herança

Hierarquia de Herança Usamos : para indicar herança em C# class Pessoa { private String nome, endereco; private String telefone; public String getnome(){ return nome; } public void setnome(string nome) { this.nome = nome; } } class PessoaFisica : Pessoa { private String cpf, rg; private DateTime dtnascimento; public String getcpf() { return cpf; } public void setcpf(string cpf){ this.cpf = cpf; } }

Hierarquia de Herança static void Main(string[] args){ Pessoa p = new Pessoa(); PessoaFisica pf = new PessoaFisica(); p.setnome("joão"); pf.setnome("josé"); pf.setcpf("032..."); Console.WriteLine(p.getNome()); Console.WriteLine(pf.getNome()); Console.WriteLine(pf.getCpf()); } Métodos herdados da classe Pessoa Todas as características existentes na classe Pessoa também existem na classe PessoaFisica

Subtipos Uma classe que herda de outra é um subtipo Herança representa relacionamento É UM Carro É UM veículo; Pessoa Física É UMA Pessoa; Gato É UM Animal. Podemos ter uma variável do tipo Pessoa que referencia um objeto do tipo PessoaFisica

Subtipos Uma referência a Pessoa sempre poderá apontar para uma instância de PessoaFisica, porque PessoaFiscia É UMA Pessoa; O que torna possível a superclasse referenciar uma instância da subclasse é a certeza de que a subclasse pode fazer tudo que a superclasse pode fazer.

Subtipos A sintaxe para declarar uma classe que herda de outra em C# é: class DerivedClass : BaseClass {... } Sub-classes podem ser normalmente classes base para outras heranças: class DerivedSubClass : DerivedClass {... } As classes herdam apenas de uma classe base

Subtipos Os construtores da classe ancestral podem (e devem) ser chamados pelo construtor da classe derivada com a palavra reservada base class Empregado { } private string nome; protected double salariofixo; public Empregado(string anome, double asalariofixo) { nome = anome; salariofixo = asalariofixo; } class Gerente : Empregado { } private double gratificacao; public Gerente(string anome, double asalariofixo, double agratificacao) : base(anome, asalariofixo) { gratificacao = agratificacao; }

System.Object A classe System.Object é a classe ancestral de qualquer classe em C#, mesmo que não declarada class Empregado {... } class Empregado : System.Object {... } Métodos herdados de System.Object Equals Testa se dois objetos são iguais GetHashCode Retorna o código de hash para o objeto GetType Retorna informação sobre a classe do objeto ToString Retorna o objeto como string

Exercício 1 Passo 1: implementar as classes conforme o diagrama; uso do :. Passo 2: criar construtores padrão para cada classe e imprimir seus respectivos nomes; Passo 3: criar construtores que receba como arâmetros variáveis para inicializar os atributos; uso do base. Passo 4: criar os métodos gets e sets; Passo 5: criar uma classe Principal com o método main para criar as instâncias p, pf e pj de sua respectivas classes. Passo 6: Verificar o que ocorre se chamar p.setcpf() e p.setcnpj() e explique; Passo 7: Verificar o que será impresso ao chamar o construtor padrão de PessoaFisica e de PessoaJuridica. uso cadeia de construtores.

Exercícios 2 Implementar as classes do diagrama

Dúvidas