Вы находитесь на странице: 1из 16

Programacin Orientada a Objetos

Clases y Objetos

Administracin de memoria Stack vs. Heap


La memoria en Java est dividida en 2 reas
Stack
Almacenamiento de variables locales Datos relacionados a la llamada y retorno de procedimientos Clculos intermedios

Heap
Memria para almacenar los objetos

Los datos alojados en el Heap tienen un tiempo de vida diferente al ambito (alcance) en el cual fueron creados
Si un objeto se crea en un mtodo, el objeto seguir existiendo as el mtodo haya finalizado.

Garbage colecction
Es necesario liberar los objetos que no se necesitan en memoria
Evita que la memoria se llene Almacenar ms objetos

Existen dos formas de liberar la memoria


De forma explcita mediante una instruccin de programacin, free en C, C++ De forma implcita por medio de un proceso del sistema que se encarga de reciclar la memoria no utilizada
En Java este proceso es el garbage collector

El Java garbage collector libera los objetos del heap que no estn siendo referidos por otros objetos
El programador no puede controlar su ejecucin El momento en que se ejecuta el garbage collector es decisin de la JVM
No existe garantia que se ejecute durante el tiempo de vida de un programa

Encapsulacin: Mtodos getters y setters


Los atributos privados de una clase solo deben ser modificados por mtodos de la clase. La Clase debe proveer mtodos pblicos para:
Establecer valores (set)
Clase Cuenta (mtodo set en Java) setSaldo

Obtener el valor de un atributos (get)


Clase Cuenta (mtodo get en Java) getSaldo

Convencin de lenguaje
En Java el mtodo "set" es comnmente llamado mutador y el mtodo "get de consulta En .NET se llaman Propiedades (se declara diferente)

Paso de parmetros por valor y por referencia


Paso de parmetros por valor
Se pasan los valores de las variables y se crean copias de los mismos para los parmetros que reciben estos valores Todo de tipo de dato primitivo es pasado por valor

Paso de parmetros por referencia


Se pasan las direcciones de memoria a las cuales se esta referenciando Todo objeto se pasa por referencia

Arrays y ArrayList
Los arreglos en Java son objetos
Se almacenan en el heap

Los arreglos no solo almacenan valores primitivos, tambien pueden almacenar objetos.

Los arreglos pueden ser declaros sin dimensin, pero luego deben ser creados.
int a []; a = new int [5]; int a [] = new int [5];

Una vez creado el tamao no puede ser cambiado.


Al sere creados se inicializan con el valor por defecto segun el tipo de dato

Arrays y ArrayList
Declaraciones de arreglos
String b[] = new String[100], x[] = new String[20];

Los [] pueden ser colocados antes o despues del nombre de la variable:


double[] arreglo; double arreglo[]; double[] arreglo1, arreglo2; solamente arreglo1 es arreglo double arreglo1[], arreglo[];

Inicializacion de arreglos
int n[] = {10,20,30};

Arrays y ArrayList
Paso de arreglos a metodos
public void modificaArreglo(int b[]) { // El arreglo se recibe por referencia }

Los objetos de tipo arreglo tiene un atributo que representa su longitud (length)

Arrays y ArrayList
ArrayList es una clase para definir un arreglo dinamico
La longitud no es fija Almacena objetos de tipo Object Se encuentra dentro del paquete java.util

Arrays multidimensionales
Definicion
int b[][] = {{1,2,3},{4,5,6},{1,2},{3}}

int b[][] = new int[3][4];


int b[][] = new int[2][]; b[0] = new int[5]; b[1] = new int[3]

Arreglos de objetos
La creacion de clases es la definicion de nuevos tipos de datos Se pueden crear arreglos de objetos
1. Declarar el arreglo 2. Instanciar el arreglo 3. Llenar el arreglo

Imprimir objetos: Mtodo toString


En la programacin orientada a objetos todo es un objeto Todas las clases heredan de la super clase Object
Mtodos de la clase Object
equals toString

Imprimir objetos: Mtodo toString


Si se utiliza el metodo toString de la clase object obtenemos la ruta donde se encuentra la clase y el numero de instancia
paquete.paquete.*.clase@numero_instacia

Imprimir objetos: Mtodo toString


Podemos sobrescribir el metodo de la clase object y asi cambiar el comportamiento del objeto

Comparar objetos Mtodo equals vs ==


Identidad (==)
Prueba igualdad de las direcciones de memoria de los objetos apuntados Logica y fisicamente iguales

Equivalencia (equals)
Prueba igualdad de atributos entre objetos Logicamente iguales pero quizas fisicamente diferentes Mtodo heredado de Object (puede ser sobrescrito)

Comparar objetos Mtodo equals vs ==

Вам также может понравиться