[MÚSICA] [MÚSICA] [MÚSICA] [MÚSICA] Bien. Entonces con lo que acabamos de ver, podemos concluir que las variables son diferentes a los objetos. Como acabamos de observar, vimos todas las características que puede tener un objeto. Un objeto se denomina a partir de una clase, además, un objeto puede contener métodos, puede contener otras variables e incluso le pueden pertenecer también otros objetos. Como vemos, hay una diferencia clara entre las variables y los objetos. Tenemos un tipo de dato Byte, un tipo de dato Short, Integer, Long, Float, Double, Character, Boolean y String. A simple vista podemos observar que estos comienzan con mayúscula. Esa es una característica de los objetos, el origen de los objetos, que son las clases. Las clases siempre van a comenzar con mayúscula, lo que estamos viendo aquí son clases o son tipos de datos objeto. Es decir, tenemos Byte, Short, Integer. Estos no son primitivos. Lo que hizo Java fue crear un tipo de dato un poco más complejo a un primitivo. Como observaste, en los primitivos no teníamos un tipo de dato que nos permitiera almacenar textos o que nos permitiera almacenar más allá de un solo caracter. Entonces lo que hizo Java fue darnos una clase especial donde pudiéramos almacenar más de un solo caracter, y esta clase es la clase String. La clase String se compone de muchos métodos que en realidad son muy conocidos hoy en día en Java. Además de métodos tenemos también variables, tenemos incluso objetos que componen esta misma clase, y a partir de esta clase string yo puedo crear más objetos. Lo mismo sucederá para un objeto de tipo Byte, un objeto de tipo Float, por ejemplo. Estas también son clases que se componen de métodos y de otros atributos que componen al objeto, por ejemplo, que yo pueda darle mayor trato a mis cadenas, que yo pueda cortar en un momento dado una cadena o que yo pueda, incluso, obtener, a partir de un índice, una letra en particular de alguna cadena, o incluso si yo quiero, transformar un tipo de dato a otro tipo de dato. Estas clases tienen todos los métodos y tienen toda la lógica para realizar esto. Como vemos, las variables son entidades muy sencillas, entidades elementales, es decir, una variable solamente será un espacio en memoria que nos permita almacenar un número, un caracter o un valor verdadero o falso, pero los objetos son entidades más complejas. Estas pueden estar formadas por la agrupación de muchas variables y métodos. Los objetos son entidades más complejas, más complejas que solamente almacenar un solo número o un solo caracter. Como estamos viendo en este gráfico, vamos a observar cómo se comportan a nivel de memoria una variable versus un objeto. Tenemos, en primer lugar, la variable i, int i igual a 0. Como observamos en la memoria, en la zona verde, el 0 solamente está almacenándose en una localidad de memoria. Es una variable sencilla, es un espacio en memoria muy sencillo, pero si tenemos, por ejemplo, el objeto mi teléfono, vemos que está instanciado y posteriormente vemos tu teléfono, vemos que también está instanciado, es decir, están puestos en la memoria. Como vemos, lo que se está almacenando aquí, en realidad es una referencia o una dirección de memoria en la cual nos indica en dónde realmente está almacenado todos los datos de ese objeto. Por ejemplo mi teléfono tiene la referencia de memoria 0 por 043901. Este, en realidad está viviendo en la zona naranja, donde ahí tengo que mi teléfono tiene un id número 2, tiene una marca Motorola, tiene un modelo Moto G y el precio es el que se muestra ahí. Lo mismo para tu teléfono, pues observamos que solamente está almacenada la referencia de la memoria en donde realmente se ubica el objeto tuTelefono, y como observamos, en la zona naranja, ahí están almacenados todos los datos de tuTelefono. Así es como realmente se pueden observar las variables versus los objetos en la memoria. Por eso las variables son distintas que los objetos. [MÚSICA] [MÚSICA]