SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
Programação Orientada a Objetos



   Alocação de Memória em Java

     Criação de Objetos e Alocação de Memória




            Ludimila Monjardim Casagrande
                        2012
Alocação de Memória em Java

     Toda vez que uma variável é declarada um espaço
         de memória é alocado para a mesma e, quando ela
         é inicializada, nesse espaço é armazenado seu
         valor:
           int x;    x    ?

           x = 0;    x    0


     Se o tipo da variável não for de um dos tipos
         primitivos, então, ela é uma referência para um
         objeto.

Alocação de Memória       ©2012 Ludimila Monjardim Casagrande   2
Alocação de Memória em Java

     Quando uma referência para um objeto é
         declarada, um espaço de memória também é
         alocado para a mesma:
           Data d;   d       ?


     Para fins didáticos, podemos considerar que
         uma referência para um objeto é o endereço de
         memória no qual o objeto está alocado.
     A referência é o elemento que permite que um
         determinado objeto seja acessado.
Alocação de Memória       ©2012 Ludimila Monjardim Casagrande   3
Alocação de Memória em Java

     Após definirmos uma classe, podemos criar
         objetos a partir dela.

     Os objetos quando criados são alocados na
         memória RAM do computador.

     Felizmente, todo o processo de alocação do
         objeto na memória é gerenciado pela máquina
         virtual Java (JVM).



Alocação de Memória      ©2012 Ludimila Monjardim Casagrande   4
Alocação de Memória em Java

     Quando um objeto é criado, pela chamada de new
         <construtor>, os seguintes passos acontecem:
           um espaço de memória é alocado para o objeto
            criado e suas variáveis de instância são inicializadas
            com seus valores default;
           as inicializações explícitas programadas para as
            variáveis de instância são realizadas;
           o construtor chamado é executado;
           o endereço de memória no qual o objeto está alocado
            é retornado e atribuído para a variável que referencia
            o objeto.
Alocação de Memória        ©2012 Ludimila Monjardim Casagrande       5
Exemplo
                                          public class Principal{
                                            public static void main (String[ ] args) {
public class Data {                             Data hoje = new Data(12, 11, 2012);
    private int dia = 1;
                                            }
    private int mes = 1;
    private int ano = 1800;               }

     public Data (int d, int m, int a){
       if((d >= 1 && d <= 31) &&
          (m >= 1 && m <= 12) &&
          (a >= 1800 && a <= 2100)){
            this.dia = d;
            this.mes = m;
            this.ano = a;
        } else {
            System.out.println("Erro: Data inválida.");
        }
     }
}
Alocação de Memória              ©2012 Ludimila Monjardim Casagrande                     6
Alocação de Memória em Java

     Passo 1:
           A declaração aloca espaço para a referência e a
            chamada do construtor aloca espaço para o
            objeto criado:
              Data hoje = new Data(12, 11, 2012);

              hoje    ?

              dia     0
                                    As variáveis de instância são inicializadas
              mes     0
                                    com os valores default
              ano     0



Alocação de Memória        ©2012 Ludimila Monjardim Casagrande                    7
Alocação de Memória em Java

     Passo 2:
           As inicializações explícitas das variáveis de
            instância são executadas:
              Data hoje = new Data(12, 11, 2012);

                 hoje    ?                            public class Data {
                                                         private int dia = 1;
                 dia      1                              private int mes = 1;
                 mes      1                              private int ano = 1800;
                 ano    1800                             ...
                                                      }


Alocação de Memória            ©2012 Ludimila Monjardim Casagrande                 8
Alocação de Memória em Java

     Passo 3:
           O construtor chamado é executado:
              Data hoje = new Data(12, 11, 2012);
                                         public Data (int d, int m, int a){
              hoje     ?
                                            if((d >= 1 && d <= 31) &&
                                               (m >= 1 && m <= 12) &&
              dia      12
                                               (a >= 1800 && a <= 2100)){
              mes      11
              ano                                this.dia = d;
                      2012
                                                 this.mes = m;
                                                 this.ano = a;
                                           } else {
                                                 System.out.println("Erro: Data inválida.");
                                           }
                                         }
Alocação de Memória          ©2012 Ludimila Monjardim Casagrande                           9
Alocação de Memória em Java

     Passo 4:
           O endereço de memória no qual o objeto está
            alocado é retornado e atribuído para a variável
            que referencia o objeto:
              Data hoje = new Data(12, 11, 2012);

              hoje    0x0123

              dia      12
              mes      11
              ano     2012



Alocação de Memória            ©2012 Ludimila Monjardim Casagrande   10
Teste
                                                              Após Data b = a;
   public class Teste {
                                                             x         8
        public static void main(String[] args) {             y         7
                                                             a      0x0123
            int x = 7;                                                           21 10 2006
                                                             b      0x0123
            int y = x;
            x = 8;
            Data a = new Data(21, 10, 2006);
            Data b = a;                                       Após a = new Data(28, 10,2006);
                                                             x         8
            a = new Data(28, 10, 2006);                                7
                                                             y
        }                                                    a      0x0456       28 10 2006
   }                                                         b      0x0123
                                                                                 21 10 2006
   Quais são os resultados finais?



Alocação de Memória           ©2012 Ludimila Monjardim Casagrande                         11
Atividade Prática

     Ler o Capítulo 3 da apostila Orientação a
         Objetos em Java da K19 Treinamentos e fazer
         os exercícios de fixação.




Alocação de Memória    ©2012 Ludimila Monjardim Casagrande   12

Mais conteúdo relacionado

Mais procurados

Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesLeinylson Fontinele
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)Armando Daniel
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizesArmando Daniel
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoLeinylson Fontinele
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e bináriasSérgio Souza Costa
 
SO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosSO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosEduardo Nicola F. Zagari
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em PythonRober Guerra
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 

Mais procurados (20)

Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Ficheiros em JAVA
Ficheiros em JAVAFicheiros em JAVA
Ficheiros em JAVA
 
Aula 05 derivadas - conceitos iniciais
Aula 05   derivadas - conceitos iniciaisAula 05   derivadas - conceitos iniciais
Aula 05 derivadas - conceitos iniciais
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
Java vetores e matrizes
Java   vetores e matrizesJava   vetores e matrizes
Java vetores e matrizes
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e binárias
 
Tipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e EncapsulamentoTipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e Encapsulamento
 
HeapSort
HeapSortHeapSort
HeapSort
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
SO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosSO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de Processos
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Iniciando em Python
Iniciando em PythonIniciando em Python
Iniciando em Python
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
POO - Aula 09 - Herança
POO - Aula 09 - HerançaPOO - Aula 09 - Herança
POO - Aula 09 - Herança
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 

Destaque

Gerência de Memória em Java - Parte III (2005)
Gerência de Memória em Java - Parte III (2005)Gerência de Memória em Java - Parte III (2005)
Gerência de Memória em Java - Parte III (2005)Helder da Rocha
 
Exercicio classes
Exercicio classesExercicio classes
Exercicio classesfeiosanelma
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objetoGleyciana Garrido
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)jose-junior89
 
Exercicios Analise e Desenvolvimento de projetos
Exercicios Analise e Desenvolvimento de projetosExercicios Analise e Desenvolvimento de projetos
Exercicios Analise e Desenvolvimento de projetosRoberto Ferreira
 
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesAdriano Teixeira de Souza
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercíciosGuilherme
 
Plano de Ação para Atendimento aos Requisitos dos Clientes
Plano de Ação para Atendimento aos Requisitos dos ClientesPlano de Ação para Atendimento aos Requisitos dos Clientes
Plano de Ação para Atendimento aos Requisitos dos ClientesYthia Karla
 
Baixo Acoplamento e Alta Coesão
Baixo Acoplamento e Alta CoesãoBaixo Acoplamento e Alta Coesão
Baixo Acoplamento e Alta Coesãocelodemelo
 
Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)escoteirodabahia
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosLudimila Monjardim Casagrande
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 

Destaque (20)

POO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - DatasPOO - 24 - Classes Básicas do Java - Datas
POO - 24 - Classes Básicas do Java - Datas
 
Gerência de Memória em Java - Parte III (2005)
Gerência de Memória em Java - Parte III (2005)Gerência de Memória em Java - Parte III (2005)
Gerência de Memória em Java - Parte III (2005)
 
Testes de carga com j meter
Testes de carga com j meterTestes de carga com j meter
Testes de carga com j meter
 
Lod law of demeter
Lod law of demeterLod law of demeter
Lod law of demeter
 
3 orientacao-objetos
3 orientacao-objetos3 orientacao-objetos
3 orientacao-objetos
 
Exercicio classes
Exercicio classesExercicio classes
Exercicio classes
 
ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01
 
Exercícios de programação orientado a objeto
Exercícios de programação orientado a objetoExercícios de programação orientado a objeto
Exercícios de programação orientado a objeto
 
Orientação a Objetos (2)
Orientação a Objetos (2)Orientação a Objetos (2)
Orientação a Objetos (2)
 
Padrões de design orientado a objetos
Padrões de design orientado a objetosPadrões de design orientado a objetos
Padrões de design orientado a objetos
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
 
Exercicios Analise e Desenvolvimento de projetos
Exercicios Analise e Desenvolvimento de projetosExercicios Analise e Desenvolvimento de projetos
Exercicios Analise e Desenvolvimento de projetos
 
Estrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e FunçõesEstrutura de Dados - Procedimentos e Funções
Estrutura de Dados - Procedimentos e Funções
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Plano de Ação para Atendimento aos Requisitos dos Clientes
Plano de Ação para Atendimento aos Requisitos dos ClientesPlano de Ação para Atendimento aos Requisitos dos Clientes
Plano de Ação para Atendimento aos Requisitos dos Clientes
 
Baixo Acoplamento e Alta Coesão
Baixo Acoplamento e Alta CoesãoBaixo Acoplamento e Alta Coesão
Baixo Acoplamento e Alta Coesão
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 

Mais de Ludimila Monjardim Casagrande

Mais de Ludimila Monjardim Casagrande (19)

Gerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com ScrumGerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com Scrum
 
POO - 23 - Coleções da API do Java
POO -  23 - Coleções da API do Java POO -  23 - Coleções da API do Java
POO - 23 - Coleções da API do Java
 
POO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em JavaPOO - 22 - Tratamento de Exceções em Java
POO - 22 - Tratamento de Exceções em Java
 
POO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de DadosPOO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de Dados
 
POO - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de ArgumentosPOO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
POO - 12 - A Classe Object
POO - 12 - A Classe ObjectPOO - 12 - A Classe Object
POO - 12 - A Classe Object
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
POO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em JavaPOO - 09 - Entradas e Saídas em Java
POO - 09 - Entradas e Saídas em Java
 
POO - 08 - Prática de Encapsulamento
POO - 08 - Prática de EncapsulamentoPOO - 08 - Prática de Encapsulamento
POO - 08 - Prática de Encapsulamento
 
POO - 07 - Operadores do Java
POO - 07 - Operadores do  JavaPOO - 07 - Operadores do  Java
POO - 07 - Operadores do Java
 
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de DesenvolvimentoPOO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
 
POO - 04 - Variávies em Java
POO - 04 - Variávies em JavaPOO - 04 - Variávies em Java
POO - 04 - Variávies em Java
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 

POO - 03 - Alocação de Memória em Java

  • 1. Programação Orientada a Objetos Alocação de Memória em Java Criação de Objetos e Alocação de Memória Ludimila Monjardim Casagrande 2012
  • 2. Alocação de Memória em Java  Toda vez que uma variável é declarada um espaço de memória é alocado para a mesma e, quando ela é inicializada, nesse espaço é armazenado seu valor:  int x; x ?  x = 0; x 0  Se o tipo da variável não for de um dos tipos primitivos, então, ela é uma referência para um objeto. Alocação de Memória ©2012 Ludimila Monjardim Casagrande 2
  • 3. Alocação de Memória em Java  Quando uma referência para um objeto é declarada, um espaço de memória também é alocado para a mesma:  Data d; d ?  Para fins didáticos, podemos considerar que uma referência para um objeto é o endereço de memória no qual o objeto está alocado.  A referência é o elemento que permite que um determinado objeto seja acessado. Alocação de Memória ©2012 Ludimila Monjardim Casagrande 3
  • 4. Alocação de Memória em Java  Após definirmos uma classe, podemos criar objetos a partir dela.  Os objetos quando criados são alocados na memória RAM do computador.  Felizmente, todo o processo de alocação do objeto na memória é gerenciado pela máquina virtual Java (JVM). Alocação de Memória ©2012 Ludimila Monjardim Casagrande 4
  • 5. Alocação de Memória em Java  Quando um objeto é criado, pela chamada de new <construtor>, os seguintes passos acontecem:  um espaço de memória é alocado para o objeto criado e suas variáveis de instância são inicializadas com seus valores default;  as inicializações explícitas programadas para as variáveis de instância são realizadas;  o construtor chamado é executado;  o endereço de memória no qual o objeto está alocado é retornado e atribuído para a variável que referencia o objeto. Alocação de Memória ©2012 Ludimila Monjardim Casagrande 5
  • 6. Exemplo public class Principal{ public static void main (String[ ] args) { public class Data { Data hoje = new Data(12, 11, 2012); private int dia = 1; } private int mes = 1; private int ano = 1800; } public Data (int d, int m, int a){ if((d >= 1 && d <= 31) && (m >= 1 && m <= 12) && (a >= 1800 && a <= 2100)){ this.dia = d; this.mes = m; this.ano = a; } else { System.out.println("Erro: Data inválida."); } } } Alocação de Memória ©2012 Ludimila Monjardim Casagrande 6
  • 7. Alocação de Memória em Java  Passo 1:  A declaração aloca espaço para a referência e a chamada do construtor aloca espaço para o objeto criado: Data hoje = new Data(12, 11, 2012); hoje ? dia 0 As variáveis de instância são inicializadas mes 0 com os valores default ano 0 Alocação de Memória ©2012 Ludimila Monjardim Casagrande 7
  • 8. Alocação de Memória em Java  Passo 2:  As inicializações explícitas das variáveis de instância são executadas: Data hoje = new Data(12, 11, 2012); hoje ? public class Data { private int dia = 1; dia 1 private int mes = 1; mes 1 private int ano = 1800; ano 1800 ... } Alocação de Memória ©2012 Ludimila Monjardim Casagrande 8
  • 9. Alocação de Memória em Java  Passo 3:  O construtor chamado é executado: Data hoje = new Data(12, 11, 2012); public Data (int d, int m, int a){ hoje ? if((d >= 1 && d <= 31) && (m >= 1 && m <= 12) && dia 12 (a >= 1800 && a <= 2100)){ mes 11 ano this.dia = d; 2012 this.mes = m; this.ano = a; } else { System.out.println("Erro: Data inválida."); } } Alocação de Memória ©2012 Ludimila Monjardim Casagrande 9
  • 10. Alocação de Memória em Java  Passo 4:  O endereço de memória no qual o objeto está alocado é retornado e atribuído para a variável que referencia o objeto: Data hoje = new Data(12, 11, 2012); hoje 0x0123 dia 12 mes 11 ano 2012 Alocação de Memória ©2012 Ludimila Monjardim Casagrande 10
  • 11. Teste Após Data b = a; public class Teste { x 8 public static void main(String[] args) { y 7 a 0x0123 int x = 7; 21 10 2006 b 0x0123 int y = x; x = 8; Data a = new Data(21, 10, 2006); Data b = a; Após a = new Data(28, 10,2006); x 8 a = new Data(28, 10, 2006); 7 y } a 0x0456 28 10 2006 } b 0x0123 21 10 2006 Quais são os resultados finais? Alocação de Memória ©2012 Ludimila Monjardim Casagrande 11
  • 12. Atividade Prática  Ler o Capítulo 3 da apostila Orientação a Objetos em Java da K19 Treinamentos e fazer os exercícios de fixação. Alocação de Memória ©2012 Ludimila Monjardim Casagrande 12