Criação e manipulação de objetos

Slides:



Advertisements
Apresentações semelhantes
Classes e objetos P. O. O. Prof. Grace.
Advertisements

Classes, Objetos, Atributos e Métodos JAVA
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
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.
Noções de projeto orientado a objetos - camadas Prof. Gustavo Wagner (alterações) Prof. Tiago Massoni (Slides originais) Desenvolvimento de Sistemas FATEC-PB.
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Tratamento de exceções em Java Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de.
INE5408 Estruturas de Dados Ponteiros, passagem de parâmetros e modelos de memória.
CLASSES EM JAVA Dilvan Moreira (baseado no livro Big Java)
PROGRAMAÇÃO ORIENTADA A OBJETOS EM C++ Professor: Dilvan Moreira.
Estrutura de Dados (DPADF 0056) Aula 7 – Encadeamento de Memória Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior.
Respostas dos Exercícios. Lista 1 1.a) Escreva uma função que receba como parâmetro uma temperatura dada em graus Fahrenheit e retorna a temperatura.
Disciplina: Estrutura de Dados Professor: Jeovane Reges Caxias – MA 2015 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO.
Classes Objetos Atributos Métodos Coletor de Lixo (Garbage Collector ) Confraria do Java Nivelamento. Caroline, Marcelo e Luiz 12/05/2007.
Algoritmos e Programação utilizando Visualg
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal
Estruturas de Dados Aula 2: Estruturas Estáticas
Vetores e Laço de Repetição
Polimorfismo e suas aplicações em C++.
INF1007: Programação 2 2 – Alocação Dinâmica
Introdução OO.
OO – Engenharia Eletrônica
Apresentação do Laboratório Falar sobre as máquinas, 14 unidades
Estrutura de Dados Revisão
Agregador de Notícias e Eventos - UFPI
Introdução ao VisuALG Prof. Andrew Rodrigues
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introdução a testes unitários automatizados com JUnit.
Módulo I Capítulo 2: IDE e Variáveis
Introdução Java.
PROGRAMAÇÃO ORIENTADA A OBJETO - JAVA
3.1 Classes e Objetos Em um programa orientado a objetos normalmente existem vários objetos de um mesmo tipo. Por exemplo, um programa de controle de.
Java: Interfaces Alcides Calsavara.
Singleton e Template Method
Programador/a de Informática
Unidade IV– Relacionamento entre Objetos
Programação Orientada a Objetos
Não tem introdução vcs vai começar aprendendo: isso sempre é o que vem em primeiro no código: using System;  usa o sistema inicia ele using System.Collections.Generic;
Elaborando as Interfaces Aulas 37, 38 e 39.
Estruturas de Dados Dinâmicas
Programação Orientada a Objetos*
Rosemary Silveira Filgueiras Melo
Programação Orientada a Objetos*
3.2 Sobrecarga de Métodos (Overloading)
Rosemary Silveira Filgueiras Melo
Programação Orientada a Objetos
Pthreads – POSIX Threads
3.1.7 Variáveis de Classe e Instância
Programação Orientada a Objetos
Laboratório I Mateus Raeder.
Laboratório I Mateus Raeder.
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
DHD – Desenvolvimento em Hardware
Laboratório I Mateus Raeder.
Rosemary Silveira Filgueiras Melo
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Computação Eletrônica Vetores e Matrizes
Referências.
Leitura do teclado e Interface gráfica
Tipos Primitivos de Dados
Compilação de Linguagens OO
RESULUÇÃO DOS EXERCÍCIOS,
CALCULADORA CARACTERE E VARIÁVEIS COMPOSTAS OU VETORES EM JAVA
Programação Orientada a Objetos
Constantes, Variáveis e Memória
Operadores Lógicos e Relacionais
RESULUÇÃO DOS EXERCÍCIOS E
Programação de Computadores II
Transcrição da apresentação:

Criação e manipulação de objetos Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de Informática, UFPE

Nome da classe do objeto a ser criado Criação de objetos Um objeto é criado através do operador new new Conta() Palavra reservada ordenando a criação de um objeto Nome da classe do objeto a ser criado

Avaliação do operador new Para avaliar uma expressão do tipo new NomeDaClasse() o computador... Cria um objeto da classe NomeDaClasse e armazena na sua memória Inicializa os atributos com valores default Devolve como resultado da avaliação uma referência para o objeto criado

Inicialização (tenho que fazer isso sempre?) Criando objetos Qual é o saldo? Conta c = null; c = new Conta(); double saldo = c.getSaldo(); c.setNumero(21); c.setSaldo(300); Inicialização (tenho que fazer isso sempre?)

Além de métodos e atributos... O corpo de uma classe pode conter construtores para inicializar os atributos dos objetos public NomeDaClasse (Parâmetros) { CorpoDoConstrutor } Informações necessárias para inicialização Instruções para a inicialização

Primeiro construtor (s/ parâmetros) class Conta { private int numero; private double saldo; private Cliente titular; ... public Conta() { saldo = 0; numero = 0; titular = null; } Java já cria este construtor automaticamente

Outro construtor class Conta { ... public Conta(int numero,double saldo, Cliente titular) { this.numero = numero; this.saldo = saldo; this.titular = titular; }

Usando o construtor Conta c = null; Cliente tit = new Cliente(); ... c = new Conta(20,20.0,tit); double saldo = c.getSaldo(); E se tentarmos usar new Conta(); ??

Sobrecarga class Conta { ... public Conta() { this.numero = 0; … } Como diferenciar?? class Conta { ... public Conta() { this.numero = 0; … } public Conta(int numero,double saldo, Cliente titular) { this.numero = numero; this.saldo = saldo; this.titular = titular;

Manipulando objetos Armazenar a referência para o objeto, para depois ter acesso à mesma Executar (invocar ou chamar) os métodos do objeto através da sua referência Passar a referência para o objeto como argumento de um método ou construtor

Main é uma possível usuário de objetos Conta e Cliente Passando mensagens Main é uma possível usuário de objetos Conta e Cliente class Programa { public static void main(String [] args) { Conta c = null; c = new Conta(32,50.0,new Cliente()); c.creditar(50.0); … }

Passando referências class Programa { public static void main(String [] args) { Conta c = null; Cliente cli = new Cliente(); c = new Conta(32,50.0,cli); c.creditar(50.0); … }

Mais de uma variável armazenando a referência para um dado objeto Aliasing Mais de uma variável armazenando a referência para um dado objeto Conta a = new Conta(“12-7”,34.00); Conta b; b = a; b.creditar(100); console.println(a.getSaldo()); a e b passam a referenciar o mesmo objeto qualquer efeito via b é refletido via a

Remoção de objetos Não existe mecanismo de remoção explícita de objetos da memória em Java (delete de C++) O coletor de lixo automático de Java elimina estes objetos da memória quando não são mais referenciados Processo de baixa prioridade da máquina virtual que permite melhor aproveitamento dos recursos (memória)

Coleta automática de lixo! Remoção de objetos Apontar referências para null Conta c; c = new Conta(); c.getSaldo(); c = null; c == null c Coleta automática de lixo! Chama método do objeto “apontado” por c

Tempo de execução e referência null Conta c= null; c = new Conta(); c = null; c.getSaldo(); c == null c c == null Erro de execução, mas não de compilação! NullPointerException

Variáveis estáticas Classe Conta Podem ser vistas como variáveis public class Conta { ... private static int proximoNum = 1; Classe Conta proxNum = 5 Podem ser vistas como variáveis globais, fugindo do paradigma orientado a objetos...

Aula Prática Orientação a Objetos 2

Atividades Importem as classes da atividade anterior Criar uma classe Programa, que vai conter um método main Criar construtores para as classes Conta e Cliente Criar variável estática em conta - proximoNumero

Atividades O main deve Pegar entrada do usuário (cpf, nome, saldo inicial) Criar 1 cliente e 1 conta com aquele titular (número deverá ser gerado por uma variável estática) Fazer um crédito com o valor novamente pedido ao usuário Mostrar informações da conta na tela Programa deve aguardar entrada de novos dados continuamente, até o usuário pedir para parar