CPP. C plus plus versus Java
|
|
- Caio Canário Sintra
- 5 Há anos
- Visualizações:
Transcrição
1 CPP C plus plus versus Java
2 Principais Diferenças Herança a múltiplam Destructores e garbage colector Override de operadores Máquina virtual Templates e genéricos Referências e ponteiros Métodos virtuais e classes virtuais Conversão implícita de tipos usando construtores Incialização de arrays Listas de inicialização de membros Directivas de pre-processamento Declaration and implementation Bibliotecas (STL) Break e continue sem labels, for each Syntaxe
3 C++ Hello World #include <iostream> using namespace std; void hello() { cout<< Hello Wordl! ; int main(){ hello();
4 Máquina virtual O java normalmente corre numa máquina virtual enquanto que o compilador de C++ gera código máquina.
5 Herança múltipla Uma pessoa pode ser simultaneamente um estudante e um trabalhador. C++ permite herança múltipla. C++ classe TrabalhadorEstudante: public Trabalhador, public Estudante { Pode gerar problemas se houver métodos comuns a trabalhador e a estudante, mas tal pode se resolver por chamadas explicitas do tipo Trabalhador::metodo1( ) ou Estudante::metodo1( ) se a classe estiver a ser utilizada como uma das classes base não há ambiguidade.
6 Herança múltipla Java Classe TrabalhadorEstudante extends pessoa implements Trabalhador, Estudante{. Obriga e rescrever os métodos de trabalhador e de estudante, embora este possam chamar implementações de classes concretas de trabalhador e de estudante. Ou Classe TrabalhadorEstudante extends pessoa { Trabalhador trabalhador; Estudante estudante;. Mas tal não permite redefinir facilmente métodos da classe Trabalhador ou Estudante.
7 Garbage colector e destructores Em java as variáveis são removidas da memoria pelo garbage colector quando não estão a ser utilizadas. Em C++ as variáveis locais são automaticamente eliminadas, mas variáveis criadas com o operador new o malloc() tem de ser explicitamente libertadas utilizando o delete ou free()
8 Destrutores File pessoa.h class Pessoa { private: nome char*; public: Pessoa(nome char *); ~Pessoa(); char *getnome() {return nome;; File pessoa.cpp #include pessoa.h Pessoa::Pessoa(nome char *){ this->nome = new char[strlen(nome)]; strcpy(this.nome, nome); Pessoa::~Pessoa(nome char *){ cout<< destruindo uma Pessoa\n delete nome;
9 Destrutores File main.cpp #include pessoa.h main(){ Pessoa pessoa( Joaquim ); cout<<pessoa.getnome(); cout<<endl; Resultado Joaquim destruindo uma Pessoa
10 Overload de operadores #include <string.h> String& String::operator+=(conts String &s) { len+=s.len; char *p= new char[len+1]; strcpy(p,str); strcat(p,s.str); delete str; str=p; return *this; String& String::operator+(conts String &s) conts { String *result = new String(this); // Copia cada ums dos atributos // da String. result += s; // Assume que um novo char array // foi alocado. return *result; Todos os operadores podem ser redefinidos menos o ::,.*,. e?: Código de teste: String aux( Hello ); aux+= World\n ; cout<<aux; Código de teste: String aux1( Hello ); String aux2( World\n ); cout<< aux1+aux2;
11 Operator overloading O uso de operadores resulta em código mais compacto. No entanto código mais compacto é normalmente mais difícil de ler. Overload de operadores pode levar a código confuso (devido a redefinições não esperadas). Uma descrição textual é normalmente mais descritiva que um operador. Overload complica o compilador Por estas razões, não é suportado pelo java. No entanto o overload de operadores pode ser útil desde que bem utilizado.
12 Templates e genéricos Template <class Type> Type min(type a, Type b) { return (a<b)?a:b; Uma chamada da forma: int a=3, b=4; cout<<min(a, b); Queria uma instância do código da forma: int min(int a, int b) { return (a<b)?a:b; Uma chamada da forma: double b=3.2, b=4.7; cout<<min(a, b); Queria uma instancia do código da forma: double min(double a, doube b) { return (a<b)?a:b; Existem duas versões da mesma função ao contrário do mecanismo de apagamento do java.
13 Referências e ponteiros Em java todas as variáveis correspondem a apontadores para objectos com excepção dos tipos primitivos. C++ os objectos são implementados de forma semelhante a estruturas. Apontador tem de ser criados explicitamente. Ponteiros em C++ podem ser usados como em C, por exemplo com aritmética de ponteiros. Java Conta conta = new Conta(100); Conta conta2 = conta; //referencia para conta System.out.println(conta.getSaldo( )); C++ Conta conta(100); Conta conta2 = conta; // cópia membro a membro de conta cout<<conta.getsaldo(); Ou Conta *conta = new Conta(100); Conta *conta2 = &conta; cout<<(*conta).getsaldo();
14 Referências C++ (&) Referências em C++ class Artigo { Revista &revista; Autor &autor; Artigo(Autor &autor, Revista &revista); Escondem ponteiros mas deixa de ser necessário usar *. Exemplo: autor.nome = João em vez de (*autor).nome = João //autor não é um ponteiro Tem de ser incializadas e depois disso não podem apontar para outros objectos. Tal não acontece com as referências em Java. Ao contrário do java os operadores = e == referem-se ao objecto e não ao ponteiro. int &refval = val; // Ok int &refval; // error
15 Referências java Java class Artigo { Revista revista; Autor autor; Artigo(Autor autor, Revista revista) { this.autor=autor; this.revista=revista; void println() { System.out.println( autor.nome); System.out.println( revista.nome); C++ class Artigo { Revista *revista; Autor *autor; Artigo(Autor *autor, Revista *revista) { this->autor=autor; this->revista=revista; void println() { cout<<autor->nome; cout<<revista->nome;
16 Métodos virtuais Em C++ apenas os métodos com a keyword virtual podem ser redefinidos. Java C++ class Conta { public final float getsaldo(); public float deposito(); public float levantamento(); class Conta { public: float getsaldo(); virtual float deposito(); virtual float levantamento();
17 Conversão implícita Em Java conversão implícitas são efectuadas: nos tipos primitivos de char até double; de uma subclasse para uma superclasse. Exemplo: static double somaaaa(double x, double x); int x=3; long z=3; somaaaa(x,z); Ou dump(conta x); ContaAOrdem conta = new ContaAOrdem(100); Dump(conta); Em C++ quando estas conversões não são possíveis são testadas conversões definidas pelo utilizador baseadas em construtores e operadores de conversão. Exemplo: classe SmallInt { private: int value; public: SamllInt(int x) {value = x; operator int() {return value; extern SmallInt xpto(smallint s); void main() { cout<<xpto(34); // converte 34 em SamlInt, e SamlInt em int para enviar para cout
18 Cast Em Java os type cast são verificados em tempo real. ContaOrdem extends Conta { /* code */ Conta conta = new ContaOrdem(100); // Run time checked ContaOrdem contaordem = (ContaOrdem)conta; C++ tem vários tipos de type casts. ContaOrdem: Conta { /* code */ Conta *conta = new ContaOrdem(100); // C style no run time check Conta *contaordem1 = (ContaOrdem)conta; // No run time check ContaOrdem *contaordem2 = static_cast<contaordem>(conta); // Run time checked ContaOrdem *contaordem3 = dynamic_cast<contaordem>(conta);
19 Arrays: incialização de membros Em java os membros dos arrays são por defeito incializados a null. C++ podemos inicializar os arrays com outros objectos. String ar1[] = { phoenix, crane ; String ar2[] = {String(), String(1024), String( string ); String ar3[] = {1024, String(512);
20 Operador delete [] Se aplicarmos o operador delete a um array apenas o primeiro elemento é libertado da memoria. Para arrays é necessário utilizar o operador delete []. No entanto não é necessário especificar o tamanho do array que é armazenado pelo new. Exemplo: String aux = new String[100];.. delete aux; //errado!!! delete [] aux; //correcto!!!
21 Listas de inicialização de membros Java classe contaordem extends conta { contaordem(float v) { super(v); é chamado o constructor do super classe como a primeira linha do corpo do constructor. C++ classe contaordem: conta, aplicação { { contaordem(float v): conta(v), aplicação() { a chamada aos constructores das super classes é feita numa lista antes do corpo do constructor. Notar que podem ser chamados vários constructores.
22 Listas de inicialização de membros Java classe Autor { Autor(String n) {. classe Artigo { Revista revista; Autor autor; Artigo(String autor, ) { autor = new Autor(autor); O atributo autor é inicialmente inicializado com null, e só dentro do constructor é que o seu valor final é definido. C++ classe Autor { Autor(char *n) {. classe Artigo { Revista revista; Autor autor; Artigo(char *n, ): autor(n) { O atributo autor não é um ponteiro e portanto não pode ser inicializado a null. Tem de ser inicializado com na lista de incialização de membros. Tal podia ser resolvido declarando autor como um ponteiro.
23 Directivas de pre-processamento C++ permite directivas de pre-processamento como no C Exemplo1: #include <iostream> #include my_header.h Exemplo2: #ifndef STRING_H #define STRING_H.. #endif Exemplo3: #ifdef win32.. #endif #ifdef sun3.. #endif
24 Declaração e implementação No ficheiro conta.h No ficheiro conta.cpp class Conta{ float valor; float taxa; long numero; void lançajuros(); void deposito(float x); void levantamento(float x); #include conta.h void Conta::lançaJuros(){ valor+=valor*taxa; void Conta::deposito(float x){ valor+=x; void Conta::levantamento(float x){ valor-=x;
25 Sintaxe Uma classe C++ class x: superclasse1, superclasse2 { private: int x; float y; public: rtype método1(args); rtype método2(args); protected: rtype método3(args);
Programação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
5 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... - Diz-se que o nome de um método foi sobrecarregado ( overloaded
Leia maisUniversidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
6 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... Diz-se que o nome de um método foi sobrecarregado ( overloaded
Leia maisLaboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
Leia maisFundamentos de Programação
Fundamentos de Programação ET43I Aula 5 Prof. Daniel Cavalcanti Jeronymo Orientada a Objetos e instâncias. Construtores, destrutores e operador de atribuição de cópia. Objetos, atributos, operações: mensagens
Leia mais# Estrutura de Dados # Aula - Revisão de C/C++ na Prática. Prof. Leinylson Fontinele Pereira
# Estrutura de Dados # Aula - Revisão de C/C++ na Prática Prof. Leinylson Fontinele Pereira Na aula anterior... Ponteiros Funções Introdução 3 O que vamos aprender? Preparação do ambiente de testes Conceitos
Leia maisFundamentos de Programação 2
Fundamentos de Programação 2 ET43G Aula 9 Prof. Daniel Cavalcanti Jeronymo e instâncias. Construtores, destrutores e operador de atribuição de cópia. Objetos, atributos, operações: mensagens e métodos,
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
5 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... - Diz-se que o nome de um método foi sobrecarregado ( overloaded
Leia maisIntrodução ao C++ Ambientes de Desenvolvimento Avançados. 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1
Introdução ao C++ Ambientes de Desenvolvimento Avançados 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1 C++! Extensão ao c! Facilita a representação de tipos de dados abstractos (tipo classe)! Suporte
Leia maisProgramação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos
Programação com Objectos Processamento de Dados I 2. Classes, Atributos e Métodos 1 Classes, Atributos e Métodos Modificadores de acesso (visibilidade) Sobrecarga de métodos (method overloading) Variáveis
Leia maisPCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo
PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 6: Polimorfismo Escola Politécnica da Universidade de São Paulo Conceito de polimorfismo 2 Polimorfismo A palavra vem
Leia maisProgramação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Leia maisUm aluno digitou o código C++ a seguir:
Questão Pai Filha Assunto avaliado: Polimorfismo. Um aluno digitou o código C++ a seguir: #include #include #include #include using namespace std; class Pai Pai()
Leia maisC com introdução a OO
... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro
Leia mais9 Classes Abstractas e Interfaces
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisFísica Computacional 7 Classes
Física Computacional 7 Classes 1. Classes a. Construtores e destruidores fc.trabalhosalunos@gmail.com Física Computacional - MEFT 2013/14 P. Bicudo, P. Martins, M. Cardoso 1 As classes possuem métodos
Leia maisOverloading de Operadores
Overloading de Operadores João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luis Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog2-2006/2007 Overloading de Operadores C++ permite utilizar
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Complexidade dos sistemas de software Estrutura Decomposição Abstração Hierarquia Projeto de sistemas complexos
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java
Leia maisConceito de classe em C++
Introdução à Programação com Classes em C++ João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog2-2006/2007 Conceito de classe em
Leia maisRecapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
Leia maisProgramação Orientada a Objetos CLASSES E OBJETOS
Programação Orientada a Objetos CLASSES E OBJETOS Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Em que Parte do Conteúdo Estamos? Da Unidade III Classes e Objetos, já
Leia maisFísica Computacional 11 Classes
Física Computacional 11 Classes 1. Classes a. Overload de funções b. Parâmetros por omissão c. Overload de operadores d. Exemplos bicudo@tecnico.ulisboa.pt Física Computacional - MEFT 2013/14 P. Bicudo
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Motivação para o uso de C++ para o aprendizado de POO Quando usar C e quando usar C++ C++ versus Java Ambientes
Leia maisPassagem de parâmetros
Programação com Classes em C++ (cont.) João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog2-2006/2007 Passagem de parâmetros Três
Leia maisEstrutura de dados 1. Ponteiros
Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem
Leia maisProgramação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -
Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes
Leia maisO que é um apontador em C (type pointer in C)?
O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 5: Associações LEEC@IST Java 1/32 Associação revisão Uma associação representa uma referência entre objectos. Numa associação são definidos: Identificador termo descritivo
Leia maisProgramação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -
Programação Java - Herança e Polimorfismo - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes relacionadas entre
Leia maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisIntrodução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.
Introdução Atributos, métodos e encapsulamento joao@ecomp.uefs.br Atributos Ipos de acesso: private, public, protected e default Encapsulamento Métodos Construtores Criando objetos Departamento de Ciências
Leia maisComputação e Programação (2007/2008-1º Semestre)
Computação e Programação (2007/2008-1º Semestre) Exame Tipo: 2008-01-14 MEMec - LEAN DURAÇÃO: 3 horas Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha, e número
Leia maisINF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 6 Arrays Arrays de Arrays Object Wrappers Métodos
Leia maisProf. A. G. Silva. 30 de outubro de Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de / 1
INE5603 Introdução à POO Prof. A. G. Silva 30 de outubro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 30 de outubro de 2017 1 / 1 Especialização de classes (I) (Cap. 6) Operações de abstração como
Leia maisOverloading de Operadores
Overloading de Operadores FEUP - MIEEC Programação 2-2008/2009 Overloading de Operadores C++ permite utilizar operadores standard para realizar operações com classes em adição aos tipos fundamentais. Por
Leia maisLinguagem de Programação I
Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Herança simples Composição Combinando composição e herança Polimorfismo e funções virtuais Classes abstratas
Leia maisFísica Computacional 15 Templates
Física Computacional 15 Templates 1. Templates de classes 2. Templates de Funções 3-12-2009 Física Computacional - MEFT 2009/10 P. Bicudo, P. Martins & M. Cardoso 1 Já vimos que através da herança e de
Leia maisFísica Computacional
Física Computacional 1. Funções: a. Inicialização de argumentos. b. Overloading. 2. Revisão de classes 3. Classes parte 2 a. Overloading de operadores. 4. Gestão de projectos com Dev-C++ 5. Gestão de projectos
Leia maisINF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 6 Arrays Arrays de Arrays Object Wrappers Métodos get() e set() Exercício
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Leia maisHerança. Prof. Fernando V. Paulovich 23 de agosto de 2010
Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade
Leia maisUniversidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Leia maisIntrodução à Programação. Encapsulamento e Herança
Introdução à Programação Encapsulamento e Herança Tópicos da Aula Hoje, aprenderemos conceitos mais avançados de Orientação a Objetos Encapsulamento Usando modificadores de acesso em C++ Herança Importância
Leia maisProgramaçã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 Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços
Leia maisFísica Computacional 3 mem. estática e dinâmica
Física Computacional 3 mem. estática e dinâmica 1. Revisão de arrays 2. Revisão de ponteiros e ponteiros para ponteiros 3. Ponteiros para funções 4. Préprocessador: headers 5. Mais à frente: estruturas
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisThe Cyclops Project. Introdução: C++
The Cyclops Project Introdução: C++ Aula 1 Visão Geral Histórico da Linguagem Programa C++: header, source função main() GCC Arquivos objeto, bibliotecas dinâmicas e estáticas #include, #define, namespaces,
Leia mais12. SOBRECARGA DE OPERADOR
Linguagem de Programação C++ 44 12. SOBRECARGA DE OPERADOR Uma forma de C++ alcançar o polimorfismo é por meio do uso de sobrecarga de função. A sobrecarga, simplificadamente, consiste na redefinição de
Leia maisAula 9 Herança. Prof. Jefersson Alex dos Santos
Aula 9 Herança Prof. Jefersson Alex dos Santos Roteiro Introdução Conversão de tipo explícita (Cast) Acesso Protegido A classe Object A classe Class Reflexão Recomendações de Projeto Herança Técnica necessária
Leia maisProgramação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM
Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Herança Visibilidade de atributos e métodos Extensão e sobreposição Uso de super Referências para objetos Polimorfismo Conceitos
Leia maisLinguagem de Programação III
Clique para editar o estilo do subtítulo mestre Linguagem de Programação III Histórico Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Comparação com Java Histórico Desenvolvido por
Leia maisProgramação Orientada por Objectos em C++ (alguns conceitos) Algoritmos e Estruturas de Dados 2009/2010. Três maneiras de passar parâmetros:
Programação Orientada por Objectos em C++ (alguns conceitos) Algoritmos e Estruturas de Dados 2009/2010 Mestrado Integrado em Engenharia Informática e Computação Passagem de parâmetros Três maneiras de
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos
Leia maisLinguagem de Programação Orientada a Objeto Construtores e Sobrecarga
Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Professora Sheila Cáceres Sobrecarga (overloading) Na mesma classe podemos definir vários métodos com o mesmo nome Sobrecarga O tipo
Leia maisProgramação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos
Programação Orientada a Objetos: Herança Alexandre César Muniz de Oliveira Análise e Projeto Orientados a Objetos A análise orientada a objetos Determina o que o sistema deve fazer: Quais os atores envolvidos?
Leia maisDiagrama de Classes. Conceitos Básicos. prof. Robinson Vida Monday, April 20, 15
Diagrama de Classes Conceitos Básicos prof. Robinson Vida (vida@utfpr.edu.br) 1 Função do Diagrama de Classes Permitir a visualização das classes que comporão o sistema com seus respectivos atributos e
Leia maisCentro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros
Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II Ponteiros Profa.: Simone Ceolin Slides (Prof.Tiago Rios da Rocha) Primeiro Semestre 2011 Sumário
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisFundamentos de Programação
Fundamentos de Programação Linguagem C++: arrays - aula I Bruno Emerson Gurgel Gomes 1 1 Instituto Federal de Educação, Ciência e Tecnologia do RN (IFRN) 2012 Bruno Gomes (IFRN) Fundamentos de Programação
Leia maisPassagem de parâmetros
Programação com Classes em C++ (cont.) João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) FEUP - LEEC - AED - 2004/2005 Passagem de parâmetros Três maneiras de passar parâmetros: Por
Leia maisBásico: estrutura de programa, sintaxe Interface com linha de comando
Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências
Leia maisIntrodução. LP OO desenvolvida pela Sun no início da década de 90 com sintaxe semelhente a C\C++. C C++.
Java Parte I mleal@inf.puc-rio.br 1 Introdução LP OO desenvolvida pela Sun no início da década de 90 com sintaxe semelhente a C\C++. C C++. Todos os programas Java são compilados e interpretados. O compilador
Leia maisEx: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)
Herança capacidade de uma classe (subclasse) herdar, adquirir atributos e funcionalidades de outra classe (superclasse), podendo juntar algumas especificidades e/ou alterar outras. Existe uma relação tipo
Leia maisHerança. Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman SISTEMAS DE INFORMAÇÃO 1
Herança Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman 1 1 1 Motivação Você está desenvolvendo um sistema de gerenciamento de pessoal para a USP Precisa fazer: Cadastro de alunos e professores
Leia maisTécnicas de Programação:
Técnicas de Programação: Programação Orientada a Objeto PROF. PROTÁSIO DEE-UFPB Classes e Objetos Classe É uma estrutura de dados que pode conter: Objeto Dados, e Funções. É uma instância de uma classe.
Leia maisPrincípios de Orientação por Objectos
Princípios de Orientação por Objectos 84 Objectivos Ser capaz de: Descrever abstracção Descrever conceitos de orientação por objectos: herança, encapsulamento, polimorfismo Identificar objectos e classes
Leia maisClasse Abstrata e Interface
Orientação a objetos com Java Classe Abstrata e Interface Byron Leite byron.leite@gmail.com 1 Herança Agenda Geral Parte 04 Encapsulamento Pacotes Modificadores de Acesso private, default, protected, public
Leia maisJava First-Tier: Aplicações. Sobrecarga. Orientação a Objetos em Java (II) Sobrecarga de Construtores: Exemplo de Declaração
Java First-Tier: Aplicações Orientação a Objetos em Java (II) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Sobrecarga Um recurso usual em programação OO é o uso de sobrecarga
Leia maisProgramação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador
Leia maisAprendendo. Java 2. Rodrigo Mello Ramon Chiara Renato Villela. Novatec Editora Ltda.
Aprendendo Java 2 Rodrigo Mello Ramon Chiara Renato Villela Novatec Editora Ltda. www.novateceditora.com.br 1 Programação Orientada a Objetos O que é Programação Orientada a Objetos? É um paradigma de
Leia maisIntrodução à Programação. Conceitos Básicos de Orientação a Objetos
Introdução à Programação Conceitos Básicos de Orientação a Objetos Tópicos da Aula Aprenderemos fundamentos do paradigma orientado a objetos, mas antes veremos o que é paradigma Conceito de paradigma Diferentes
Leia maisPonteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia mais//conteúdo do arquivo pacote.h
//conteúdo do arquivo pacote.h #ifndef PACOTE_H #define PACOTE_H #include #include class Pacote friend istream &operator>> (istream &, Pacote &); friend ostream &operator
Leia maisProgramação Estruturada em C++: Extensões ao C
Programação Estruturada em C++: Extensões ao C João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006 e 2006/2007) FEUP - MIEEC Programação 2-2006/2007
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-5 Estruturas de Decisão e Controle. Arrays em Java Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de
Leia maisAlgoritmos II prof. Daniel Oliveira
Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional
Leia maisOrientação a Objetos. Programação em C++
OO Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 12: Const, Static, NameSpace e Nested Prof. Jean Marcelo SIMÃO Métodos Const #ifndef _MINHASTRING_H_ #define _MINHASTRING_H_ class
Leia maisConstrução de Classes
Construção de Classes Objectivos Aprender a conceber e construir classes Estudar encapsulação e a esconder informação não relevante Implementar atributos em instâncias Descrever o papel de Construtores,
Leia maisProgramação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM
Programação OO em Java Profa Andréa Schwertner Charão DLSC/CT/UFSM Sumário Herança Visibilidade de atributos e métodos Extensão e sobreposição Uso de super Referências para objetos Polimorfismo Conceitos
Leia mais02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais?
01. [Sebesta, 2000] O que é um descritor? 02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 03. [Sebesta, 2000] Quais são as questões de projeto relativas aos tipos
Leia maisProgramação. Cap. 12 Gestão de Memória Dinâmica
Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 12 Gestão de Memória Dinâmica Sumário : Utilização de memória Alocação
Leia maisPalavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
Leia maisNamespaces, Classes e Métodos.
. Linguagem de Programação III Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento Acadêmico de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Linguagem
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Leia maisExtensão de classes em Java - noções elementares - PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa
Extensão de classes em Java - noções elementares - PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Conteúdo Noções elementares de extensão de classes Exemplo: classe
Leia maisProgramação em Sistemas Computacionais
Programação em Sistemas Computacionais Linguagem C Introdução, tipos Centro de Cálculo Instituto Superior de Engenharia de Lisboa Jorge Martins (jmartins@isel.pt) baseado no slides de Pedro Pereira Enquadramento
Leia maisAula 27: Estruturas heterogêneas e alocação dinâmica
Aula 27: Estruturas heterogêneas e alocação dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória
Leia maisOrientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento
Orientação a objetos Programação Orientada a Objetos Alexandre César Muniz de Oliveira Linguagens orientadas a procedimentos e linguagens orientadas a objetos Unidade de programação: funções e classes
Leia maisClasses e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II Classes e Objetos Objetos Um conjunto de estados e comportamentos Classes Um modelo para a criação de objetos 1 Pacotes e Java API Pacotes Um conjunto
Leia maisLinguagem de Programação C++
Exercício: Linguagem de Programação C++ Construa o diagrama de classes UML para as classes envolvidas na solução do exercício do slide 253. 267 Sobrecarga Linguagem de Programação C++ Neste exercício vimos
Leia mais13/11/15. Incrementando C: C++ E na especificação de BigInt... Arquitetura da solução exemplo. O arquivo de declarações. Explorando a classe BigInt
Incrementando C: permite: Definir uma classe para números grandes; Manter o código bem parecido com o programa C. O mesmo programa em C (e até mesmo em Java) não são tão convenientes e elegantes. #include
Leia maisFundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN
Fundamentos de Programação Linguagem C++ Introdução, identificadores, tipos de dados Prof. Bruno E. G. Gomes IFRN 1 Linguagem de Programação Constituída por símbolos e por regras para combinar esses símbolos
Leia maisA Relação de Subtipo e Tipos Genéricos
O tipo List representa as listas que declaram ter elementos do tipo Object O tipo que representa as listas que declaram ter elementos de um tipo qualquer é List Este tipo é definido à custa
Leia mais