Esta apresentação ensinará os conceitos de Orientação a Objetos com C++, do mais básico para o mais avançado. É suposto que o aluno já tenha
|
|
- Nicholas Lameira da Cunha
- 8 Há anos
- Visualizações:
Transcrição
1
2 Esta apresentação ensinará os conceitos de Orientação a Objetos com C++, do mais básico para o mais avançado. É suposto que o aluno já tenha conhecimento avançado de C.
3 Exemplo em C: Faça um programa que jogue dois dados e some os números que sairam. Ficaria assim: #include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char **argv) { short int dado1, dado2, soma; srand (time(null)); dado1 = (short int) (rand() % 6) + 1; dado2 = (short int) (rand() % 6) + 1; soma = dado1 + dado2; printf("%d\n", dado1); printf("%d\n", dado2); printf("%d\n", soma); return 0; Este programa funciona e faz o que foi pedido, mas... ele é organizado? Em um programa pequeno é aceitável fazer o código assim, mas e num projeto grande como um jogo, feito por mais de 15 pessoas? Os dados estão sendo representados por ints, e para sortear um número, repete-se a linha do rand() várias vezes. Usando OO, este problema da desorganização é resolvido. A partir do próximo slide, este código será transformado em C++ orientado a objetos.
4 Em C existe uma ferramenta chamada struct. Uma struct para representar um dado seria assim: typedef struct { int ultimo_valor_sorteado; Dado; Em C++, embora também seja possível fazer structs, há um irmão evoluido desta ferramenta: classes. Uma classe é como uma struct, mas que permite adição de funções além das váriaveis. Na verdade classes são muito mais complexas do que isso, como veremos mais a frente, mas esta comparação com struct não deixa de estar certa... Veja uma classe dado: class Dado { public: int valor; int sorteia(void) { return valor = (rand() % 6) + 1; Dado() { srand (time(null)); valor = 0; ;
5 #include <iostream> #include <time.h> using namespace std; class Dado { public: int valor; int sorteia(void) { return valor = (rand() % 6) + 1; Dado() { srand (time(null)); valor = 0; ; int main(int argc, char **argv) { Dado dado1,dado2; cout << dado1.sorteia() << endl; cout << dado2.sorteia() << endl; cout << dado1.valor + dado2.valor << endl; return 0; Assim, o código fica muito mais legível do que o outro em C. Os dados não são mais representados por ints: agora um dado é chamado exatamente de Dado. As váriaveis e contas, para não serem repetidas o tempo todo no código, estão dentro da classe. Querendo usar o valor sorteado, escreve-se x.valor, e para sortear, x.sorteia(). Cada dado terá armazenado o valor sorteado, e poderá ser jogado de novo. Esta prática organiza o código, diminui o número de linhas em projetos grandes e facilita o entendimento, pois os nomes de classes, variáveis e métodos são diretos. Detalhes ainda desconhecidos como o namespace e a função Dado() serão explicadas no futuro.
6 Construtores Antes de continuar, alguns detalhes de nomenclatura devem ser ditos. Variáveis dentro de classes são chamadas de atributos, e funções dentro de classes são chamadas de métodos. No exemplo anterior, um Dado possui o atributo valor e o método sortear. Atributos são os valores característicos de uma classe, e métodos são ações praticadas por ela. Não é mais lógico chamar assim? Havia no exemplo anterior um método Dado() dentro da classe Dado. Métodos com o mesmo nome da classe são chamados de métodos construtores. Eles são chamados quando a variável é criada. Ou seja, ao escrever a linha Dado dado1;, o método Dado() é chamado automaticamente. Significa que assim que d1 é criado, o seu atributo valor já é setado para zero. É possível criar também construtores que recebem parâmetros.
7 #include <iostream> using namespace std; class Pessoa { public: string nome; int idade; Pessoa(string nome, int idade):nome(nome), idade(idade) { ; int main (int argc, char **argv) { Pessoa p("joao",15); cout << p.nome << endl; cout << p.idade << endl; return 0; Exemplo de construtor recebendo parâmetros. Veja que a variável p, quando é criada, recebe valores por parênteses, uma string e um int. Estes valores são passados para o construtor e os atributos são inicializadas. Note que ao lado do construtor há dois pontos seguidos por: nome(nome), idade(idade). Este é um modo de inicializar as variáveis. idade(idade) significa: O atributo 'idade' receberá o valor do parâmetro 'int idade'. Escrito deste modo, ambos podem ter o mesmo nome que o compilador não se confundirá. Deste modo, o código não fica poluído com várias variáveis de nomes diferentes desnecessariamente.
8 Encapsulamento Em ambos os exemplos até agora foi cometido um erro proposital. Embora não pareça, os códigos de Dado e Pessoa estão com uma séria falha de segurança. Dado: Um dado foi arremessado com o método sortear(), e este valor sorteado foi armazenado no atributo 'valor'. Mas note que quem usar a classe Dado ainda será capaz de fazer, na main, x.valor = 7. Isto estragaria a lógica do programa, pois um dado (comum) não possui o valor 7. Pessoa: É possível entrar com o valor da idade da pessoa. O que acontece se for entrado o valor -1? Nada. Ou seja, outra falha. Para contornar estas falhas, existe o encapsulamento. Basta proibir o acesso a todos os atributos e tratar suas modificações através de métodos, chamados getters e setters.
9 #include <iostream> #include <time.h> using namespace std; class Dado { private: // Nada abaixo de private pode ser acessado fora da classe. int valor; // Como o que define o 'valor' é o sorteio, ela não pode nunca ser modificada. public: // Os métodos marcados como public são acessíveis fora da classe int sorteia(void) { return valor = (rand() % 6) + 1; int getvalor(void) { return valor; ; Dado() { srand (time(null)); valor = 0; int main(int argc, char **argv) { Dado dado1,dado2; // Tente modificar o valor da variável valor. Agora é impossível! cout << dado1.sorteia() << endl; cout << dado2.sorteia() << endl; cout << dado1.getvalor() + dado2.getvalor() << endl; return 0;
10 #include <iostream> using namespace std; class Pessoa { private: string nome; int idade; public: Pessoa(string nome, int idade):nome(nome) { setidade(idade); ; string getnome(void) { return nome; void setnome(string nome) { this->nome = nome; int getidade(void) { return idade; void setidade(int idade) { this->idade = idade < 0? -idade : idade; int main (int argc, char **argv) { Pessoa p("maria",-20); cout << p.getnome() << endl; cout << p.getidade() << endl; return 0; Deve-se sempre proibir o acesso a todos os atributos usando a palavra private, e liberar todo o resto com public. Os que não estiverem em um destes modificadores de acesso serão considerados private. Mesmo que a proibição em alguns casos pareça inútil, pode ser que venha a ser útil no futuro. Os métodos getx() e setx() servem para acessar e tratar os dados privados. Não esqueça de colocar estes métodos sempre como públicos. this->nome = nome; significa: O atributo nome desta classe recebe o valor da variável nome passada por parâmetro. É um outro artifício usado para economizar palavras. O outro é o nome(nome), usado no construtor. Deixe os atributos sempre private, mas faça getters e setters apenas se necessário. Note que não foi feito o método setvalor() no slide anterior.
11 Sobrecarga Em C++ (e em qualquer outra linguagem orientada a objetos, como Java), é possível criar mais de um método com o mesmo nome. Os métodos de mesmo nome são diferenciados pelos parâmetros: tipos, ordem e quantidade deles. É possível modificar a classe Dado adicionando os dois métodos: // Método que já existe na classe int sorteia(void) { return valor = (rand() % 6) + 1; // Supondo que o dado seja de vários lados int sorteia(int ordem) { return valor = (rand() % ordem) + 1; Os métodos possuem o mesmo nome, mas os parâmetros são diferentes. Tente você desta vez modificar a classe Dado :)
12 É possível também fazer sobrecarga de construtores. Ou seja, uma classe pode ter vários construtores, desde que seus atributos sejam capazes de diferenciá-los uns dos outros. A classe Pessoa possui um construtor que seta os valores do nome e da idade. É possível fazer, ao mesmo tempo, construtores assim: Pessoa(string nome, int idade) {... // Já existe na classe! Pessoa(string nome) {... // Inicia o valor do nome apenas. Pessoa(int idade) {... // Inicia o valor da idade apenas. Pessoa() {... // Não inicia nada. Apenas cria a pessoa. Tente fazer esta modificação na classe pessoa e veja que de fato é possível criar vários construtores por classe. Esta possibilidade de escrever um mesmo método de várias formas é chamado de sobrecarga.
13 Uso de Ponteiros Até agora não foi dada muita atenção, mas é preciso (e muito importante) diferenciar uma variável de um objeto. Fazendo Dado d1, é criado um objeto da classe Dado. Foi criada uma instância de Dado. Entenda classe como algo abstrato e generalizado, e objeto (ou instância) como algo concreto e único. Outro exemplo: Imagine que existe, no além, uma classe Pessoa, e que VOCÊ E EU somos instâncias desta classe :) É possível criar em C++ ponteiros para objetos. A linha Dado *d1 cria um objeto? A resposta é NÃO! Neste caso é criado apenas um ponteiro, que inicialmente aponta para NULL. Veja nos slides seguintes como usar ponteiros para objetos. Será apresentada a palavra new.
14 #include <iostream> using namespace std; // Esta classe representa uma coordenada. (x,y) class Ponto { private: int x, y; public: int getx(void) { return this->x; int gety(void) { return this->y; void setx(int x) { this->x = x; void sety(int y) { this->y = y; Ponto(int x, int y) : x(x), y(y) { Ponto(void) { this->x = this->y = 0; ; Continua no slide seguinte...
15 int main(int argc, char **argv) { // Ponteiro para Ponto. Ele está apontando, inicialmente, para NULL. Ponto *p1; // Está sendo criado um ponteiro chamado p2. p2 APONTA para um objeto, // criado com a palavra 'new'. // O objeto não possui um nome. Sabe-se apenas que p2 aponta para ele. Ponto *p2 = new Ponto; // O mesmo caso acima, mas desta vez, foi usado outro construtor. Ponto *p3 = new Ponto(9,15); // Aloca espaço para um ponto, mas nenhum construtor é chamado. Ponto *p4 = (Ponto*) (malloc(sizeof(ponto))); // Objetos criados diretamente. Ponto p5; Ponto p6(2,5); // Para buscar um atributo ou método através de um ponteiro, usa-se uma seta. cout << p3->getx() << endl; // E para buscar de um objeto criado diretamente, usa-se um ponto. cout << p6.gety() << endl; return 0;
16 Destrutores Objetos podem ser construídos e também destruídos. Um objeto deve ser destruído quando não for mais utilizado. Esta destruição é feita através do método destrutor. Objetos criados diretamente, sem ponteiros, são destruídos automaticamente ao fim do código. Os objetos instanciados a partir de ponteiros (com a palavra new) não são destruidos automaticamente, apenas o programador pode fazê-lo. Métodos construtores são similares ao free(), de C. Os dois desalocam espaço de um ponteiro. É uma boa prática (essencial em projetos grandes) destruir todos os objetos que não forem mais utilizados. Em algumas linguagens isso é feito automaticamente. Toda classe já possui um destrutor padrão, que desaloca um ponteiro. Mas é possível escrever um método destrutor, para executar alguma ação específica. Ao escrever um novo destrutor, estamos substituindo o padrão por este novo método. Métodos destrutores são escritos com o mesmo nome da classe, e com um ~(til) antes do nome. Um ponteiro é desalocado através da palavra delete.
17 #include <iostream> using namespace std; class Ponto { private: int x, y; public: int getx(void) { return this->x; int gety(void) { return this->y; void setx(int x) { this->x = x; void sety(int y) { this->y = y; Ponto(int x, int y) : x(x), y(y) { Ponto(void) { this->x = this->y = 0; ~Ponto(void) { // "cout" apenas para que seja visível // a destruição na compilação :) cout << "BUM!" << endl; ; int main(int argc, char **argv) { Ponto *p1; Ponto *p2 = new Ponto; Ponto *p3 = new Ponto(9,15); Ponto *p4 = (Ponto*) (malloc(sizeof(ponto))); Ponto p5; Ponto p6(2,5); delete p4; // Compile e veja que o destrutor será chamado 3 vezes. // Foram destruidos p4, p5 e p6. return 0;
18 O operador :: As classes feitas até agora (Dado, Pessoa e Ponto) foram feitos de modo correto, mas não do modo padrão de C++. Em C, as funções presentes no programa têm seus cabeçalhos declarados no início do código. Estes cabeçalhos são chamados protótipos das funções. As classes devem ser apenas o conjunto de protótipos dos métodos. Estes devem ser declarados do lado de fora da classe. A relação entre classe e método é feita com o operador :: Este operador também pode acessar os elementos de um namespace. Namespace é como um pacote que carrega variáveis, funções, classes... qualquer coisa. O namespace std é um pacote especial que carrega em seu interior várias ferramentas padrões de C++. É possível também criar seus próprios namespaces e adicioná-los usando a palavra using.
19 #include <iostream> // Não será adicionado o namespace std. // Veja como são chamados cout e endl. class Ponto { private: int x, y; public: int getx(void); int gety(void); void setx(int x); void sety(int y); ; Ponto(int, int); Ponto(void); ~Ponto(void); int Ponto :: getx(void) { return this->x; int Ponto :: gety(void) { return this->y; void Ponto :: setx(int x) { this->x = x; Ponto :: Ponto(int x, int y) : x(x), y(y) { Ponto :: Ponto(void) { this->x = this->y = 0; Ponto::~Ponto(void) { std::cout << "BUM!" << std::endl; int main(int argc, char **argv) { Ponto *p = new Ponto(7,2); std::cout << p->getx() << std::endl; return 0; Esta sintaxe é feia numa primeira impressão, mas não é difícil e ajuda a visualizar o que uma classe possui. Faça suas classes sempre assim. void Ponto :: sety(int y) { this->y = y;
20 Métodos Inline C++ possui um modificador que facilita e otimiza o acesso a métodos pequenos: inline. Sempre que um método tiver apenas uma linha (getters e setters, geralmente) ele deve ter a palavra inline antes do tipo de retorno, e este método deve ser criado diretamente na classe, sem o operador ::. Métodos inline são acessados muito mais rapidamente do que os comuns, por isso, sempre que possível, faça-os assim. class Inteiro { private: int valor; public: inline int getvalor(void) { return valor; inline void setvalor(int valor) { this->valor = valor; bool iszero(void); Inteiro(int); ; bool Inteiro :: iszero(void) { if(valor == 0) { return true; else { return false; Inteiro :: Inteiro(int valor) : valor(valor) {
Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.
Data: 14/8 Página 1 de 9 Primeiros passos Introdução Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++. No tutorial anterior, mostramos como
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,
Leia maisAula 1 Tipo Abstrato de Dados
Aula 1 Tipo Abstrato de Dados Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 2009-1 O que é um algoritmo? O que é um programa? Algoritmos Sequência de ações executáveis para
Leia maisINTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita
Leia maisImplementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
Leia maisLinguagem de Programação III
Clique para editar o estilo do subtítulo mestre Linguagem de Programação III Histórico Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Comparação com Java Histórico Desenvolvido por
Leia maisIntrodução a POO. Introdução a Linguagem C++ e POO
Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes
Leia maisComponentes da linguagem C++
Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras
Leia maisProf. Jhonatan Fernando
Prof. Jhonatan Fernando Métodos Programação OO Instâncias de variáveis (objetos) Mensagens Classes Herança Polimorfismo Encapsulamento Abstração Programação Estruturada Procedimentos e funções Variáveis
Leia maisProgramação Orientada a Objetos em Java
Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a
Leia maisPOO Programação Orientada a Objetos. Classes em Java
+ POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos
Leia maisLP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br
LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de
Leia maisEXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS
Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor
Leia maisIntrodução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza
Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo
Leia maisProgramação Orientada a Objetos C++
Programação Orientada a Objetos em C++ Sumário Histórico Comparação com Java Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Histórico Desenvolvido por Bjarne Stroustrup dos Bell Labs
Leia maisO que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados
Aula 1 Tipo Abstrato de Dados O que é um algoritmo? Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 O que é um programa? 2009-1 Algoritmos Sequência de ações executáveis para
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem
Leia maisUNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA
Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais
Leia maisARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto
Leia maisATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS
ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o
Leia maisPilhas. Profa Morganna Diniz
Pilhas Profa Morganna Diniz Pilhas Geralmente pilhas são úteis em situações em que dados devem ser recuperados em ordem inversa a do armazenamento É uma estrutura de dados linear que permite acesso por
Leia maisEdwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++
Edwar Saliba Júnior Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++ Belo Horizonte 2009 Sumário 1 Nota:... 2 2 Comandos e Palavras Reservadas:... 3 3 Dicas... 4
Leia mais3 Classes e instanciação de objectos (em Java)
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 maisProfº. Enrique Pimentel Leite de Oliveira
Profº. Enrique Pimentel Leite de Oliveira O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam
Leia mais2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10
1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...
Leia maisProgramação Orientada a Objetos - 3º semestre AULA 08 Prof. André Moraes
Pág 50 Programação Orientada a Objetos - 3º semestre AULA 08 Prof. André Moraes 10 CORREÇÃO DE QUESTÕES DE AVALIAÇÃO 1 PARTE I - AVALIAÇÃO TEÓRICA 11 RESPONDA AS QUESTÕES ABAIXO: A) Qual a diferença entre
Leia maisNoções sobre Objetos e Classes
Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão
Leia maisA Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação
A Introdução à Programação Orientada a Objetos Programação e Sistemas de Informação Objectos (1) Objectos são coisas que temos no mundo real e abstraímos no mundo virtual para que possamos manipulá-los
Leia maisProgramação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos
Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo
Leia maisProgramação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.
Classes Abstratas Técnico em Informática, M.Sc. Classes Abstratas 2 Classes Abstratas Abstração Devemos considerar as qualidades e comportamentos independentes dos objetos a que pertencem, isolamos seus
Leia maisAULA 4 VISÃO BÁSICA DE CLASSES EM PHP
AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.
Leia maisCurso de Linguagem C
Curso de Linguagem C 1 Aula 1 - INTRODUÇÃO...4 AULA 2 - Primeiros Passos...5 O C é "Case Sensitive"...5 Dois Primeiros Programas...6 Introdução às Funções...7 Introdução Básica às Entradas e Saídas...
Leia maisLógica de Programação
Lógica de Programação Unidade 20 ArrayList: Operações de Busca Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 TIPOS DE BUSCAS... 3 BUSCA ESPECÍFICA... 3 BUSCA ABRANGENTE... 3 PROCEDIMENTO DE BUSCA...
Leia maisINTRODUÇÃO AO JAVA PARA PROGRAMADORES C
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO AO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar a grande semelhança entre Java e C Apresentar a organização diferenciada
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-3 Criando Classes em Java Prof. Esbel Tomás Valero Orellana Da Aula Anterior Classes em Java, sintaxe básica Tipos básicos de dados em Java, como escolher o tipo apropriado
Leia mais2 Orientação a objetos na prática
2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos
Leia maisCONVENÇÃO DE CÓDIGO JAVA
CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2
Leia maisJSP - ORIENTADO A OBJETOS
JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...
Leia maisExercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.
Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +
Leia maisJava 2 Standard Edition Como criar classes e objetos
Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da
Leia maisAula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>
Aula 1 C é uma linguagem de programação estruturada desenvolvida por Dennis Ritchie nos laboratórios Bell entre 1969 e 1972; Algumas características: É case-sensitive, ou seja, o compilador difere letras
Leia maisObjetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único
Pacotes e Encapsulamento Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes
Leia maisEstrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org
Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Breve Histórico A linguagem de programação C foi criada na década de 70, por Dennis Ritchie, que a implementou,
Leia maisOO Engenharia Eletrônica
OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à Multithreading. Introdução à Multithreading: execução concorrente de tarefas. Exemplos usando a biblioteca C Run-time library. Prof.
Leia maisProgramação Orientada a Objetos em Java. Herança
Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Herança Professor: César Melo Slides baseados em materiais preparados
Leia maisComputação e Programação Aula prática nº 5. Enunciados dos problemas
Enunciados dos problemas 1 1. Processador de números 1.1 Objectivos do exercício análise sequencial de um problema baseada em objectos e desenvolvimento do respectivo algoritmo; codificação do algoritmo
Leia maisUnidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01
Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01 Objetivos: Modelar um sistema orientado a objetos simples a partir
Leia maisDesenvolvimento OO com Java Orientação a objetos básica
Desenvolvimento OO com Java Orientação a objetos básica Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
Leia maisNetBeans. Conhecendo um pouco da IDE
NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica
Leia maisProgramação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 1 Linguagens de Programação Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto
Leia maisDEFINIÇÃO DE MÉTODOS
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 2 DEFINIÇÃO DE MÉTODOS Todo o processamento que um programa Java faz está definido dentro dos
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:
Leia maisCurso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming
Curso de PHP FATEC - Jundiaí A programação orientada a objetos (object-oriented oriented programming OOP) é um conjunto de técnicas t para organizar o código c em torno de entidades ou objetos representados
Leia maisTabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação
Java Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação 1 Tabelas para quê? As tabelas são utilizadas quando se pretende armazenar e manipular um grande número de
Leia maisSTL significa Standard Template Library. É uma biblioteca que contém algumas estruturas de dados, como árvore binária e lista encadeada.
STL significa Standard Template Library. É uma biblioteca que contém algumas estruturas de dados, como árvore binária e lista encadeada. Estas estruturas são chamadas de Containers. Elas armazenam coleções
Leia maisUm objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;
um objeto; é definido; Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; class ClasseBase{ é instanciado; $objetobase = new ClasseBase; Caso queira,
Leia maisCAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES
CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:
Leia mais5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES
CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:
Leia mais17 - Funções e Procedimentos em C Programação Modular
17 - Funções e Procedimentos em C Programação Modular Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 17
Leia maisNOVIDADES DO JAVA PARA PROGRAMADORES C
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o Conceito de Classes e Objetos Capacitar para a criação de objetos simples
Leia maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Leia maisConceitos básicos da linguagem C
Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por
Leia maisCurso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA. Mostrar como funciona a programação orientada a objetos
META Curso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA Conteudista: André Luiz Brazil Aula 3: CRIANDO A CLASSE ESPAÇONAVE Mostrar como funciona a programação orientada a objetos OBJETIVOS Ao final da
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/52 Herança revisão A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse pode
Leia maisProgramação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP
Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente
Leia maisCurso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais
Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais
Leia maisPersistência de Dados
Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD
Leia maisPara criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.
7 Animação Animações é um dos quesitos muito importantes em jogos, você não acha? Para isso o JPlay tem uma classe específica para lidar com animações. Essa classe se chama Animation. Bem sugestivo o nome
Leia maisProf. Esp. Adriano Carvalho
Prof. Esp. Adriano Carvalho O que é um Programa? Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais
Leia maisConceito de classe em C++
Introdução à Programação com Classes em C++ Ana Paula Rocha, Luís Paulo Reis, João Pascoal Faria FEUP - MIEEC Programação 2-2008/2009 Conceito de classe em C++ Classe em sentido lato: tipo de dados definido
Leia mais2 Desenvolvimento de Software Orientado a Aspectos
2 Desenvolvimento de Software Orientado a Aspectos Separação de concerns é um princípio bem estabelecido da engenharia de software que diz que, para se dominar a complexidade do desenvolvimento de software,
Leia maisOPERADORES E ESTRUTURAS DE CONTROLE
OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em
Leia maisProgramação com Acesso a BD. Programação com OO Acesso em Java
Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática
Leia maisAnálise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem
Leia maisPROGRAMAÇÃO II 4. ÁRVORE
4. ÁRVORE PROGRAMAÇÃO II Prof. Jean Eduardo Glazar Uma árvore impõe uma estrutura hierárquica em uma coleção de itens. Um exemplo familiar é a árvore genealógica. Árvores despontam de forma natural em
Leia maisFundamentos de Programação
TeSP Redes e Sistemas Informáticos Luís Correia Até agora aprendemos que podemos armazenar vários elementos, mas esses elementos têm que ser todos do mesmo tipo Exemplos: int v[20]; float matriz[5][10];
Leia maisTemplates e Pilhas. 1. Introdução
Templates e Pilhas 1. Introdução Templates ou Generics é considerado uma forma de polimorfismo [1]. É uma forma de programar onde o tipo do dado não é considerado. Programa-se para um tipo de dado indefinido.
Leia mais9 Comandos condicionais
9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em
Leia maisBusca. Pesquisa sequencial
Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um
Leia maisstruct LISTA item quant
UNIVERSIDADE SÃO JUDAS TADEU ESTRUTURA DE DADOS - PROF. H. Senger IMPLEMENTAÇÃO DE LISTAS COM VETORES A implementação de listas utilizando vetores é simples. Existe apenas uma pequena questão, com relação
Leia mais1 Funções básicas de implementação de arquivos
1 Funções básicas de implementação de arquivos 1.1 Definindo registros Depois de um objeto do mundo real ter sido modelado, ou seja, após seus atributos importantes (e relevantes) terem sido identificados,
Leia mais15-09-2009. Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido
PARTE III: Java e OO - detalhes Membros de classe e instâncias Pacotes Visibilidade Classes aninhadas Membros de classe e de instância De classe Static Método não necessita de objeto para ser chamado.
Leia maisRevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN 2178-5589.
Tutorial de Instalação e Uso do Eclipse Alexandre V. S. Lage, Caio de O. Leal, Eduardo A. F. da Silva, Felipe C. C. Trindade, Gutierre da C. Oliveira e Miguel G. P. de Carvalho. INTRODUÇÃO O Eclipse (2012)
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 05 APRESENTAÇÃO: Nesta aula vamos ver como se faz a criação de Métodos
Leia maisProgramação Orientada a Objeto
Programação Orientada a Objeto Classes, Atributos, Métodos e Objetos Programação de Computadores II Professor: Edwar Saliba Júnior 1) Java é uma linguagem orientada a objetos. Para que possamos fazer uso
Leia maisDadas a base e a altura de um triangulo, determinar sua área.
Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares
Leia maisCurso de Programação Computadores
3 O Primeiro Programa em C Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 3 O Primeiro Programa em C 3.1 - Introdução Depois dos conceitos
Leia maisJAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo
Conteúdo Estruturas de repetição (loops, laços)... 2 WHILE (enquanto)... 2 DO... WHILE (faça... enquanto)... 2 FOR... 3 FOREACH... 4 EXERCICIO LOOP FOR... 4 Novo Projeto... 5 Controles SWING... 10 1 Estruturas
Leia maisAlgoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br
Leia mais2ª Lista de Exercícios
Universidade Federal de Minas Gerais Departamento de Ciência da Computação Algoritmos e Estruturas de Dados II (Turmas M, N, W, F) 1º Semestre de 2012 Profs. Camilo Oliveira, Gisele Pappa, Ítalo Cunha,
Leia maisPadrões de Projeto. Singleton
Padrões de Projeto Padrões de Criação Singleton Singleton Assegura que uma classe tenha apenas uma instância e provê um ponto de acesso global a ela 2 Livro Texto: Design Pattern - Elements 1 Motivação
Leia maisResumo da Matéria de Linguagem de Programação. Linguagem C
Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis
Leia mais