Uma função pode ser declarada como friend de mais do que uma classe.

Tamanho: px
Começar a partir da página:

Download "Uma função pode ser declarada como friend de mais do que uma classe."

Transcrição

1 FUNÇÕES FRIEND Em C++ temos a possibilidade de quebrar o encapsulamento que a Programação Orientada para Objecto cria e de que tanto se orgulha. Essa facilidade traduz-se por funções e classes friend. Funções friend de uma classe são funções ( normais ou funções membros de outras classes) que têm acesso aos membros privados ou protegidos dessa classe. Uma função pode ser declarada como friend de mais do que uma classe. As funções friend devem ser indicadas na classe da qual a função é friend e essa indicação pode aparecer quer na parte pública quer na parte privada da classe. As funções friend são portanto declaradas na classe que lhe permite o acesso. A declaração de uma função friend é semelhante à declaração de uma função normal (não membro), sendo precedida pela palavra reservada friend friend <protótipo da função>; As definições e chamadas são também iguais às definições e chamadas das funções normais. No caso de funções membro, a classe de objectos cujos componentes vão ser acedidos, esses objectos terão que ser passados como um argumento à função friend. A palavra friend não aparece na definição da função, só na declaração da classe de que a função é friend. EXEMPLO Considere-se agora o exemplo, em que declaramos a função função_amiga como função friend da classe Circulo. Neste caso, a função_amiga tem como parâmetro, um objecto Circulo e a função acede ao raio desse objecto, que é um dado privado da classe Circulo. #include <stdio.h> class Circulo ISEP 1

2 private: float raio; int fcentrox; int fcentroy; friend void esfera_amiga(circulo circ); Circulo(float raio1,int centrox1,int centroy1) raio=raio1; fcentrox=centrox1; fcentroy=centroy1; float circunferencia() return(2*3.1416*raio);} float area() return(4*3.1416*raio*raio);} void display() printf("raio=%f\n",raio); printf("coordenads do centro x=%d\n",fcentrox); printf(" y=%d\n",fcentroy); void esfera_amiga(circulo circ); main() } Circulo circ(5,3,3); circ.display(); printf("circunferˆncia=%f\n",circ.circunferencia()); printf(" rea=%f\n",circ.area()); esfera_amiga(circ); void esfera_amiga(circulo c) printf("sou amiga tambem posso escrever o raio %f",c.raio);. ISEP 2

3 CLASSES FRIEND Podemos também ter classes friend, neste caso, o especificar uma classe como friend é equivalente a especificar todas as funções membros da classe como friend. Se uma classe A é friend de uma classe B, as funções membro de A (métodos), são funções friend da classe B, logo todos os métodos de A têm acesso aos membros protegidos e privados de B. Neste caso, na declaração da classe B deve aparecer friend class A; A declaração de uma classe friend é a declaração forward da classe precedida da palavra friend friend class < identificador da classe>; Tudo o que se disse sobre funções friend aplica-se também às classes. Devemos ter ainda em conta o seguinte: - friend não é mútuo, se a classe A é friend de B o inverso não se verifica, isto é, B não é friend de A. - friend não é herdável, logo se A é friend de B, uma classe derivada de A não o é. - friend não é transitivo, se a classe A é friend da B e se B é friend de C, A não é friend de C. Exemplo Vamos agora declarar, a função h, como friend de 2 classes, X e Y. Declaramos também, a função g, a função f (membro da classe Y) e a classe Z como friend da classe X. class X ; // declaração forward class Y float indice; ISEP 3

4 int f(x a); friend float h (X a,yb); class X int den,num; friend float g (X a); friend int Y:: f (X a); friend float h (X a, Y b); friend class Z; class Z // os membros desta classe podem aceder aos componentes privados da classe X, uma vez que é friend int p (X a) int d=a.num; int q (X a) int c=a.den; int Y :: f (X a) indice=a.num / a.den; float g (X a) int b=a.num; float h (X a, Yb) b.indice=a.num/a.den; ISEP 4

5 INCONVENIENTES E VANTAGENS DAS FUNÇÕES FRIEND Como se verifica, estas funções ao acederem aos membros privados das classes, vão abrir buracos no encapsulamento que a classe preserva, portanto sob o ponto de vista da consistência não é aconselhado a sua utilização. Isto vai permitir, por exemplo, retirar um elemento do meio de uma stack e colocar outro a substitui-lo, operação essa embora viável através de uma função que seja friend da classe stack, não é consistente com a semântica de stack. Claro que o facto de aceder a dados protegidos e privados de múltiplas classes vai evitar o overhead associado ao chamar de funções de interface. Por outro lado, se não fossem as funções friend, a única maneira de aceder a membros privado de uma classe seria torná-los públicos. Ao fazer isso, os detalhes internos da classe seriam acessiveis aos utilizadores que efectivamente não precisam de os conhecer. ISEP 5

Classes e Encapsulamento

Classes e Encapsulamento Classes e Encapsulamento Marcio Santi POO e C++ Tipo Abstrato de Dados (TAD) TAD atributos dados que o representam interface operações associadas como é manipulado 1 Exemplo: Editor Gráfico (classe círculo)

Leia mais

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

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores Prof.: Bruno E. G. Gomes IFRN 1 Introdução Na aula de hoje: Declaração de classes Métodos Construtores Exercícios de criação

Leia mais

Introdução a linguagem C. Introdução à Programação 06/07

Introdução a linguagem C. Introdução à Programação 06/07 Introdução a linguagem C Introdução à Programação 06/07 A LINGUAGEM DE PROGRAMAÇÃO C A linguagem C foi criada, na década de setenta, por Dennis M. Ritchie; Apesar de se considerar uma linguagem de alto

Leia mais

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Classes o Objetos. Classes, objetos, métodos e variáveis de instância Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento

Leia mais

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

Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Visibilidade de membros Membro da classe derivada pode usar os membros públicos ( public ) e protegidos ( protected ) da sua classe base (como

Leia mais

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 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

DEFINIÇÃO DE CLASSES EM C++

DEFINIÇÃO DE CLASSES EM C++ DEFINIÇÃO DE CLASSES EM C++ Linguagem Compilada Orientada a Objectos, considerada como o C da próxima geração, criada em meados dos anos 80. Não nos debruçaremos sobre o paradigma da Programação Orientada

Leia mais

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

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

Leia mais

Técnicas de Programação:

Té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 mais

Genéricos. Profa. Thienne Johnson EACH/USP

Genéricos. Profa. Thienne Johnson EACH/USP Genéricos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 18 Material complementar http://wps.prenhall.com/br_deitel_comoprogra_6/ Todas as classes em Java herdam,

Leia mais

Programação: Vetores

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

Leia mais

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

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos) Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private

Leia mais

02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre maiúsculas e minúsculas?

02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre maiúsculas e minúsculas? 01. [Sebesta, 2000] Quais são as questões de projeto referentes a nomes? Nomes, Vinculações, Verificação de Tipos e Escopos 02. [Sebesta, 2000] Qual é o perigo potencial dos nomes que fazem distinção entre

Leia mais

Classificação das linguagens de programação

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

Leia mais

Laboratório 4 Correcção de erros sintácticos e tipos de dados primitivos

Laboratório 4 Correcção de erros sintácticos e tipos de dados primitivos Instituto Politécnico de Setúbal Escola Superior de Tecnologia Departamento de Sistemas e Informática Laboratório 4 Correcção de erros sintácticos e tipos de dados primitivos Disciplina de Introdução à

Leia mais

9 Classes Abstractas e Interfaces

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

Leia mais

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

Programaçã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 mais

Linguagem C Ficheiros Compilação Separada

Linguagem C Ficheiros Compilação Separada Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Modificadores de Acesso: public e private Prof. Tulio Alberton Ribeiro Instituto Federal de Santa Catarina IFSC campus São José tulio.alberton@ifsc.edu.br 31 de julho de

Leia mais

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 Instruções de Entrada Entrada/Leitura de dados Introduzir um valor inteiro/real para X 2 Instruções de Entrada Entrada/Leitura de dados Introduzir um valor inteiro/real

Leia mais

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

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias

Leia mais

Computação 2. Aula 5. Profª. Fabiany defines vetor, strings e matriz por parâmetros de função

Computação 2. Aula 5. Profª. Fabiany defines vetor, strings e matriz por parâmetros de função Computação 2 Aula 5 defines vetor, strings e matriz por parâmetros de função Profª. Fabiany fabianyl@utfpr.com.br #define A diretiva #define define um identificador e uma string que o substituirá toda

Leia mais

Classes e Objetos. Prof. Leonardo Barreto Campos 1

Classes e Objetos. Prof. Leonardo Barreto Campos 1 Classes e Objetos Prof. Leonardo Barreto Campos 1 Sumário Introdução; Escopo de Classe e Acesso a Membros de Classes; Exercício; Os Métodos get e set; Separação de Interface e Implementação; Construtores

Leia mais

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 2 Repetição 1 Enquanto 'C' é verdadeira Fazer? 3 Repetição 1 Enquanto 'C' é verdadeira Fazer? while (C)?; 4 Enunciado: Construa um algoritmo para mostrar os 100

Leia mais

Orientação a Objetos e Java

Orientação a Objetos e Java Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características

Leia mais

Funções - Variáveis globais

Funções - Variáveis globais - Variáveis globais Variáveis globais são declaradas fora de todas as funções do programa. Elas são conhecidas e podem ser alteradas por todas as funções do programa. Quando uma função tem uma variável

Leia mais

Uma Questão de Estilo Elementos de Estilo Java

Uma Questão de Estilo Elementos de Estilo Java Uma Questão de Estilo Elementos de Estilo Java Vasco. T. Vasconcelos 9 Setembro 2004 Escrevemos programas para serem lidos por humanos. Pelos outros, mas também por nós, daqui a uma semana. As linguagens

Leia mais

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza Universidade Federal do Espírito Santo Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza Variáveis Tipos de Dados Básicos Formação dos identificadores o nome deve começar com uma letra

Leia mais

MESMO QUE ESTAS VARIÁVEIS TENHAM NOME IDÊNTICOS

MESMO QUE ESTAS VARIÁVEIS TENHAM NOME IDÊNTICOS Funções As funções são blocos de instruções que facilitam o entendimento do código. Porque usar funções? Para permitir o reaproveitamento de código já construído (por você ou por outros programadores);

Leia mais

Funções em Linguagem C Parte II

Funções em Linguagem C Parte II Slides inicialmente preparados pelo Prof. Dr. Claudio Fabiano Motta Toledo Funções em Linguagem C Parte II Profa. Dra. Elisa Yumi Nakagawa 1. Semestre 2017 Sumário Introdução a Ponteiros Escopo de Variáveis

Leia mais

Assim, a POO disponibiliza um mecanismo de herança que vai facilitar a reutilização do código através da construção de uma hierarquia de classes.

Assim, a POO disponibiliza um mecanismo de herança que vai facilitar a reutilização do código através da construção de uma hierarquia de classes. HERANÇA É muito útil o encapsulamento de dados fornecido pela classe, mas ainda o será mais se o programador puder adaptar a classe para outra aplicação, acrescentando, modificando, subtraindo métodos

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Linguagem C. Programação Estruturada. Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo

Linguagem C. Programação Estruturada. Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo Programação Estruturada Linguagem C Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Introdução Por que usar funções? Escopo de Variáveis Declarando uma

Leia mais

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

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural

Leia mais

Introdução à Orientação a Objetos em Java

Introdução à Orientação a Objetos em Java Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB Centro de Informática, UFPE Programação estruturada

Leia mais

Conceito de procedimentos e funções

Conceito de procedimentos e funções Tópicos Introdução Como funcionam as funções Declaração de funções Exemplo de funções 1 Introdução As funções, são unidades de código desenhadas para cumprir uma determinada tarefa. Até agora, já utilizamos

Leia mais

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio)

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio) Módulo 1 Introdução AEDS I C++ (Rone Ilídio) Introdução Linguagens de Programação Fonte Compilador Executável SO I Hardware C++ - Características Evolução do C, ou seja, possui a mesma sintaxe É uma linguagem

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos

Leia mais

12 - Dados Estruturados Vetores, Matrizes e Strings

12 - Dados Estruturados Vetores, Matrizes e Strings 12 - Dados Estruturados Vetores, Matrizes e Strings Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante Vetores,

Leia mais

PROGRAMAÇÃO JAVA. Parte 3

PROGRAMAÇÃO JAVA. Parte 3 PROGRAMAÇÃO JAVA Parte 3 O PRIMEIRO PROGRAMA O Java executa uma instrução a seguir a outra, pela ordem em que estão escritas. Essa sequência poderá ser contrariada de forma especial: Alternativas: Ciclos

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Polimorfismo Mais exemplos

Leia mais

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

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 joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;

Leia mais

Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012

Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012 Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012 1. Implemente os programas cujos fluxogramas foram definidos na aula de problemas da semana passada: Exercício 7- Calculo

Leia mais

Linguagem de Programação I. Aula 10 Funções

Linguagem de Programação I. Aula 10 Funções Linguagem de Programação I Aula 10 Funções Da Aula Anterior Tipos de dados básicos e operadores em C Declaração de variáveis e modificadores de tipo Estruturas de Controle Arrays unidimensionais Geração

Leia mais

Tipos Abstratos de Dados. Estrutura de Dados

Tipos Abstratos de Dados. Estrutura de Dados Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:

Leia mais

Exercícios... Capítulo 15. if62c. prof. Robinson Vida Noronha. Monday, March 23, 15

Exercícios... Capítulo 15. if62c. prof. Robinson Vida Noronha. Monday, March 23, 15 Exercícios... Capítulo 15 if62c prof. Robinson Vida Noronha 1 15.1.a) Em C++, é possível ter várias funções com o mesmo nome, que operam sobre diferentes tipos ou números de argumentos. Isso é chamado

Leia mais

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

Java para Desktop. Programação Orientada à Objetos 2 JSE Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação Para aprender uma linguagem de programação podemos começar por conhecer os vocábulos ou símbolos que formam o seu léxico e depois aprender como esses vocábulos integram as instruções (frases) que compõe

Leia mais

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação Tipos de Dados, Variáveis e Entrada e Saída em C DCC 120 Laboratório de Programação Variáveis Uma variável representa um espaço na memória do computador para armazenar um determinado tipo de dado. Em C,

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Aula VIII Prof. Felício Bruzzi Barros Maio de 2008 Sobrecarga de operadores matriz A, B, C, D; multiplica(a,b,c); soma(a,b,d); escreve(d); matriz A, B, C, D; C=A*B; D=A+B;

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Classes e Objetos Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Efetuando Abstração de Dados com as Linguagens C e C++ O capítulo 4 do

Leia mais

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010 Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010 1 Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos

Leia mais

Linguagem de Programação I

Linguagem 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 mais

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes Introdução à Programação Introdução a Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Introdução Variáveis Tipos de dados Operadores e Expressões: Operadores

Leia mais

Capítulo 6: Arquivos

Capítulo 6: Arquivos Capítulo 6: Arquivos Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Funções de entrada e saída em arquivos Nos capítulos anteriores, desenvolvemos programas que capturam seus dados de

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Editor Gráfico Vamos usar nosso framework do Motor, com pequenas mudanças (para permitir interação com

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos luno: ata: Professor: Leonardo abral da Rocha Soares 1. Torna o atributo visível a todas as classes do pacote onde foi declarado: a) public b) private c) protected d) package

Leia mais

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação Algoritmos e Introdução à Programação Lógica e Linguagem de Programação Prof. José Honorato Ferreira Nunes honoratonunes@softwarelivre.org http://softwarelivre.org/zenorato/honoratonunes Linguagem C Prof.

Leia mais

Métodos Computacionais

Métodos Computacionais Métodos Computacionais Objetivos da Disciplina e Introdução a Linguagem C Construções Básicas Objetivos da Disciplina Objetivo Geral Discutir técnicas de programação e estruturação de dados para o desenvolvimento

Leia mais

ponteiros INF Programação I Prof. Roberto Azevedo

ponteiros INF Programação I Prof. Roberto Azevedo ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência

Leia mais

Subprogramas. Prof. Carlos Lopes

Subprogramas. Prof. Carlos Lopes Subprogramas Prof. Carlos Lopes Motivação Escreva um programa C capaz de calcular a combinação de n valores tomados p a p. Para realizar este cálculo, você deverá utilizar a seguinte fórmula: C n n! p

Leia mais

Programação por Objectos. Java

Programaçã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 mais

Linguagem C Funções. André Tavares da Silva.

Linguagem C Funções. André Tavares da Silva. Linguagem C Funções André Tavares da Silva andre.silva@udesc.br Funções É uma coleção de comandos identificados por um nome (identificador); As funções executam ações e podem retornar valores; main, printf

Leia mais

Sub-rotinas. 2014/2 Programação Básica de Computadores (INF 09325) Freddy Brasileiro

Sub-rotinas. 2014/2 Programação Básica de Computadores (INF 09325) Freddy Brasileiro Sub-rotinas 2014/2 Programação Básica de Computadores (INF 09325) Freddy Brasileiro www.inf.ufes.br/~fbrasileiro fbrasileiro@inf.ufes.br Programa / Bibliografia 4. Sub-programas e funções 1. Funções e

Leia mais

Modificadores de Acesso e Atributos de Classe

Modificadores de Acesso e Atributos de Classe Modificadores de Acesso e Atributos de Classe 1 Controlando o acesso p Um dos problemas mais simples que temos no nosso sistema de contas é que o método saca permite sacar mesmo que o limite tenha sido

Leia mais

Vetores. e o programa deverá ler os valores separadamente:

Vetores. e o programa deverá ler os valores separadamente: Vetores Vetor é um tipo de dado usado para representar uma certa quantidade de variáveis de valores homogêneos (do mesmo tipo). Imagine o seguinte problema: calcular a média das notas da prova de 5 alunos.

Leia mais

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) g BREVE HISTÓRICO g CARACTERÍSTICAS g CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS g MODELAGEM DE ANÁLISE E DE PROJETO 1 I. BREVE HISTÓRICO Em fins dos anos

Leia mais

11 - Estrutura de um programa em C

11 - Estrutura de um programa em C 11 - Estrutura de um programa em C directivas para o compilador { main ( ) declarações instruções } -É possível utilizar comentários, exemplo: /* Comentário */ que não são traduzidos pelo compilador, pois

Leia mais

ADTs (Abstract Data Types): Motivação

ADTs (Abstract Data Types): Motivação ADTs (Abstract Data Types): Motivação Mesmas estruturas são usadas com vários tipos de dados Listas Pilhas Amontoado FIFOs Inteiros Reais Strings Estruturas O procedimento para inserir um inteiro, real,

Leia mais

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

Programação Estruturada e Orientada a Objetos. Objetos e Métodos Programação Estruturada e Orientada a Objetos Objetos e Métodos 2013 O que veremos hoje? Objetos e Métodos Transparências baseadas no material do Prof. Jailton Carlos Objetivos Aprender a criar construtores;

Leia mais

Linguagem C: Subprogramação

Linguagem C: Subprogramação Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Subprogramação Organização 1 Subprogramação 2 3 Passagem por Valor Passagem por Referência

Leia mais

Universidade Federal de Mato Grosso do Sul. Propriedades da Programação Orientada a Objetos

Universidade Federal de Mato Grosso do Sul. Propriedades da Programação Orientada a Objetos Universidade Federal de Mato Grosso do Sul Facom - Faculdade de Computação Linguagem de Programação Orientada a Objetos Prof. Me. Liana Duenha Propriedades da Programação Orientada a Objetos Neste tópico

Leia mais

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Herança Herança Criação de uma nova classe de uma

Leia mais

Trabalho Linguagem e Programação de Compiladores

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:

Leia mais

Introdução à Linguagem C Variáveis e Expressões

Introdução à Linguagem C Variáveis e Expressões INF1005: Programação 1 Introdução à Linguagem C Variáveis e Expressões 08/03/10 (c) Paula Rodrigues 1 Tópicos Principais Programando em C Funções Variáveis Define Operadores e Expressões Entrada e Saída

Leia mais

Encapsulamento e Modularização

Encapsulamento e Modularização Encapsulamento e Modularização Departamento de Computação Universidade Federal de Sergipe Encapsulamento Modularização Tipos Abstratos de Dados (TADs) Objetos Classes Conteúdo Encapsulamento Programação

Leia mais

12. SOBRECARGA DE OPERADOR

12. 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 mais

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Argumentos da linha de comando Funções recursivas Programação 2010/2011 DEEC-IST Arg. da linha de comando;

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

Capítulo 06: Arquivos

Capítulo 06: Arquivos Capítulo 06: Arquivos INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Funções de entrada e saída em arquivos Motivação: quando um programa precisa processar

Leia mais

19 Vetores, Ponteiros e Funções

19 Vetores, Ponteiros e Funções 19 Vetores, Ponteiros e Funções Ronaldo F. Hashimoto e Carlos H. Morimoto Oobjetivodestaaulaérelacionarotipovetor com ponteiros eassimentendercomoutilizarvetorescomo parâmetros de funções. Ao final dessa

Leia mais

Métodos Genéricos. Prof.: Michele Nasu Tomiyama Bucci

Métodos Genéricos. Prof.: Michele Nasu Tomiyama Bucci Métodos Genéricos Prof.: Michele Nasu Tomiyama Bucci Introdução Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Template Templates Funções templates Especificam

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Vetores e Strings int vetor[] / rand() / #define / char string[] / gets() Gil Eduardo de Andrade Vetores Introdução Um vetor pode ser definido como é um conjunto de elementos (variáveis)

Leia mais

Linguagem de Programação. Diagrama de classes

Linguagem de Programação. Diagrama de classes Linguagem de Programação Diagrama de classes Joyce França Professora de Ciência da Computação - IFNMG 2 Agenda Diagrama de classes Herança Associação Agregação Exercícios 3 Diagrama de classes Mostra um

Leia mais

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos. Encapsulamento Programação Orientada a Objetos Encapsulamento Cristiano Lehrer, M.Sc. Introdução (1/2) Os três pilares da programação orientada a objetos são: Encapsulamento Herança Polimorfismo Encapsulamento é a característica

Leia mais

Introdução à Programação C

Introdução à Programação C Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Vetores Para vários problemas precisamos de uma maneira de representar uma sequência de valores com um número

Leia mais

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

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento Professora Sheila Cáceres Variáveis locais Campos são um tipo de variável. Eles: armazenam valores por toda a vida de um objeto; e

Leia mais

Introdução à Programação em C

Introdução à Programação em C Introdução à Programação em C Tipos e Operadores Elementares Estruturas de Controlo Resumo Novidades em C Exemplo: Factorial Tipos de Dados Básicos Saltos Condicionais: if-then-else Valor de retorno de

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

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

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,

Leia mais

Introdução à Computação MAC0110

Introdução à Computação MAC0110 Introdução à Computação MAC0110 Prof. Dr. Paulo Miranda IME-USP Aula 2 Variáveis e Atribuições Memória Principal: Introdução Vimos que a CPU usa a memória principal para guardar as informações que estão

Leia mais

Programação Básica. Estrutura de um algoritmo

Programação Básica. Estrutura de um algoritmo Programação Básica Estrutura de um algoritmo Código-fonte Como vimos na aula anterior um algoritmo pode ser representado usando um fluxograma Um algoritmo pode também ser representado usando texto Esse

Leia mais

Legibilidade do código fonte

Legibilidade do código fonte Sumário Legibilidade do código fonte Exemplos Normas Instrução switch Sintaxe e Semântica Exemplo Tipos enumerados Exemplo Programação 2007/2008 DEEC-IST 1 Legibilidade do código fonte Exemplo: Considere

Leia mais

PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS

PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS PADRONIZAÇÃO 10. INTERFACES No dia-a-dia lidamos com diversos aparelhos elétricos Diversas empresas fabricam aparelhos elétricos com plugues E se cada empresa decidisse por conta própria o formato dos

Leia mais

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

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos e Ligação Dinâmica Programação Orientada a Objetos e Polimorfismo A é a contribuição original do paradigma de programação orientado a objetos Fundamentos chave do paradigma OO: Abstração de Dados A herança

Leia mais

Programação por Objectos. Java

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 mais

C++ - Funções Virtuais (Polimorfismo) Base. Deriv0 Deriv1 Deriv2. print( ) print( ) print( ) dv0 dv1 dv2. p[0] = &dv0; p[1] = &dv1; p[2] = &dv2;

C++ - Funções Virtuais (Polimorfismo) Base. Deriv0 Deriv1 Deriv2. print( ) print( ) print( ) dv0 dv1 dv2. p[0] = &dv0; p[1] = &dv1; p[2] = &dv2; C++ - Funções Virtuais (Polimorfismo) Polimorfismo : (assumir várias formas) Em C++ indica a habilidade de uma única instrução chamar diferentes funções e portanto assumir formas diferentes. Veja isto

Leia mais