Aula Prática 13 Orientação a Objeto Monitoria 2010.2.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Paradigmas da Programação – Semestre 1 – Aula 6
Paulo Marques Hernâni Pedroso
Introdução à Programação Orientada à Objetos Prof. Daniel Merli Lamosa Maio de 2002.
Algoritmos e Estrutura de Dados I
Programação Básica em Java
2002 LCG/UFRJ. All rights reserved. 1 Tópicos em C++ Claudio Esperança Paulo Roma Cavalcanti.
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Paradigmas da Programação – Semestre 1 – Aula 5
Vetores, Matrizes e Funções
Classes e objetos P. O. O. Prof. Grace.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
TÉCNICAS DE PROGRAMAÇÃO II
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula prática 6 Vetores e Matrizes
JAVA Orientação a Objetos
Sobrecarga e Encapsulamento
Programação Orientada à Objetos
Tópicos avançados em internet A
Programação I Aula 2 (Métodos)
Métodos de Construção de Software: Orientação a Objetos
Aula prática 6 Vetores e Matrizes
Linguagens de Programação II Aula 04 – Entendendo Classes
Linguagens de Programação II
PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof
Orientação a Objetos Parte I
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Programação Orientada à Objetos
Definição Classe Objeto Construtor de Classes Manipulando o objeto Namespace Utilização do namespace Herança Polimorfismo Encapsulamento Propriedades.
Linguagem de Programação JAVA
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Programação Orientada à Objetos
Aula prática 14 Orientação a Objetos – C++ Parte 2
Curso de Aprendizado Industrial Desenvolvedor WEB
Linguagens de Programação
Aula Prática 4 Monitoria IP/CC (~if669).
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Aula Prática 3 Funções Monitoria Introdução à Programação.
Herança e Polimorfismos
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introdução à.
Aula Prática 11 Operações com Arquivos Monitoria
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Paradigmas de Programação –Aula 7 Lab 2 Professores: Eduardo Mantovani Fábio Paula Santos.
Aula Prática 3 Funções Monitoria Introdução à Programação.
Construtores e Destrutores
Conceitos Básicos e Manipulação de Objetos
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
OO com Java Luiz Carlos d´Oleron Roteiro de aula.
2 – Revisão de Programação Orientada a Objetos
Aula Prática – F# Programação Funcional –
Módulo II Capítulo 1: Orientação a Objetos
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Array e ArrayList LPOO – 01/09/14.
Curso Básico de Android
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Linguagem de Programação
Tipos Compostos Heterogêneos e Tipos Abstratos de Dados
Padrões de Projeto 2 – Revisão de Programação Orientada a Objetos.
Programação para Internet Aula 06 Linguagem Java (Orientação a Objetos – Atributos e Métodos)
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Aula Prática 13 Orientação a Objeto Monitoria

Orientação a Objeto  O que é?  Paradigma de programação que se baseia na premissa de que todos os componentes de um programa podem ser tratados como “objetos”  Cada objeto possui determinadas características e comportamentos específicos (atributos e métodos)

Por que usar OO? Orientação à Objeto é mais:  Flexível  Extensível  Reusável  Organizada  Intuitiva

Objetos Tudo são objetos! Um programa é um conjunto de objetos interagindo e modificando seus estados através de métodos. Ex.: Objeto: DVD Método 1: Play Método 2: Pause Método 3: Voltar Método 4: Avançar

Objetos Métodos são como funções que atuam sobre os atributos de um objeto, modificando-os. Atributos são informações sobre um determinado objeto que mudam de acordo com uma ação executada (método). Avançar(10 s) 1:10:321:10:42 Tempo sendo modificado

C++ Objetivo: ○ Combinar o desempenho de C com as facilidades de linguagens de alto nível. ○ Oferecer uma melhor organização no desenvolvimento de projetos complexos. ○ Combinar paradigmas de programação para aumentar a liberdade do desenvolvedor. Ou seja: ○ Em grosso modo, C++ possui o desempenho de C (imperativa) combinado com as facilidades de JAVA (orientada a objeto)

Classes Uma classe representa um tipo de objeto Agrupa objetos com características em comum Assim como C possui structs, C++ possui classes

Classes As classes possuem: Atributos Métodos Que podem ser: Privados (Só são acessados por métodos da classe) Públicos (Podem ser manipulados diretamente)

Classes Em C++ os métodos são definidos na classe, porém são efetivamente implementados fora dela: No caso do método “Conta” (que é um construtor), não seria necessário definí-lo ou implementá-lo. C++ por padrão cria um construtor sem parâmetros. MAS O QUE É UM CONSTRUTOR?? O apontador this utilizado nesse construtor simplesmente guarda uma referência para o objeto que está sendo criado. Seu uso só é necessário quando existe uma variável local com o mesmo nome de um atributo da classe.

Construtor É um método especial que toda classe possui. Pode ser utilizado para criar um objeto de duas formas: Dinamicamente: É utilizado junto com o comando new na hora de criar um novo objeto pertencente à classe. Ex.:

Construtor Estaticamente: Note que, assim como uma estrutura utiliza o operador -> para estruturas criadas dinamicamente e o operador. para as estáticas, o mesmo acontece com os objetos.

Encapsulamento É uma técnica de programação que fornece uma maior robustez ao código que está sendo criado. Basicamente “protege” os atributos de modificações indesejadas. Funciona da seguinte forma: Atributos encapsulados são do tipo private São criados métodos para que eles possam ser acessados e modificados com segurança. Ex.: Não é possível remover uma quantia maior que o saldo. Como há encapsulamento, caso o saldo não seja suficiente para o saque, ele parmanece inalterado.

Streams Em C++, a entrada e saída de dados é efetuada através da biblioteca iostream Um “stream” representa um dispositivo de entrada ou saída, tal como o teclado e o console

Entrada Padrão Entrada padrão: cin A leitura é feita utilizando o operator shift right Exemplo: int a; cin >> a; Pode-se ler vários items de uma só vez Exemplo: int, a,b,c; cin >> a >> b >> c;

Entrada Padrão Saída padrão: cout A leitura é feita utilizando o operator shift left Exemplo: int a; cout << a; O comando endl pode ser usado para imprimir um \n Analogamente ao cin, pode-se imprimir vários items de uma só vez int, a,b,c; cout << “Numeros: “ << endl << a << “ “ << b << “ “ << c;

Dúvidas??

Exercício Crie uma classe para representar um inteiro, esta classe deve ser capaz de realizar as seguintes operações: 1) Atribuição de Adição (+=) 2) Atribuição de Subtração (-=) 3) Pre-Incremento (++?) O seguinte trecho de código deve funcionar corretamente: Inteiro a(10); Inteiro b; b.somar(a); b.somar(a.incrementar()); cout << "A: " << a.getValor() << endl; // Saída 11 cout << "B: " << b.getValor() << endl; // Saída 21

Exercício Crie uma classe em C++ que simule um serviço de agenda. Para isso você deve criar uma classe “Agenda” e uma classe “Compromisso”. A classe “Agenda” deve possuir os seguintes dados: -Nome do dono -Número telefônico - -Compromissos Você deve utilizar encapsulamento para criar métodos usados na modificação dos atributos. Além disso, a classe “Compromisso” deve possuir os atributos a seguir: -Data do compromisso -Informações sobre o compromisso Ao final, receba do usuário duas agendas com cada uma dois compromissos.