Overloading e Overriding - parte 1
|
|
- Alícia Mendonça Caires
- 7 Há anos
- Visualizações:
Transcrição
1 UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Overloading e Overriding - parte 1! Overloading e Overriding são técnicas que, a partir de um nome de função ou método definido em uma chamada, seleciona para a execução uma determinada forma dentre diversas possíveis. Apesar dessa definição comum, overloading e overriding são mecanismos distintos. Overloading ocorre em tempo de compilação enquanto overriding ocorre em tempo de execução.! O compilador examina o contexto no qual o overloading está sendo utilizado e determina o corpo de função mais apropriado. Normalmente o aspecto mais crítico para essa tomada de decisão é o tipo de assinatura dos argumentos que estão sendo utilizados na chamada. Como essa seleção do corpo de função é feita em tempo de compilação, ela é estática.! De maneira geral, overloading também é chamado de ad hoc polymorphism e tem pouca relação com a Orientação a Objetos. Ele pode ser encontrado em diversas linguagens de programação não orientada a objetos, como por exemplo a linguagem C. Apesar disso, overloading é uma poderosa forma de polimorfismo.! Neste material, será apresentado o overloading. O overriding será apresentado no próximo material desta disciplina. 1. Overloading! A idéia chave para a compreensão do overloading é: i) o tipo de assinatura da função ou método e ii) escopo de uso.! O Tipo de Assinatura de Função ou Método é a descrição dos tipos de argumentos associados com a função, a ordem dos argumentos e o tipo de retorno da função.! O Escopo de Uso, por sua vez, define a parte do programa que a função ou método será usado ou a sua forma de uso. Duas funções diferentes podem ter variáveis locais de mesmo nome e não haverá confusão alguma nem overlap. Métodos podem ter o mesmo nome sem que ocorra ambiguidade.
2 UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 2! Exemplo:!! class Math!!! int soma( int a) return a;!!! int soma (int a, int b) return (a+b);!!! int soma (int a, int b, int c) return (a+b+c);!! No Overloading, é importante destacar que a definição de qual corpo de método será executado em decorrência de uma chamada, é feita em tempo de compilação baseado no tipo estático dos valores dos argumentos. De maneira diferente do overriding, nenhum mecanismo de definição em tempo de execução é utilizado.! Supondo que existem dois métodos print. Um deles recebe como argumento uma instância de uma classe Pessoa e o outro método, uma instância da classe Aluno. A classe Aluno é filha da classe Pessoa. O Quadro a seguir apresenta o código C++ do exemplo descrito. Qual será o método a ser executado? Quadro 1 - Exemplo de Overloading class Pessoa private : string nome; public : void setnome(string v)nome = v; string getnome()return nome; ; class Aluno : public Pessoa ; void print(pessoa *p) std::cout << "Pessoa: "<< p->getnome() << "\n"; void print(aluno *a) std::cout << "Aluno: " << a->getnome() << "\n" ; int main(int argc, char** argv) Pessoa *alguem = new Aluno(); alguem->setnome("charles Mingus"); print(alguem);! O método que será executado será o primeiro, o definido no Quadro 1 na cor vermelha. A definição de qual função print será utilizada é estática. Ela ocorre em tempo de compilação.
3 UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ) Redefinição! Redefinição ocorre quando uma classe Filha define um método utilizando o mesmo nome de um método da classe Pai mas com uma assinatura diferente. A mudança no tipo de assinatura é o que diferencia a Redefinição do Overloading. Há dois modos de se tratar isso a saber: * Merge Mode : exemplo de linguagem que implementa o merge mode : Java. Para tratar uma chamada, todas as possíveis alternativas são examinadas e a alternativa mais próxima é a selecionada. * Hierarchical Mode : exemplo de linguagem que implementa o hierarquical mode. Na linguagem C++ cada escopo é mantido em uma lista separada. Para casar uma chamada de método com o método propriamente dito, cada escopo de lista é examinado de maneira sequencial. Ao localizar o nome do método, passa-se ao segundo passo que é analisar os argumentos.! Por exemplo, na linguagem Java, é permitido o seguinte código ilustrado no Quadro 2. Quadro 2 class Pai public void print(string nome)system.out.println("pai: " + nome); class Filho extends Pai public void print(string nome, int id) System.out.println("Filho: " + nome + " idade=" + id); public class Main public static void main(string[] args) Filho junior = new Filho(); junior.print("guerry Mulligan");! O método da classe Pai será selecionado e executado pois ele é quem melhor casa com a chamada do método.! O mesmo exemplo, se representado na linguagem C++ fornecerá um erro de compilação. O Quadro 3 apresenta o código em C++ desse exemplo. O Erro de Compilação ocorre por que o escopo correspondente à classe filha é examinado por
4 UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 4 primeiro antes do escopo da classe pai. Um método com o mesmo nome é encontrado no escopo da classe filha, o método print. Ao analisar os argumentos, o compilador identifica que os argumentos do método localizado na classe filha são diferentes dos argumentos da chamada do método da função principal (main). Isso é interpretado como um erro, pois o compilador C++ realiza uma análize hierárquica. De maneira resumida, o compilador analisa o código, localiza o método print na classe Filho e verifica o casamento dos tipos de argumentos da chamada de função e da função localizada. Os tipos de argumento não casando é interpretado como erro de compilação.! Quadro 3 - O código a seguir apresentará um erro de compilação class Pai public: void print(string nome) cout << "Pai: " << nome; ; class Filho : public Pai public: void print(string nome, int id) cout << "Filho: " << nome << " idade=" << id; ; int main(int argc, char** argv) Filho *junior = new Filho(); junior->print("guerry Mulligan");! Para se resolver essa particularidade do Modo Hierarquico (Hierarchical Mode), o programador deverá redefinir o método da classe pai na classe filha. O Quadro 4 ilustra essa modificação com o código na cor vermelha e fonte em itálico.
5 UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 5 Quadro 4 class Pai public: void print(string nome) cout << "Pai: " << nome; ; class Filho : public Pai public: void print(string nome, int id) cout << "Filho: " << nome << " idade=" << id; ; void print(string nome)pai::print(nome); int main(int argc, char** argv) Filho *junior = new Filho(); junior->print("guerry Mulligan"); 1.2 Polyadicity! Uma função polyadic é uma que recebe uma quantidade variável de argumentos. Por exemplo, na linguagem C, a função printf. Essa função pode ser chamada de acordo, mas não limitada aos seguintes exemplos: printf( Ivo viu a uva ); printf( O resultado da divisao entre %i e %i eh %f, 4,5,(4/5));!! Escrever uma chamada para uma função polyadic é fácil. A dificuldade reside em escrever o corpo dessa função. Por exemplo, como rotular uma quantidade indefinida de argumentos?! Na linguagem C/C++, por exemplo, a indicação que uma função receberá uma quantidade indefinida de argumentos é feita por... ( três pontos ). C/C++ utiliza um conceito denominado de ellipsis para implementar isso. Nesse conceito, deve-se utilizar um tipo de dado chamado (macro) va_list para uma lista de argumentos variáveis, e um trio de métodos (macros) va_start, va_arg e va_end. O endereço fornece uma descrição a respeito de como utilizar o conceito ellipsis.
6 UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 6! O Quadro 5, a seguir, exemplifica o conceito de ellipsis. Nesse exempplo, uma função somar deve realizar a soma de uma quantidade indefinida de números inteiros. No Quadro 5, a função somar recebe como primeiro parâmetro a quantidade de elementos que serão enviados, em seguida,... para indicar que uma seqüência de valores serão passados.! Uma variável listpointer é definida do tipo var_list. A função va_start (listpointer, quantidadedeelementos) inicializa um ponteiro interno para os dados enviados. Cada elemento da lista enviada é acessado por meio da função va_arg. Ao final do processo, fecha-se o ponteiro va_end.! #include <stdarg.h> Quadro 5 int somar(int quantidadedeelementos,...) int arg, saida = 0; va_list listpointer; va_start( listpointer, quantidadedeelementos ); int i = 0; for( int i = 0 ; i < quantidadedeelementos; i++ ) arg = va_arg( listpointer, int ); printf( " O %dth o.argumento eh %d\n", i, arg ); saida += arg; getchar(); va_end(listpointer); printf("a soma resulta %i \n", saida); return saida; int main(int argc, char** argv) somar(10, 2, 4, 5, 7, 8, 12, -2, 6, 13, 1);! O Quadro 6, por sua vez, exemplifica a passagem de instâncias de classes como parâmetros. Similar ao Quadro 5, a quantidade de elementos não é definida a priore.
7 UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 7 #include <stdarg.h> Quadro 6 class Pessoa protected : string nome; public: void print() cout << "Pessoa: " << nome; Pessoa(string v)nome = v; Pessoa()nome="desconhecido"; ; void printfamilia(int n,...) va_list listpointer; va_start( listpointer, n ); int i = 0; for( int i = 0 ; i < n; i++ ) Pessoa *arg = va_arg( listpointer, Pessoa *); printf( " getchar(); va_end(listpointer); O %dth o.argumento eh ", (i+1) ); arg->print(); int main(int argc, char** argv) Pessoa *p1 = new Pessoa("Charlie Parquer"); Pessoa *p2 = new Pessoa("Michael Brecker"); Pessoa *p3 = new Pessoa("Coleman Hawkins"); printfamilia(3, p1, p2, p3); delete p1; delete p2; delete p3; 1.3 Parâmetros Opcionais!! Outra forma de definição de variação de parâmetros, é a definição de parâmetros que são opcionais. Nesse caso, a definição da função deverá explicitar um valor padrão para os parâmetros faltantes. Os parâmetros opcionais precisam aparecer por último na definição da função. O Quadro 7 apresenta um pequeno exemplo do conceito de Parâmetros Opcionais.
8 UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 8 #include <climits> #include <stdio.h> #define minimo INT_MIN Quadro 7 int maior( int x, int y, int z = minimo) if ( z!= minimo) printf("valores recebido: %i, %i, %i \n", x, y, z); else printf("valores recebido: %i, %i \n", x, y); int saida = z; printf("saida %i \n", saida ); if (y > saida) saida = y; printf("saida = %i \n", saida ); if (x > saida) saida = x; printf("saida = %i \n", saida ); return saida; int main(int argc, char** argv) int a = 4; int b = 6; int c = 9; int maxv = maior(a,b,c); printf("o maior valor entre %i, %i, %i eh %i\n", a,b,c, maxv); printf("\n\n **** Proxima Comparacao:\n"); int maxv2 = maior(a,b); printf("o maior valor entre %i, %i eh %i \n", a,b, maxv2); 1.4 Polyadicity na Linguagem Java! O conceito de polyadicity é implementado na linguagem Java de maneira similar à linguagem C++ 1. No Quadro 8, o mesmo exemplo do Quadro 5 é adaptado para a linguagem Java. 1 Um especial agradecimento ao aluno Guilherme Riesemberg pelo exemplo de aplicação na linguagem Java em 10 de abril de 2013.
9 UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 9 public class Main Quadro 8 public static int somar(int... numeros) int saida = 0; for (int j : numeros) saida += j; return saida; public static void main(string[] args) System.out.println(somar(3,4,5,6,7,8,9)); 2. Exercício! Outro aspecto importante de programação é o conceito de multimétodos ou multimethods ou multiple dispatch. Como exercício voce deverá: Investigar o que é esse conceito e exemplificá-lo na linguagem C++ É possível implementar o conceito de multi-mehod na linguagem de programação Java? Se sim, como?
FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara
Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos
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 maisSub-rotinas em C. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto
Sub-rotinas em C Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Agenda Sub-rotinas: Função e Procedimentos A função main Variáveis globais e locais Escopo de variáveis Passagem
Leia maisProgramação Java (nível intermediário) 4. Polimorfismo
Programação Java (nível intermediário) 4 Polimorfismo Introdução Uma linguagem orientada a objetos nos permite definir novos tipos para variáveis Nós definimos um novo tipo através de uma classe Este tipo
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 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 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização
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 3 Ponteiros e Variáveis de Objeto Construtores
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 maisUniversidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Material preparado pela profa Silvana Maria Affonso de Lara
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação FUNÇÕES EM C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA Definição
Leia maisIntrodução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 07 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação ARGUMENTOS POR LINHA DE COMANDO 2 Argumento por linha de comando Na
Leia maisAULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos
Câmpus Santa Helena Curso: Ciência da Computação Disciplina: Programação Orientada a Objetos AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Tema
Leia maisProgramação Estruturada
Programação Estruturada Ponteiros Parte 1 Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Ponteiros Ponteiro Ponteiros
Leia maisFunções. definição, declaração e chamada
Funções definição, declaração e chamada Funções Em C, um programa é uma coleção de FUNÇÕES. Uma função é um bloco de código que recebe um nome e que tem possivelmente PARÂMETROS. A partir do nome, o bloco
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 maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia maisPrimeira Prova de Linguagens de Programação - DCC024B -
Primeira Prova de Linguagens de Programação - DCC024B - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem
Leia maisQuando um Auto-Relacionamento não é mais um Auto-Relacionamento
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Quando um Auto-Relacionamento não é mais um Auto-Relacionamento! 1. Introdução!! Em algumas situações, durante o processo de modelagem,
Leia maisLista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }
Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos
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 maisTipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas
Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia maisSSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos
Funções SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves ICMC/USP São Carlos Slides baseados no material gentilmente cedido pela Profa Simone Senger Souza 2 MODULARIZAÇÃO Um
Leia maisEstruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?
Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o
Leia maisEstruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011
Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia maisALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal
ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito
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 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 maisFunções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná
em C Linguagem de Programação Estruturada I Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Sumário Funções: Conceitos; Forma Geral das funções; Regras de Escopo; Argumentos
Leia maisFundamentos de Programação
Fundamentos de Programação CP41F Aula 13 Prof. Daniel Cavalcanti Jeronymo Declaração de funções. Funções sem e com retorno. Parâmetros de funções. Ponteiros para funções. Universidade Tecnológica Federal
Leia maisLinguagem de Programação C
ICMC USP Linguagem de Programação C Aula: Funções em C Prof Alneu de Andrade Lopes MODULARIZAÇÃO Um problema complexo é melhor abordado se for dividido primeiramente em vários subproblemas MODULARIZAÇÃO
Leia maisAtributos e Métodos Estáticos
Atributos e Métodos Estáticos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Atributos Estáticos Atributos
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 maisClasses, Métodos e Propriedades
Ambiente de Programação Visual Classes, Métodos e Propriedades Prof. Mauro Lopes 1-31 22 Objetivos Nesta aula iremos dar continuidade aos elementos de programação da Linguagem C#. Iremos apresentar de
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisUNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETRÔNICA (DAELN) 2 a Prova
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETRÔNICA (DAELN) Curso: Engenharia Eletrônica, Disciplina: Fundamentos de Programação II (IF62C), Turma: S Professores: Hermes Del
Leia maisEstrutura de Dados. TAD (Tipo Abstrato de Dados) Criando a primeira estrutura
Estrutura de Dados TAD (Tipo Abstrato de Dados) Criando a primeira estrutura TAD Um tipo de dado abstrato pode ser definido como um conjunto de valores e uma coleção de operações que atual sobre esses
Leia maisInstituto Federal de Educação, Ciência e Tecnologia do Ceará IFCE Programa Educacional Brasileiro de Desenvolvimento para ios BEPiD PROVA OBJETIVA
Instituto Federal de Educação, Ciência e Tecnologia do Ceará IFCE Programa Educacional Brasileiro de Desenvolvimento para ios BEPiD PROVA OBJETIVA 01) A negação de eu não gosto de acordar cedo e eu sou
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 mais#include <stdio.h> void Swap (int *a,int *b) { int temp; temp=*a; *a=*b; *b=temp; } main () {
422 #include void Swap (int *a,int *b) int temp; temp=*a; *a=*b; *b=temp; main () int num1,num2; printf("\nentre com o primeiro valor: "); scanf ("%d",&num1); printf("\nentre com o segundo valor:
Leia maisClassificação das linguagens de programação
Introdução Linguagem É um meio de comunicação entre pessoas. Faculdade de expressão audível e articulada do homem. Conjunto de sinais falados, escritos ou gesticulados de que se serve o homem para demonstrar
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 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 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 maisAnálise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
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 maisLÓGICA DE PROGRAMAÇÃO INTRODUÇÃO AO JAVA. Professor Carlos Muniz
Instalação do Compilador/Interpretador ( JDK ) As versões do JDK estão disponíveis livremente na Internet no site: http://java.sun.com O JDK, apresenta variáveis de ambiente, utilizadas para indicar ao
Leia maisLista de Linguagens de Programação 19
Lista de Linguagens de Programação 19 Nome: Matrícula: 1. A passagem de parâmetros por expansão de macros é um mecanismo bastante utilizado em C. Um exemplo é dado abaixo: #define SUM(X, Y) (X) + (Y) int
Leia maisProgramação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem
Leia maisMódulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)
Módulo 5 Programação Orientada a Objetos Programação Orientada a Objetos I Java (Rone Ilídio) Programação Orientada a Objetos Registro em Pascal: Type Cliente = Record Nome: String; Telefone: String; Idade:
Leia maisProgramação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno
Programação Orientada a Objetos Aula 1.9 this e static Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de
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 maisFundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus
Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis
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 maisEncapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos
Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;
Leia maisAtribuições: Valores, Ponteiros e Referências
Atribuições: Valores, Ponteiros e Referências Estruturas de Dados Prof. Vilson Heck Junior Sobre Variáveis Aprendemos, em introdução à programação, que possuem 3 partes mais importantes: Nome; Tipo de
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Funções
Algoritmos e Estruturas de Dados I (DCC/003) Funções Funções Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada, e definem um valor de saída
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 maisESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza
ESTRUTURAS CONDICIONAIS Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais
Leia maisMaterial sobre Funções AEDS 1
Material sobre Funções AEDS 1 1 Funções - revisão Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada e definem um valor de saída 2 Funções -
Leia maisLINGUAGEM DE PROGRAMAÇÃO C++ CLASSES E OBJETOS
LINGUAGEM DE PROGRAMAÇÃO C++ E OBJETOS Roberto S. Bigonha UFMG 4 de abril de 2012 ESTRUTURAS ESTRUTURAS ESTRUTURAS Cada estrutura (struct) cria um novo tipo Dois tipos estruturas de nomes distintos são
Leia maisAlgoritmos e Estruturas de Dados I IEC012. Procedimentos e Funções. Prof. César Melo Todos os créditos para o professor Leandro Galvão
Algoritmos e Estruturas de Dados I IEC012 Procedimentos e Funções Prof. César Melo Todos os créditos para o professor Leandro Galvão Procedimentos e Funções Procedimentos são s estruturas que agrupam um
Leia mais4 Conceito de Herança
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisUNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS
Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista
Leia maisTrabalho Linguagem e Programação de Compiladores
Trabalho Linguagem e Programação de Compiladores Responda as questões. Os exercícios deverão ser desenvolvidos utilizando as estruturas apresentadas em aula e adequadas para cada problema. Forma de entrega:
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 C (continuação)
Linguagem C (continuação) Funções, arrays e ponteiros Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Ponteiros Copyright 2014 IFRN Agenda Memória Ponteiros Aritmética de ponteiros Arrays/strings Parâmetros de função
Leia maisSub-rotinas David Déharbe
Sub-rotinas David Déharbe 1 1 Objetivos da aula Os conceitos de sub-rotina, funções e procedimentos; Como usar sub-rotinas em C: parâmetros de sub-rotinas: parâmetros formais e parâmetros efetivos. passagem
Leia maisListas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node {
Listas (cont.) K&R: Capitulo 6 Lista Simplesmente Ligada Conjunto de nós head NULL Cada nó contém Informação útil Ponteiro para o próimo nó typedef struct node Item item; struct node *net; *link; Item
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 maisApontadores/ponteiros
Apontadores/ponteiros 1 Apontadores/ponteiros 1. Um ponteiro pode ser manipulado como sendo um vetor. #include int v[5] = { 10, 20, 30, 40, 50 ; int p, i; p = v; for (i = 1; i < 5; i++) printf
Leia maisPLANO DE UNIDADE DIDÁTICA- PUD
Professor: Marcus Vinícius Midena Ramos Coordenação: Ricardo Argenton Ramos Data: 03/08/2010 Página: 1 de 5 EMENTA: Conceitos básicos de linguagens. Histórico, classificação e principais aplicações de
Leia maisENGENHARIA DE PRODUÇÃO PROGRAMAÇÃO Algoritmos Conceitos Iniciais. Prof. Luiz Fernando Laguardia Campos FMS
ENGENHARIA DE PRODUÇÃO PROGRAMAÇÃO Algoritmos Conceitos Iniciais Prof. Luiz Fernando Laguardia Campos FMS lflcampos@machadosobrinho.com.br Compilação/Interpretação Um compilador ao receber como entrada
Leia maisAula 6 POO 1 Construtores. Profa. Elaine Faria UFU
Aula 6 POO 1 Construtores Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações
Leia maisEstruturas de controle Parte 1
1. Objetivos Estruturas de controle Parte 1 Nas lições anteriores, foram mostrados programas seqüenciais, onde as instruções foram executadas uma após a outra de forma fixa. Nesta lição, discutiremos estruturas
Leia maisAlgoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon
Algoritmos e Programação Linguagem C Procedimentos e Funções Eliane Pozzebon Procedimentos e Funções Procedimentos são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento
Leia maisTratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio)
Tratamento de Exceção Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de exceção Exceção é uma contração de Evento de Exceção Evento de exceção impede a execução normal de um programa Quando
Leia maisTE091 Programação Orientada a Objetos Engenharia Elétrica
TE091 Programação Orientada a Objetos Engenharia Elétrica Revisão Rápida de Programação em C Prof. Carlos Marcelo Pedroso 2015 Revisão Linguagem C Características principais Modularidade: uso de procedimentos
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 maisRelacionamentos entre objetos
Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores t e sobrecarga Variáveis de classe e de instância Reinaldo Gomes reinaldo@cefet-al.br Objetos
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 maisPolimorfismo. O que é polimorfismo?
O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus
Leia maisESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza
ESTRUTURAS CONDICIONAIS Introdução à Ciência da ComputaçãoI Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais Estrutura
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 maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Motivação para o uso da linguagem C Entendendo Estrutura de Dados Revisão da Linguagem C Tipos primitivos Vetores
Leia maisC O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O
C O N S T R U T O R E S E S O B R E C A R G A P R O F. M E. H É L I O E S P E R I D I Ã O NOME DE CLASSES Toda classe deve começar com uma letra maiúscula. Não pode conter letras não ASCII (caracteres
Leia maisListas Ligadas (Encadeadas) Listas Simplesmente Encadeadas
Listas Ligadas (Encadeadas) Matrizes são estruturas de dados muito úteis fornecidas nas linguagens de programação. No entanto, elas têm pelo menos duas limitações: 1- Seu tamanho tem que ser conhecido
Leia mais1 Introdução e Conceitos básicos
1 Introdução e Conceitos básicos Aula 02 Sumário Capítulo 1 Introdução e Conceitos básicos 1.1 Modelos 1.2 Tipos primitivos de dados 1.3 Tipo Abstrato de dados 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2
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 maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisAula 18: Funções em C
Aula 18: Funções em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Funções em C Programação de Computadores IV 1 / 38 Agenda 1 Revisão e Contexto
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 maisVariáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
Leia maisIntrodução a Programação. Ponteiros e Passagem de Argumentos por Referência
Introdução a Programação Ponteiros e Passagem de Argumentos por Referência Tópicos da Aula Hoje aprenderemos a manipular endereços de memória ou ponteiros Variáveis e Endereços Conceito de Ponteiro Operadores
Leia mais#include <stdio.h> main() { int i; // Cabeçalho for (i = 1; i <=20; i++) putchar( * ); putchar( \n ); puts( Numeros entre 1 e 5 );
O todo é igual à soma das partes. Euclides. FUNÇÕES E PROCEDIMENTOS Embora sem saber, ao longo dos outros laboratórios, já foram utilizadas funções tais como printf, scanf, getchar, putchar, dentre outras
Leia maisLinguagem e Técnicas de Programação
Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,
Leia maisSabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.
JAVA ENCAPSULAMENTO Na linguagem de programação Java, a classe é o alicerce para o encapsulamento, o qual é definido como uma técnica que faz com que os atributos da classe permaneçam ocultos, pois desta
Leia mais