SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Programação Orientada a Objetos



     Passagem de Argumentos




          Ludimila Monjardim Casagrande
                      2012
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
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
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
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
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
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
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
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
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
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
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
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

Más contenido relacionado

Más de Ludimila 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
 

Más de Ludimila Monjardim Casagrande (18)

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 - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
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 - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 
POO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em JavaPOO - 03 - Alocação de Memória em Java
POO - 03 - Alocação de Memória em Java
 
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
 

POO Passagem Argumentos Java

  • 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