POO - 15 - Passagem de Argumentos
Click here to load reader
-
Upload
ludimila-monjardim-casagrande -
Category
Technology
-
view
770 -
download
1
Transcript of POO - 15 - Passagem de Argumentos
![Page 1: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/1.jpg)
Passagem de Argumentos
Programação Orientada a Objetos
Ludimila Monjardim Casagrande 2012
![Page 2: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/2.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 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.
![Page 3: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/3.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 3
Passagem de Argumentos
Considere o seguinte método:
public void incrementa5(int numero) {
numero += 5; }
int x = 0;
incrementa5(x);
System.out.println(“Agora x é: ” + x);
Uma cópia do valor de x é
passada como argumento
para o método.
Qual é o resultado impresso na tela?
![Page 4: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/4.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 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);
![Page 5: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/5.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 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.
![Page 6: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/6.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 6
Passagem de Argumentos
public class Cor {
public String cor;
public Cor(String c){
this.cor = c; }
public static void substitua(Cor novaCor){
novaCor = new Cor("Verde"); }
public String getCor(){
return cor; }
public static void main(String[] args) {
Cor c1;
c1 = new Cor("Azul");
substitua(c1);
System.out.println(c1.getCor()); } }
Qual é o resultado impresso na tela?
1
2
3
![Page 7: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/7.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 7
Passagem de Argumentos
public class Cor {
public String cor;
public Cor(String c){
this.cor = c; }
public static void substitua(Cor novaCor){
novaCor = new Cor("Verde"); }
public String getCor(){
return cor; }
public static void main(String[] args) {
Cor c1;
c1 = new Cor("Azul");
substitua(c1);
System.out.println(c1.getCor()); } }
Qual é o resultado impresso na tela?
0x0123
Azul cor
c1 Passo 1:
1
2
3
![Page 8: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/8.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 8
0x0123
Passagem de Argumentos
public class Cor {
public String cor;
public Cor(String c){
this.cor = c; }
public static void substitua(Cor novaCor){
novaCor = new Cor("Verde"); }
public String getCor(){
return cor; }
public static void main(String[] args) {
Cor c1;
c1 = new Cor("Azul");
substitua(c1);
System.out.println(c1.getCor()); } }
Qual é o resultado impresso na tela?
0x0123
Azul cor
c1 Passo 1:
novaCor
Passo 2:
1
2
3
![Page 9: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/9.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 9
0x0456
Passagem de Argumentos
public class Cor {
public String cor;
public Cor(String c){
this.cor = c; }
public static void substitua(Cor novaCor){
novaCor = new Cor("Verde"); }
public String getCor(){
return cor; }
public static void main(String[] args) {
Cor c1;
c1 = new Cor("Azul");
substitua(c1);
System.out.println(c1.getCor()); } }
Qual é o resultado impresso na tela?
Verde cor
0x0123
Azul cor
c1 Passo 1:
novaCor
Passo 2:
Passo 3:
1
2
3
![Page 10: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/10.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 10
Passagem de Argumentos
public class Cor {
public String cor;
public Cor(String c){
this.cor = c; }
public static void substitua(Cor novaCor){
novaCor.cor = "Verde"; }
public String getCor(){
return cor; }
public static void main(String[] args) {
Cor c1;
c1 = new Cor("Azul");
substitua(c1);
System.out.println(c1.getCor()); } }
Qual é o resultado impresso na tela?
1
2
3
![Page 11: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/11.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 11
0x0123
Azul cor
c1
Passagem de Argumentos
public class Cor {
public String cor;
public Cor(String c){
this.cor = c; }
public static void substitua(Cor novaCor){
novaCor.cor = "Verde"; }
public String getCor(){
return cor; }
public static void main(String[] args) {
Cor c1;
c1 = new Cor("Azul");
substitua(c1);
System.out.println(c1.getCor()); } }
Qual é o resultado impresso na tela?
Passo 1:
1
2
3
![Page 12: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/12.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 12
0x0123
Azul cor
c1
0x0123
Passagem de Argumentos
public class Cor {
public String cor;
public Cor(String c){
this.cor = c; }
public static void substitua(Cor novaCor){
novaCor.cor = "Verde"; }
public String getCor(){
return cor; }
public static void main(String[] args) {
Cor c1;
c1 = new Cor("Azul");
substitua(c1);
System.out.println(c1.getCor()); } }
Qual é o resultado impresso na tela?
Passo 1:
novaCor
Passo 2:
1
2
3
![Page 13: POO - 15 - Passagem de Argumentos](https://reader038.fdocuments.net/reader038/viewer/2022100604/5597e4de1a28ab000f8b482a/html5/thumbnails/13.jpg)
Passagem de Argumentos ©2012 Ludimila Monjardim Casagrande 13
Verde
0x0123
cor
c1
0x0123
Passagem de Argumentos
public class Cor {
public String cor;
public Cor(String c){
this.cor = c; }
public static void substitua(Cor novaCor){
novaCor.cor = "Verde"; }
public String getCor(){
return cor; }
public static void main(String[] args) {
Cor c1;
c1 = new Cor("Azul");
substitua(c1);
System.out.println(c1.getCor()); } }
Qual é o resultado impresso na tela?
Passo 1:
novaCor
Passo 2:
Passo 3:
1
2
3