bloque4:clasesobjetos
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
bloque4:clasesobjetos [05/03/2018 10:54] – [Recolector de basura] Fernando Valdeón | bloque4:clasesobjetos [05/03/2018 11:34] (actual) – borrado Fernando Valdeón | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== Clases y Objetos ====== | ||
- | |||
- | ===== Clase ===== | ||
- | |||
- | ===== Objeto ===== | ||
- | |||
- | ===== Instanciar una clase: Constructores ===== | ||
- | |||
- | ===== Variables de referencia ===== | ||
- | |||
- | ===== Modificadores de visibilidad o acceso ===== | ||
- | |||
- | ===== Métodos getters y setters ===== | ||
- | |||
- | ===== Palabra reservada: this ===== | ||
- | |||
- | ===== Sobrecarga de métodos y constructores ===== | ||
- | |||
- | ===== Modificador static ===== | ||
- | |||
- | ===== Inicialización de atributos de una clase ===== | ||
- | |||
- | ===== Recolector de basura ===== | ||
- | Cuando ya no se necesita un objeto simplemente puede dejar de referenciarse. No existe una operación explícita para ' | ||
- | |||
- | Un objeto deja de referenciarse cuando no hay ninguna variable de referencia dentro del programa que contenga su valor de referencia: | ||
- | <code java> | ||
- | Coche miCoche = new Coche(); | ||
- | miCoche = null; //He perdido el valor de la referencia al objeto | ||
- | |||
- | //Otro ejemplo: | ||
- | |||
- | Coche miCoche = new Coche(); | ||
- | miCoche = new Coche(); //Pierdo la referencia del objeto anterior | ||
- | </ | ||
- | |||
- | Una variable solo puede contener un valor, y cuando no hay nada que guarde la referencia a un objeto, lo habré perdido para siempre. | ||
- | |||
- | La liberación de memoria la realiza el recolector de basura (garbage collector), que es una función de la JVM (Java Virtual Machine). El recolector revisa toda el área de memoria del programa y determina qué objetos pueden ser borrados de la memoria __porque ya no tienen referencias activas que los apunten__. | ||
- | |||
- | El recolector de basura actúa cuando la JVM lo determina (tiene un mecanismo de actuación no trivial). | ||
- | No existe un momento concreto en que las áreas de memoria son liberadas, sino que lo determina en cada momento la JVM en función de sus necesidades de espacio. | ||
- | |||
- | ===== Clase Object ===== | ||
- | La clase '' | ||
- | |||
- | La clase Object define una serie de métodos miembro que son heredados por todas las clases. Algunos de estos métodos se redefinen (o sobrescriben) en las clases que definamos. | ||
- | |||
- | ===== Encapsulamiento y abstracción ===== | ||
- | La programación orientada a objetos (POO) es un paradigma de programación basado en unos pilares. Entre ellos podemos encontrar 4 principales: | ||
- | **abstracción**, | ||
- | |||
- | La **abstracción** se puede entender como la representación de entidades (pueden ser de la vida real) mediante elementos de un programa. Definimos esos elementos mediante las __clases__ (Coche, Vehiculo, Persona, Pasajero, etc) y los usamos mediante sus __objetos__. | ||
- | |||
- | Además, estos elementos realizan una serie de operaciones, | ||
- | |||
- | El concepto de **encapsulamiento** es otro pilar fundamental de la POO y está ligado a la abstracción. Consiste en aislar los miembros (propiedades y operaciones) del acceso exterior (ponerlos dentro de una clase). Así evitamos que otras partes del programa pueden modificar las propiedades de un objeto de forma errónea, y crearemos una interfaz para trabajar con el objeto y acceder a sus propiedades. Esta interfaz son los **métodos**. Es la forma en la que el objeto nos permite trabajar con él, sin poder tener acceso a su interior (implementación de operaciones, | ||
- | |||
- | La **herencia** y el **polimorfismo** se verán más adelante ya que también están ligados entre sí. | ||
- | ===== Otras palabras reservadas ===== | ||
- | Las siguientes palabras clave se irán viendo a medida que trabajemos con nuestras clases y ampliando conocimientos: | ||
- | |||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | |||
- | ---- | ||
- | |||
- | (c) {{date> %Y}} Fernando Valdeón | ||
- | |||
bloque4/clasesobjetos.1520247247.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)