Overloading e Overriding - parte 1
|
|
|
- Alícia Mendonça Caires
- 9 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
Sub-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
Programaçã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
Laboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
Universidade 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
AULA 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
Recapitulando. 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
Lista 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
Ponteiros 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
Tipos 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
SSC300- 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
ALGORITMOS 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
PCS3111. 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
Linguagem 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
Funçõ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
Linguagem 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
Atributos 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 [email protected] Fonte: Material da Profª Karina Oliveira Atributos Estáticos Atributos
Programaçã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(){
Classes, 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
Programaçã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
Instituto 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
Programaçã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
#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:
Classificaçã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
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 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
Programaçã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
Aná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
Lista 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
Programaçã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
Mó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:
Programaçã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 [email protected] Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de
Classes 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
Fundamentos 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
9 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
Encapsulamento 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 [email protected] Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;
Linguagem 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
ESTRUTURAS 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
4 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
UNIVERSIDADE 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
Trabalho 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:
Tipos, 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
Tipos, 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
Linguagem 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
PLANO 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
Aula 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
Estruturas 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
Algoritmos 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
Relacionamentos 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 [email protected] Objetos
Linguagem 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
Polimorfismo. 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
ESTRUTURAS 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
Paradigmas 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
Listas 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
1 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
Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -
Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes [email protected] 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes
Programaçã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
Variá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/
#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
Linguagem 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,
Sabemos 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
