Construtores. Introdução

Documentos relacionados
Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Interfaces e Classes Abstratas

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Programação Java. Linguagem de Programação Java

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista

Sobrecarga, Sobreposição e Polimorfismo

Linguagem de Programação II Implementação

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU

Construtores e Especificadores de Acesso

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

Auto-Referenciamento e Herança

Estrutura de Dados Funções e Procedimentos

PCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015

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

Modularidade - Funções e Procedimentos

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

BCC202 - Estrutura de Dados I

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

== Exercícios 3 == == Respostas ==

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Aula 24: Ponteiros e Alocação Dinâmica

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/54

Aula 9 POO 1 Polimorfismo. Profa. Elaine Faria UFU

Técnicas de Programação:

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Aula 25: Alocação Dinâmica

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

Matrizes. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 67

Linguagem de Programação C++

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores. Empacotador de Pré-processador. Empacotador de. Primeiro Exemplo Usando Classes em C++

C com introdução a OO

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi

Programação Orientada a Objetos CLASSES E OBJETOS

Aula 27: Estruturas heterogêneas e alocação dinâmica

Linguagem de Programação C++

Procedimentos e Funções

Linguagem de Programação III

13/11/15. Incrementando C: C++ E na especificação de BigInt... Arquitetura da solução exemplo. O arquivo de declarações. Explorando a classe BigInt

Conceitos Básicos da Programação OO

Ponteiros. Introdução

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista

Instituto de Informática Estrutura de Dados II

Estrutura de dados 1. Ponteiros

Física Computacional 7 Classes

Programação: Vetores

Programação Orientada a Objetos

Classes, Métodos e Propriedades

Programação Orientada a Objetos II

Programação I 2º Bimestre (material 1)

Introdução ao Java. Prof. Herbert Rausch Fernandes

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Fundamentos de Programação

mos também representar entidades imaginárias, tais como um evento de pressionar o mouse no ambiente Windows.

//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void

Programação Orientada a Objetos (DPADF 0063)

Alocação Dinâmica. Introdução à Computação

Fundamentos de Programação 2

Linguagem de Programação Introdução a Orientação a Objetos

Programação Orientada a Objetos

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

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

REVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

INSTRUÇÕES DE REPETIÇÃO

Curso: Técnico em Informática Integrado Disciplina: POO Carga horária: 60h Período: 2º Ano Professor: Edmilson Barbalho Campos Neto LISTA 02.

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

Programação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio

Conversão de Tipos. BCC Programação Orientada a Objectos(POO)

Aula 3 POO 1 Classe e Objeto. Profa. Elaine Faria UFU

Namespaces, Classes e Métodos.

Array em Java. Figura 1 - Exemplo de um array de inteiros

Procedimentos e Funções

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.

Classes e Objetos. Sintaxe de classe em Java

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Alocação Dinâmica. Túlio Toffolo BCC202 Aula 02 Algoritmos e Estruturas de Dados I

C++ Orientado a Objetos

Introdução aos Algoritmos

Orientação a Objetos Básica

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

LISTA DE EXERCÍCIOS 2

Lista de Linguagens de Programação 14

Exercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Aula 25: Alocação Dinâmica

- Mapa de memória de um processo - Ponteiros

Alocação Dinâmica em C

Transcrição:

Construtores José Gustavo de Souza Paiva Introdução Até o momento, temos tratado a inicialização dos atributos das classes de duas maneiras Alteração dos valores dos atributos diretamente - atributos públicos - ruim! Criação de métodos do tipo "cadastra" - método pode ser chamado a qualquer momento Métodos to tipo set - adequados para alterações A ideia é determinar os valores dos atributos no momento de criação dos objetos - valor inicial dos atributos 1

Construtores Métodos especiais de uma classe, utilizados para INICIALIZAR parâmetros e EXECUTAR PROCEDIMENTOS de inicialização Distinguem-se de outros métodos por possuírem o mesmo nome da classe Uma classe pode possuir mais de um construtor Toda classe vem com um construtor padrão, que não inicializa nenhum atributo e nem realiza nenhuma operação Construtores Se um construtor for criado para uma classe, seu construtor padrão será excluído, e ficarão valendo apenas os construtores criados Apesar de permitido a uma classe possuir mais de um construtor, eles não podem possuir os mesmos tipos de parâmetros na mesma ordem 2

Construtores Construtores NÃO RETORNAM nenhum tipo de dado, nem void Se uma classe não incluir um construtor, os atributos dos objetos dessa classe serão inicializados com seus valores padrão É interessante que o programador forneça sempre um construtor para uma classe Segurança de que todos os atributos sejam inicializados corretamente, de acordo com as regras de uma aplicação Exemplo 1 Conta 3

Exemplo 1 Conta Perceba que a classe Conta possui dois construtores Todos possuem o mesmo nome, que por sua vez é o mesmo nome da classe Eles possuem parâmetros de tipos diferentes O primeiro inicializa o número da conta, assim que é chamado O segundo inicializa o nome do correntista, assim que é chamado Exemplo 1 Conta 4

Exemplo 1 Conta O caso mostrado no slide anterior acusará um erro! Por que? Exemplo 1 Conta Os construtores são chamados para construir um objeto de uma determinada classe Construir: alocar memória para o objeto sendo criado Dessa maneira, são chamados quando utilizamos o seguinte comando: 5

Exemplo 1 Conta Desta forma, para o exemplo apresentado, teremos Exercício Para a classe conta, crie um construtor para que, ao iniciar um objeto dessa classe, já sejam determinados o nome do correntista, seu número de conta, sua senha, e que o seu saldo seja de 500 reais 6

Destrutores Métodos invocados para finalizar determinado objeto Liberação de memória Finalização de dispositivos ou subsistemas Java Objetos descartados pelo Coletor de Lixo Método finalize() torna um determinado objeto candidato a ser descartado Utilizado para desalocar recursos adicionais C++ Método explicitamente criado pelo programador Apenas um por classe Exemplo de Destrutor - C++ class vector { int sz; // número de elementos int* v; // ponteiro para inteiros public: vector(int); // construtor ~vector(); // destrutor }; // Construtor vector::vector (int s) { if (s<=0) { cout << "Bad Vector Size"; return; } sz = s; v = new int[s]; // aloca um vetor de inteiros cout << "\n Construtor"; } 7

Exemplo de Destrutor - C++ // Destrutor vector::~vector() { delete [] v; // desaloca o vetor apontado por v cout << "\n Destrutor"; } // Função Principal void main() { vector v(10); } Exemplo 2 Máquina de Defina uma classe Maquina de, que represente uma máquina de emissão de passagens de ônibus, na qual o usuário insere dinheiro na máquina, e ela imprime e emite a passagem respectiva Considere que o preço do bilhete é R$2,00. Considere que a máquina aceite apenas notas de R$1,00 e de R$2,00. Considere também que os usuários não irão inserir outras notas A classe deverá ter os seguintes atributos: Preço (representando o preço da passagem); Quantidade Inserida (representando quanto o cliente já inseriu na máquina para determinada compra); Total (representando o total de dinheiro já inserido na máquina, desde que ela foi ligada, até o atual momento); 8

Exemplo 2 Máquina de Escreva métodos que representem a inserção de dinheiro e a emissão de passagens Lembre-se que a máquina só emitirá a passagem caso o dinheiro total correspondente ao preço da passagem seja inserido Caso o dinheiro inserido não seja suficiente, a máquina deve avisar ao usuário quanto de dinheiro falta para ser inserido Assim que o dinheiro total é inserido, a máquina automaticamente emite a passagem Escreva métodos que permitam à máquina mostrar ao usuário o preço da passagem Exemplo 2 Máquina de Problema: como representar no sistema que o preço da passagem é R$2,00? Duas maneiras: Fixo no código: solução ruim! Atributo: flexibilização Construtor pode auxiliar 9

Exemplo 2 Máquina de Exemplo 2 Máquina de Observe que o construtor pode ser melhorado Do jeito que está, o preço das passagens será sempre R$2,00 E se quisermos criar várias máquinas, cada uma com um preço diferente para a passagem? 10

Exemplo 2 Máquina de Referências DEITEL, H. M., DEITEL, P. J., Java: Como Programar, Bookman, São Paulo, 2002 BARNES, D. J., KOLLING, M., Programação Orientada a Objetos com Java, 2004, ISBN: 8576050129 11