Paso de Argumentos

11
LOGO Instructor: Cathy Eloisa Zepeda Paso de Paso de Argumentos Argumentos a a Métodos Métodos Programación Orientada a Objetos Ingeniera en Sistemas Licenciatura en Informática Técnico en Software

Transcript of Paso de Argumentos

Page 1: Paso de Argumentos

LOGO

Instructor: Cathy Eloisa Zepeda

Paso de Paso de ArgumentosArgumentos a a MétodosMétodos

Programación Orientada a Objetos

Ingeniera en SistemasLicenciatura en Informática

Técnico en Software

Page 2: Paso de Argumentos

Contenido

Preguntas

Ejemplo

Paso por referencia

Paso por valor

Definiciones

Page 3: Paso de Argumentos

Universidad Tecnológica de El Salvador

Definiciones

Paso por valor significa que cuando un argumento se pasa a un método, este método recibe una copia del valor original.

AproximacionesClásicas

Paso por referencia significa que cuando un argumento se pasa a un método, este método recibe la dirección de memoria del valor original, no la copia del valor.

Page 4: Paso de Argumentos

Paso por valor

byte

intdouble

char

float

TiposPrimitivos

Tipos de datos que se pasan por valor

boolean

short

String

Universidad Tecnológica de El Salvador

Page 5: Paso de Argumentos

Paso por referencia

Tipos de datos que se Tipos de datos que se pasan por referenciapasan por referencia

ObjetosArreglos

Vectores

Universidad Tecnológica de El Salvador

Page 6: Paso de Argumentos

Ejemplo : Paso por valor

numero se pasa como argumentopara el método

n recibe una copia del valor d numeroen la variable n

Esa copia se le asigna el valor 18

La variable numero no se ve afectadapor la asignación

public class Prueba {

public void pasoArgumentos(int n) { n=18; }

public static void main(String [] a) { int numero=24; Prueba miPrueba=new Prueba(); miPrueba.pasoArgumentos(numero); System.out.println(numero);

} }

Imprime numero, la variable del método main()

Universidad Tecnológica de El Salvador

Page 7: Paso de Argumentos

Ejemplo: Paso por referencia

numero si será afectada por n[0]=18

pasoArgumentos() no recibe el valor dela variable sino la referencia

Referencia significa la dirección física

no es una replica de numero, es numero llamada de otra forma

public class Prueba {

public void pasoArgumentos(int [] n) { n[0]=18; }

public static void main(String [] a) { int numero={24,24}; Prueba miPrueba=new Prueba(); miPrueba.pasoArgumentos(numero); System.out.println(numero[0]);

} }

Imprime el valor de numero[0]no el valor del método

Universidad Tecnológica de El Salvador

Page 8: Paso de Argumentos

Salida de los programas

La variable numero no ha sido afectada

PorReferencia

La variable numero[0] ha sido afectada

PorValor

Page 9: Paso de Argumentos

Discusion

Que tan cierto es que en Java no existe el paso por referencia?

Si pasamos un objeto a un método modificando su valor, al salir de éste, nuestro objeto habrá sido modificado.

En realidad se ha pasado por valor la referencia al objeto, es decir, se ha pasado una copia de su dirección en memoria.

Cuando se pasa un objeto a un método, siempre se pasa una copia de su dirección, por lo que aunque se cambie su dirección, en cuanto salga del método, volverá a tener la dirección original,

Universidad Tecnológica de El Salvador

Page 10: Paso de Argumentos

Ejemplo

Page 11: Paso de Argumentos

LOGO

Instructor: Cathy Eloisa Zepeda

Programación Orientada a ObjetosTema: Paso de argumentos a métodos