• Save
POO - 03 - Alocação de Memória em Java
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 3,779 views

 

Statistics

Views

Total Views
3,779
Views on SlideShare
3,779
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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 0Alocaçã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 2012Alocaçã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