Curso de programación con java

    Autor: Luis Fernando Apáez Álvarez

 

  -Curso PyM-

    Clase 4: POO parte II

    Fecha: 04 de diciembre del 2022

 


Contenido


Paso por valor

No podremos modificar variables desde métodos externos:

Inicialmente el valor de la variable x es de 10, luego utilizamos el método cambioValor() en el cual se mandará a imprimir el valor del parámetro que pasemos a dicho método, pero además vemos que en la definición de ese método hacemos el intento por cambiar el valor de argumento. No obstante, el valor de la variable x permanece siendo el mismo, esto es, no podemos cambiar los valores de una variable desde método externos. Lo que ocurre es que en cambioValor(x) se está pasando a dicho método una copia de la variable x y no a dicha variable como tal.

Decimos entonces que en el paso por valor, el valor de un parámetro de la función se copia en otra variable.

Paso por referencia

Para el siguiente ejemplo utilizaremos la clase Persona:

La cual se encontrará almacenada en una carpeta denominada clases. Luego, consideremos

donde en el paso por referencia, se pasan/copian los parámetros reales a la función.

Tendremos entonces que, en Java, todas las variables primitivas, como un entero o un carácter, almacenan los valores reales y por ello el paso será por valor. Por el contrario, las variables no primitivas, como una clase o un objeto, almacenan las variables de referencia que contienen las direcciones de los objetos a los que se hace referencia, y por ende el tipo de paso será por referencia.

Contexto estático

y realizamos una prueba

Como nota, dado que el método principal main siempre debe ser estático, entonces dentro del método main sólo podemos mandar a llamar métodos estáticos.

Herencia

El diagrama anterior es un diagrama de clases en el cual la palabra extends nos dice que la clase Persona extiende a las clases Empleado y Cliente, esto es, la clase Persona en la clase padre y las clases Empleado y Cliente son las clases hijas. Al inicio de cada diagrama de clases colocamos los atributos y el tipo de datos de éstos; luego colocaremos los métodos con el tipo de dato que reciben y el tipo de dato de salida. Además, utilizamos el símbolo de + para indicar que los atributos/métodos son públicos y colocamos - para indicar que los atributos/métodos son privados. El diagrama anterior representa un paso antes de llevar a código nuestras clases y corresponde propiamente al diseño de clases. Después del diseño se lleva acabo la implementación en código. De tal manera comenzaremos por definir la clase padre Persona en una carpeta nueva

donde los atributos/métodos protegidos son visible en la clase en donde se define y en cualquiera de sus subclases, pero no fuera de ellos.

Procedemos a definir las clases hijas

y finalmente realizamos pruebas

Más pruebas:

Paquetes

Crearemos una carpeta nueva denominada Paquetes. Dentro de esa carpeta crearemos dos carpetas: la primera se llamará Paquete1 y dentro de dicho paquete crearemos un nuevo archivo de java denominado Utileria.java

Luego, dentro de la carpeta Paquetes creamos la segunda carpeta denominada Prueba y dentro de ella creamos el archivo java denominado TestUtileria.java:

donde desde otra carpeta estamos utilizando el método Imprimir() que definimos en la carpeta Paquete1.