Classes Objetos Atributos Métodos Coletor de Lixo (Garbage Collector ) Confraria do Java Nivelamento. Caroline, Marcelo e Luiz 12/05/2007.

Slides:



Advertisements
Apresentações semelhantes
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Advertisements

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.
Linguagens de Programação Conceitos e Técnicas Variáveis Prof. Isabel Cafezeiro
Programação em Java RMI - Remote Method Invocation Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Modelagem Orientada a Objetos com UML Cursos para a CTI - IME/USP Dairton Bassi, Hugo Corbucci e Mariana Bravo Departamento de Ciência.
Programação em Java Tratamento de Exceções Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel.
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.
Disciplina: Estrutura de Dados Professor: Jeovane Reges Caxias – MA 2015 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO.
Algoritmos e Programação Prof. Marcos Saúde
Vetores e Laço de Repetição
Polimorfismo e suas aplicações em C++.
Fundamentos de Programação 1
INF1007: Programação 2 2 – Alocação Dinâmica
Introdução OO.
Linguagens de Programação Conceitos e Técnicas
INE5408 Estruturas de Dados
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.
Programador/a de Informática
FUNDAMENTO DE PROGRAMAÇÃO
CONCEITO DE VARIÁVEIS ESTÁTICAS
Criação e manipulação de objetos
Edson Susumu Asaga JavaBeans Edson Susumu Asaga
Algoritmos e Técnicas CEFET/RN.
Programação Orientada a Objetos
Listas Encadeadas.
Desenvolvimento de Sistemas Orientados a Objetos
Aula 22 Modularização 22/10/08.
Fundamentos de Programação 1
Elaborando as Interfaces Aulas 37, 38 e 39.
Remote Method Invocation
Estruturas de Dados Dinâmicas
Programação Orientada a Objetos*
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
Rosemary Silveira Filgueiras Melo
Programação Orientada a Objetos
3.1.7 Variáveis de Classe e Instância
Programação Orientada a Objetos
Laboratório I Mateus Raeder.
Orientação a Objetos - Programação em C++
Prof.: Bruno Rafael de Oliveira Rodrigues
Laboratório I Mateus Raeder.
Rosemary Silveira Filgueiras Melo
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Referências.
Estruturas de Dados em C
Leitura do teclado e Interface gráfica
Tipos Primitivos de Dados
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Compilação de Linguagens OO
RESULUÇÃO DOS EXERCÍCIOS,
Ordenando Coleções A Classe Collections.
A interface java.util.List
Linguagem de Programação
Fundamentos de Programação 1
Programação II Mateus Raeder.
CALCULADORA CARACTERE E VARIÁVEIS COMPOSTAS OU VETORES EM JAVA
Programação Orientada a Objetos
Constantes, Variáveis e Memória
RESULUÇÃO DOS EXERCÍCIOS E
Percorrendo coleções com Iterator
Programação de Computadores II
Transcrição da apresentação:

Classes Objetos Atributos Métodos Coletor de Lixo (Garbage Collector ) Confraria do Java Nivelamento. Caroline, Marcelo e Luiz 12/05/2007

CLASSE É um modelo abstrato, a partir do qual serão criadas instâncias desta classe, contendo os métodos e os dados nela definidos. A classe é um modelo, que define as propriedades e comportamento que um grupo de objetos possui em comum.

Exemplo: class Pessoa { String nome; int idade; String telefone; void aniversario(){ idade ++; } String infomarTelefone(){ return telefone; } Atributos Métodos

ATRIBUTOS São itens que identificam um objeto. Por exemplo: Todos os objetos pessoa possuem as propriedades: nome, idade, telefone,...

OBJETOS São instâncias de uma classe. Cada objeto de uma classe tem a mesma estrutura de dados e operações. Entretanto os valores mantidos nesta estrutura de dados são únicos para cada objeto.

Exemplo: Pessoa pessoa=new Pessoa(); A partir de agora meu objeto pessoa pode ser utilizado para guardar dados. Eu posso incluir dados assim: pessoa.nome=“João”; pessoa.idade=33; pessoa.telefone=“ ”;

MÉTODOS São as ações que podem ser realizadas pelo objeto. Um método em Java é equivalente a uma função em outras linguagens, com a diferença que ele deve ser definido dentro da declaração da classe.

Exemplo: class Pessoa { String nome; int idade; String telefone; void aniversario(){ idade ++; } String informarTelefone(){ return telefone; } Método que aumenta em 1 ano a idade de uma pessoa Método que retorna o valor da variável telefone

Agora, para um teste, poderíamos fazer: Pessoa pessoa = new Pessoa(); pessoa.nome = "Joao"; pessoa.idade = 33; pessoa.telefone = “ "; System.out.println ("Idade antiga"+pessoa.idade); pessoa.aniversario(); System.out.println ("Nova idade"+pessoa.idade); //Perceba que o valor da idade foi alterado System.out.println(“Telefone=“ + pessoa.informarTelefone()); //Perceba que o valor do telefone foi retornado pela função

GARBAGE COLLECTOR O coletor tem um conceito de funcionamento bem simples. Se não houver qualquer referência a um objeto que tenha sido criado na memória, o coletor de lixo destrói o objeto e libera a memória ocupada por ele.

O coletor de lixo é executado de tempos em tempos. Quando a JVM (Máquina Virtual Java) percebe que o sistema diminuiu a utilização do processador, ele libera o coletor de lixo, que vasculha a memória em busca de algum objeto criado e não referenciado. GARBAGE COLLECTOR

Liberando um objeto Uma maneira de tornar um objeto candidato a ser retirado da memória pelo coletor de lixo é atribuindo o valor null a sua referência. Com isso, o objeto torna-se não referenciado e pode ser retirado da memória pelo coletor de lixo.

GARBAGE COLLECTOR Exemplo de liberação de memória import java.util.*; class GarbageExample { private static Vector vetor; public static void main(String args) { vetor = new Vector(); for (int a=0; a < 500; a++) vetor.addElement(new StringBuffer("teste")); Runtime rt = Runtime.getRuntime(); System.out.println("Memória Livre: " +rt.freeMemory()); // mostra a memória livre vetor = null; // atribui nulo para a variável “vetor” System.gc(); // faz a chamada explícita do coletor de lixo System.out.println("Memória Livre: " + rt.freeMemory()); // mostra a memória livre }

Criando Objetos class Principal { public static void main (String[ ] args) { Carro c1 = new Carro(); System.out.println(“Id do objeto c1 = “ + c1); c1. ano = 2005; Carro c2 = new Carro(); System.out.println(“Id do objeto c2 = “ + c2); c2 = c1; // Cuidado ! System.out.println(“Id do objeto c2 = “ + c2); c1 = new Carro(); // Cuidado ! System.out.println(“Id do objeto c1 = “ + c1); }

Criando Objetos Observações: –Atribuições entre variáveis que são referências à objetos (c2 = c1) faz com que haja um redirecionamento dos ponteiros de memória (c2 e c1 passam a apontar para a mesma área e o objeto referenciado por c2 fica “perdido no espaço”) –Utilizar a mesma variável para a criação de outro objeto (c1 = new Carro()) faz com que a referência ao objeto inicial seja redirecionada à nova área de memória (o objeto referenciado por c1 fica “perdido no espaço”)