Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

POO - 15 - Passagem de Argumentos

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

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

×