bloque3: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 | ||
| bloque3:clasesobjetos [29/01/2019 11:20] – [Variables de referencia] Fernando Valdeón | bloque3:clasesobjetos [16/09/2024 20:53] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 8: | Línea 8: | ||
| ===== Clase ===== | ===== Clase ===== | ||
| - | Es la parte de un programa en Java donde se definen las __propiedades__ y __operaciones__ que van a tener los ejemplares (objetos | + | Es la parte de un programa en Java donde se definen las __propiedades__ y __operaciones__ que van a tener los ejemplares (objetos, instancias) de dicha clase. Con una clase se define un nuevo tipo de datos (Scanner, String, Coche). |
| - | //Se puede entender que una clase son los planos o el molde, con el que se indican todas las características o forma para poder crear un objeto de esa clase//. | + | //Se puede entender que una clase son los planos o el molde, con el que se indican todas las características o forma para poder crear un objeto |
| ==== Declaración de una clase ==== | ==== Declaración de una clase ==== | ||
| Línea 93: | Línea 93: | ||
| | | ||
| + | // | ||
| | | ||
| - | // | + | // |
| } | } | ||
| } | } | ||
| Línea 116: | Línea 117: | ||
| </ | </ | ||
| + | Concluyendo, | ||
| + | <code java> | ||
| + | // Declaro una variable de la clase Coche | ||
| + | Coche miVariable; | ||
| + | |||
| + | // Asigno la referencia de un objeto Coche a la variable | ||
| + | miVariable = new Coche(); | ||
| + | </ | ||
| + | |||
| + | La variable, no contiene el objeto sino la referencia (dirección) al lugar de la memoria en el que ha guardado. | ||
| ==== Constructor no-args ==== | ==== Constructor no-args ==== | ||
| - | Se conoce como el constructor que no recibe parámetros. Si en una clase no definimos | + | Se conoce como el constructor que no recibe parámetros. Si en una clase no definimos |
| <code java> | <code java> | ||
| public Coche(){ | public Coche(){ | ||
| Línea 155: | Línea 166: | ||
| </ | </ | ||
| ===== Variables de referencia ===== | ===== Variables de referencia ===== | ||
| - | //Toda variable que no es de __tipo primitivo__ es una __variable de referencia__.// | + | //Toda variable que no es de __tipo primitivo__ es, sin lugar a dudas, |
| - | Las variables de referencia son todas las variables cuyo tipo de datos es una clase. No el objeto en sí, sino una referencia (// | + | Las variables de referencia son todas las variables cuyo tipo de datos es una clase. No contienen al objeto en sí, sino una referencia (// |
| Para obtener la referencia de un nuevo objeto usamos su constructor: | Para obtener la referencia de un nuevo objeto usamos su constructor: | ||
| Línea 168: | Línea 179: | ||
| coche1 = new Coche(); | coche1 = new Coche(); | ||
| - | //Cambio el valor a su matrícula | + | //Cambio el valor del campo matrícula |
| coche1.setMatricula(" | coche1.setMatricula(" | ||
| Línea 179: | Línea 190: | ||
| //Muestro la matrícula que asigné al objeto desde coche1 | //Muestro la matrícula que asigné al objeto desde coche1 | ||
| System.out.println(coche2.getMatricula()); | System.out.println(coche2.getMatricula()); | ||
| - | |||
| //Asigno a coche2 otro valor con la referencia de un nuevo objeto | //Asigno a coche2 otro valor con la referencia de un nuevo objeto | ||
| coche2 = new Coche(); | coche2 = new Coche(); | ||
| - | //Ahora coche2 tiene un valor distinto: almacena otra dirección | + | //Ahora coche2 tiene un valor distinto: almacena otra dirección |
| + | // y está referenciando a un nuevo objeto | ||
| </ | </ | ||
| Línea 201: | Línea 212: | ||
| Usan al declarar los miembros de una clase (atributos, métodos, o constructores) y definen desde qué otras clases puedo acceder a sus miembros. | Usan al declarar los miembros de una clase (atributos, métodos, o constructores) y definen desde qué otras clases puedo acceder a sus miembros. | ||
| - | * '' | + | * '' |
| - | * '' | + | * '' |
| - | * '' | + | * '' |
| - | * //default// : si no se indica modificador, | + | * //default// : si no se indica modificador, |
| {{: | {{: | ||
| Línea 256: | Línea 267: | ||
| La mayoría de IDE's permiten generar getters y setters. | La mayoría de IDE's permiten generar getters y setters. | ||
| - | En eclipse | + | En // |
| ---- | ---- | ||
| Línea 332: | Línea 343: | ||
| Las variables miembro pueden inicializarse con valores distintos de los anteriores en su constructor. | Las variables miembro pueden inicializarse con valores distintos de los anteriores en su constructor. | ||
| - | Las variables locales (de ámbito local) no se inicializan automáticamente. Se les debe asignar un valor antes de ser usadas. | + | Las variables locales (de ámbito local) no se inicializan automáticamente. Se les debe asignar un valor antes de ser usadas. Los **atributos estáticos** solo pueden inicializarse en su declaración (no en un constructor). |
| Línea 348: | Línea 359: | ||
| </ | </ | ||
| - | Una variable solo puede contener un valor, y cuando no hay nada que guarde la referencia a un objeto, lo habré perdido para siempre. | + | Una variable solo puede contener un valor, y cuando no hay ninguna variable |
| 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__. | 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__. | ||
bloque3/clasesobjetos.1548760805.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)
