ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Documentos relacionados
//conteúdo do arquivo ponto2dcirculo.h #ifndef PONTO2DCIRCULO_H #define PONTO2DCIRCULO_H class Ponto2D { public: Ponto2D (float, float); void setx

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

Linguagens de Programação

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

Programação Orientada a Objetos para Redes de Computadores

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

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista

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

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

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

Linguagem de Programação C++ Se analisarmos a manipulação do objeto c, efetuada no exercício anterior, e compararmos com o que acontece em um banco

Orientação a Objetos e a Linguagem Java

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Linguagem de Programação. Diagrama de classes

Programação Orientada a Objetos

Laboratório de programação II

Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno

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

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Herança. Algoritmos e Programação II. Aula 5 Herança

Técnicas de Programação:

Fundamentos de Programação

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

Fundamentos de Programação 2

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

Fundamentos de Programação 2

C com introdução a OO

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

UNIFEI Disciplina Professor

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

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Notas de Aula 04: Herança e polimorfismo.

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

Programação por Objectos. Java

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

Declaração de Construtores em Java

Orientação a Objetos - Herança

Linguagem de Programação C++

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

Linguagem de Programação C++

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

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

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Sobrecarga de Operadores

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

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

Java First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração

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

Herança e Propriedades

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

Linguagem de Programação II Herança

p Ja usamos, por diversas vezes, a classe String. Vimos o sistema de pacotes do Java e nunca precisamos dar um import nessa classe.

Linguagem de Programação III

Palavras Reservadas da Linguagem Java

Programação Orientada a Objetos II

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

Orientação a Objetos AULA 06

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

Classes e Objetos. Sintaxe de classe em Java

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Aula 9 Herança. Prof. Jefersson Alex dos Santos

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

saldo = novosaldo; } float getsaldo(void) return saldo; }

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

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

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

9 Classes Abstractas e Interfaces

Programação Orientada a Objetos JAVA - NETBEANS

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

4 Conceito de Herança

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

Classe Abstrata e Interface

PROGRAMAÇÃO I INTRODUÇÃO À ORIENTAÇÃO A OBJETOS II

Introdução. LP OO desenvolvida pela Sun no início da década de 90 com sintaxe semelhente a C\C++. C C++.

Linguagem de Programação II Implementação

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

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

Encapsulamento de Dados

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

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

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

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

COMPORTAMENTOS - Observações

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

5. Hierarquia de Classes, Herança a e Polimorfismo

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

5 Reuso de Classes. Desenvolvimento OO com Java. Vítor E. Silva Souza

Programação Orientada a Objetos SANTOS, Rafael

POO29004 Programação Orientada a Objetos

Linguagens de Programação Aula 12

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

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

Conceitos Básicos da Programação OO

Interfaces e Classes Abstratas

Programação Orientada a Objetos

Transcrição:

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

HERANÇA

A sintaxe de herança a para C++ e para Java são diferentes. Além m disso, em C++ é possível construir herança a múltipla... m Em Java isso não é possível... Vamos à sintaxe...

Em C++ class pessoa... }; class funcionario: public pessoa... }; O uso de herança private ou protected é muito raro. Consulte um manual quando for o caso. Na grande maioria das vezes, a herança será public.

Em C++ class pessoa... }; class funcionario: public pessoa... }; Dados private da classe base (pessoa) não podem ser acessados diretamente pela classe derivada (funcionario). Isso é bom, porque não permitirá uma mudança não supervisionada dos dados.

Em C++ class pessoa... }; class funcionario: public pessoa... }; Dados protected da classe base (pessoa), por outro lado, podem ser acessados diretamente pela classe derivada (funcionario). Isso não é bom, porque será possível alterar os dados e comprometer a integridade dos mesmos.

Herança a múltipla m (somente em C++) class veiculo... }; class passeio : public veiculo... };} class carga : public veiculo... };} class utilitario : public passeio, public carga... };}

Construtores da classe base, destrutores e operadores de atribuição sobrecarregados não são herdados, mas podem ser chamados pela classe derivada. É importante notar que o construtor da classe base é o primeiro a ser finalizado (na construção) e o último a ser destruído do (na destruição).

Em Java class pessoa... }; class funcionario extends pessoa... }; Para chamar o construtor da classe base (ou superclasse) use super(). Para chamar o construtor da classe atual utilize this()

Como Java sós faz herança a simples, cada classe sós pode herdar membros de uma única classe base ou superclasse. Isso cria uma hierarquia simples. Todas as classes em Java herdam características de alguma outra classe. Se nada for especificado, a herança a implícita da classe Object (do pacote java.lang lang) ocorre.

ESTUDO DE CASO CLASSE PONTO E CÍRCULOC (C++)

Exemplo: Ponto/circulo Ponto Coordenadas <x, y> Circulo Coordenadas <x, y> Raio

class Ponto public: Ponto( int = 0, int = 0 ); // construtor padrão void setx( int ); int getx(); void sety( int ); int gety() ; void print(); private: int x; int y; };

// Construtor padrão Ponto::Ponto( int Valor_x, int Valor_y ) x = Valor_x; y = Valor_y; }

// Set x void Ponto::setX( int Valor_x ) x = Valor_x; } // Get x int Ponto::getX() return x; }

// impressão void Ponto::print() cout << '[' << x << ", " << y << ']'; }

int main() Ponto p( 72, 115 ); // imprime coordenadas x y cout << Coord. X é " << p.getx() << "\ncoord. Y é " << p.gety(); p.setx( 10 ); // set x p.sety( 10 ); // set y } // imprime novas coordenadas cout << "\n\na nova posição é "; p.print(); cout << endl; return 0;

class Circulo public: // construtor padrão Circulo( int = 0, int = 0, double = 0.0 ); void setx( int ); // repetir para Y (sety) int getx(); // repetir para Y (gety) void setraio( double ); double getraio(); double getdiametro(); double getcircunferencia(); double getarea(); void print(); private: int x; int y; double raio; }; Sem o uso de herança, é preciso repetir a construção de vários métodos. Além disso, precisamos repetir os atri butos.

class NovoCirculo : public ponto public: // construtor padrão NovoCirculo( int = 0, int = 0, double = 0.0 ); void setraio( double ); double getraio(); double getdiametro(); double getcircunferencia(); double getarea(); void print(); private: double raio; }; As características de ponto são herdadas... NovoCirculo pode utilizar os métodos de ponto, mas não pode acessar os elementos private.

NovoCirculo::NovoCirculo( int Vx, int Vy, double Vraio ) x = Vx; // Erro! Tem que usar setx(vx) y = Vy; // Erro! Tem que usar sety(vy) setraio( Vraio ); } NovoCirculo pode utilizar os métodos de ponto, mas não pode acessar os elementos private.

// imprime objeto void NovoCirculo::print() } cout << "Centro = [" << x << ", " << y << ']' << "; Raio = " << raio; NovoCirculo pode utilizar os métodos de ponto, mas não pode acessar os elementos private.

// imprime objeto void NovoCirculo::print() cout << "Centro = [" << getx() << ", " << gety() << ']' << "; Raio = " << raio; } ou Para não confundir com chamada recursiva, a chamada do método print de ponto tem que ser identificada (com o escopo). void NovoCirculo::print() cout << "Centro = "; Ponto::print(); // chamando função de impressão do ponto cout << "; Raio = " << getraio(); }

Conclusões: É fácil construir classes à partir de outras tanto em C++ como em Java. Java, porém, tem uma grande biblioteca com classes prontas para você usar. Uma rápida busca na internet permitirá que você compreenda as vantagens de se trabalhar com uma linguagem onde jáj existe muita coisa pronta.

FIM