Your SlideShare is downloading. ×
0
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
POO - 15 - Passagem de Argumentos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

POO - 15 - Passagem de Argumentos

746

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
746
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Programação Orientada a Objetos Passagem de Argumentos Ludimila Monjardim Casagrande 2012
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×