POO - 15 - Passagem de Argumentos

866
-1

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
866
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

POO - 15 - Passagem de Argumentos

  1. 1. Programação Orientada a Objetos Passagem de Argumentos Ludimila Monjardim Casagrande 2012
  2. 2. Passagem de Argumentos  Em Java os argumentos só são passados por valor, isto é, não existe passagem de argumentos por referência.  Quando um argumento é passado para um método, na prática o que é passado é uma cópia do valor do argumento.Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 2
  3. 3. Passagem de Argumentos  Considere o seguinte método: public void incrementa5(int numero) { numero += 5; } Uma cópia do valor de x é int x = 0; passada como argumento incrementa5(x); para o método. System.out.println(“Agora x é: ” + x); Qual é o resultado impresso na tela?Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 3
  4. 4. Passagem de Argumentos  Nesse caso, para que o valor da variável x realmente seja alterado, o método deve retornar seu resultado e esse resultado deve ser atribuído à variável x. public int incrementa5(int numero){ return numero += 5; } int x = 0; x = incrementa5(x); System.out.println(“Agora x é: ” + x);Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 4
  5. 5. Passagem de Argumentos  Quando um objeto é passado como um argumento de um método, na prática o valor do argumento é uma cópia da referência para esse objeto.  Fazendo uso dessa referência dentro do método, é possível alterar o conteúdo do objeto referenciado, mas a referência original em si nunca será modificada pelo método.Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 5
  6. 6. Passagem de Argumentos public class Cor { Qual é o resultado impresso na tela? public String cor; public Cor(String c){ this.cor = c; } 2 public static void substitua(Cor novaCor){ 3 novaCor = new Cor("Verde"); } public String getCor(){ return cor; } public static void main(String[] args) { Cor c1; 1 c1 = new Cor("Azul"); substitua(c1); System.out.println(c1.getCor()); } }Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 6
  7. 7. Passagem de Argumentos public class Cor { Qual é o resultado impresso na tela? public String cor; public Cor(String c){ c1 0x0123 this.cor = c; Passo 1: } cor Azul 2 public static void substitua(Cor novaCor){ 3 novaCor = new Cor("Verde"); } public String getCor(){ return cor; } public static void main(String[] args) { Cor c1; 1 c1 = new Cor("Azul"); substitua(c1); System.out.println(c1.getCor()); } }Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 7
  8. 8. Passagem de Argumentos public class Cor { Qual é o resultado impresso na tela? public String cor; public Cor(String c){ c1 0x0123 this.cor = c; Passo 1: } cor Azul 2 public static void substitua(Cor novaCor){ Passo 2: 3 novaCor = new Cor("Verde"); } novaCor 0x0123 public String getCor(){ return cor; } public static void main(String[] args) { Cor c1; 1 c1 = new Cor("Azul"); substitua(c1); System.out.println(c1.getCor()); } }Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 8
  9. 9. Passagem de Argumentos public class Cor { Qual é o resultado impresso na tela? public String cor; public Cor(String c){ c1 0x0123 this.cor = c; Passo 1: } cor Azul 2 public static void substitua(Cor novaCor){ Passo 2: 3 novaCor = new Cor("Verde"); } novaCor 0x0456 public String getCor(){ return cor; Passo 3: } cor Verde public static void main(String[] args) { Cor c1; 1 c1 = new Cor("Azul"); substitua(c1); System.out.println(c1.getCor()); } }Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 9
  10. 10. Passagem de Argumentos public class Cor { Qual é o resultado impresso na tela? public String cor; public Cor(String c){ this.cor = c; } 2 public static void substitua(Cor novaCor){ 3 novaCor.cor = "Verde"; } public String getCor(){ return cor; } public static void main(String[] args) { Cor c1; 1 c1 = new Cor("Azul"); substitua(c1); System.out.println(c1.getCor()); } }Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 10
  11. 11. Passagem de Argumentos public class Cor { Qual é o resultado impresso na tela? public String cor; public Cor(String c){ Passo 1: c1 0x0123 this.cor = c; } cor Azul 2 public static void substitua(Cor novaCor){ 3 novaCor.cor = "Verde"; } public String getCor(){ return cor; } public static void main(String[] args) { Cor c1; 1 c1 = new Cor("Azul"); substitua(c1); System.out.println(c1.getCor()); } }Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 11
  12. 12. Passagem de Argumentos public class Cor { Qual é o resultado impresso na tela? public String cor; public Cor(String c){ Passo 1: c1 0x0123 this.cor = c; } cor Azul 2 public static void substitua(Cor novaCor){ 3 novaCor.cor = "Verde"; Passo 2: } novaCor 0x0123 public String getCor(){ return cor; } public static void main(String[] args) { Cor c1; 1 c1 = new Cor("Azul"); substitua(c1); System.out.println(c1.getCor()); } }Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 12
  13. 13. Passagem de Argumentos public class Cor { Qual é o resultado impresso na tela? public String cor; public Cor(String c){ Passo 1: c1 0x0123 this.cor = c; } Passo 3: cor Verde 2 public static void substitua(Cor novaCor){ 3 novaCor.cor = "Verde"; Passo 2: } novaCor 0x0123 public String getCor(){ return cor; } public static void main(String[] args) { Cor c1; 1 c1 = new Cor("Azul"); substitua(c1); System.out.println(c1.getCor()); } }Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×