Cómo Programar en Java

Curso de Java 12 : Objetos

14 videos

1h 20m

1.5Gb

Qué es un objeto

En este video vamos a ver un tema muy importante que son los objetos. En cualquier lenguaje orientado a objetos este es el capítulo principal. Hasta ahora hemos visto como almacenar información en variables. También hemos visto los Arrays, y las matrices, que pueden ser de diferentes dimensiones. Sin embargo, hay veces en las que es necesario simular de la realidad objetos que tienen muchas propiedades, donde es necesario guardar muchos datos de un solo objeto, y poder hacer cosas con ellos, eso es lo que vamos a ver en este video

¿Cómo transformar en códigos objetos de la vida real, que no solamente tengan propiedades si no con los que se puedan hacer acciones? imagina por ejemplo: Una ventana. Una ventana puede tener una anchura, una altura, puede tener información de si está abierta, o cerrada, pero aparte pueden hacerse cosas con la ventana, puede abrirse, puede cerrarse, limpiarse, puede romperse, pues todo eso en código, tiene que poder transformarse de algún modo, y eso son los objetos, así que te muestro como podríamos hacer esto.

Cómo crear un objeto en Java

Aquí en la parte del Netbeans esta el árbol donde se encuentra todas las estructura de archivos, que conforman nuestro proyecto. En este paquete que hemos estado programando hasta ahora le damos clic con el botón derecho, y le decimos: “New Java Class” una nueva clase, en este caso hasta ahora hemos estado haciendo el ejemplo de un tren, entonces el nombre de la clase vamos a decir que sea: tren, y le damos a finish, y aquí se nos va a crear un nuevo archivo dentro, aquí lo ven, "tren.java” que se me ha abierto aquí a un lado, este tren.java vemos que aquí pone "public class". Pues aquí dentro vamos a crear las características de los trenes.

Cómo enlazar una clase al código del programa

¿Cómo hago yo para acá poder enlazarlo con este programa java para que yo aquí pueda crearme trenes, bueno vamos a importarlos, vamos a poner un import, pongo el nombre del paquete, cursobásicojotajotavm., y al darle al punto aquí me salen los archivos que están dentro del paquete. Entonces yo a este archivo en el que estoy trabajando le quiero importar elbtren.java, pues lo selecciono ya se me quedó importado.

Ahora yo ya lo puedo utilizar, y aquí me dice que no lo he utilizado hasta ahora, y que estoy importando una cosa que no he utilizado, pero este mensaje se va quitar cuando ya empiece a codear.

Propiedades de un objeto

¿Qué características tiene un tren? Un tren tiene un maquinista, ¿verdad? Vamos a sacarnos una String, donde yo guardé el nombre del maquinista, bien y así podríamos ir añadiendo, todas las características del tren, por ejemplo metros de longitud, años de antigüedad, vamos a poner aquí por ejemplo ese dato, vamos a poner aquí el, int “antigüedad” que tenga el tren.

¿Qué significa esto? Que todo esto cualquier tren que yo me cree lo va a tener, va a tener esas características, cualquier vez que yo aquí quiera crear un tren nuevo, todos los trenes van a tener esa matriz, va a tener una cadena con el nombre del maquinista y va a tener un dato con la antigüedad del tren, lo van a tener todos.

Constructor de un objeto

Cuando yo creo un tren lo primero que se invoca es al constructor y ¿Qué es el constructor? Pues todos los objetos tienen una función constructora que lo que hace es darle valores, a esos datos. Las propiedades por defecto no tienen valor, aquí no decimos como se llama el maquinista, ni cuántos años tiene, simplemente está el dato creado pero no tiene valor, cuando se crea un tren esto no puede estar vacío, tiene que tener un valor, pues eso lo hacen los constructores.

Aquí pongo, public tren el nombre de la clase, aquí diré cuales van a ser los datos que van a tener estas variables, cuando yo creo el tren por ejemplo aquí, lo primero que voy a hacer aquí es decirle cuantos asientos va a tener, ok, entonces lo que voy a hacer aquí es decirle que nada más al arrancar el tren es que el número de asientos sea para el primer vagón, 10, el segundo 20, el segundo vagón 30, como hemos hecho a lo largo del curso, y que está vacío el tren, cuando se crea tiene asientos pero está vacío, es decir que le doy número de asientos, pero pasajeros le digo que todos los vagones están vacíos, pasajeros cero. Otra cosa que le iba a dar cuando se crea el tren, si yo no le di datos, así que de entrada el maquinista, el maquinista, vamos a decir que es “Anónimo” y el número de antigüedad de cuantos años tiene el tren, puesto que no sabemos nada, le vamos a dar cero.

¿Cómo me creo un tren? Cuando me quería crear un numero entero que decía, el tipo, int, y el nombre de cómo iba a llamarle, pues aquí el tipo va a ser tren. Pongo tren y el nombre que voy a darle y despues añado " = new tren". Ahora yo aquí puedo mostrar por pantalla los valores de ese tren, por ejemplo aquí voy a poner: sytem.out.println, y voy a mostrar aquí que me muestre el maquinista, y ahora cuando aquí compilo, va a cargar la clase Java, va a invocar al constructor, porque yo aquí estoy creándome una variable, y después de todo me dice que el maquinista se llama anónimo, porque lo he creado así de una sin datos, he llamado al constructor, y el constructor, “public tren” le he dado estos dato. Si yo aquí le digo cuánta antigüedad tiene el tren, me va a decir que tiene cero.

Constructor con parámetros

Pero yo sí puedo hacer para que el tren cuando lo creo pueda personalizar los datos ¿Cómo hago yo eso? Bueno pues aquí en tren me creo otro constructor pero aquí le voy a decir, que va a recibir datos, por ejemplo: va a recibir un nombre para el maquinista, o por ejemplo también va a recibir también una cantidad de años, entonces ¿Que hago yo con esto? Al maquinista le voy a decir, que le dé el nombre del maquinista va a ser el mismo dato que yo le he pasado, y los años de la antigüedad va a ser el mismo dato que aquí yo le di.

De modo que yo aquí ahora me puedo crear otro tren, voy a poner aquí tren segundo = new tren, y aquí le voy a pasar datos entre paréntesis. Por ejemplo voy a decirle que el maquinista se llama Juan Palomo, y que el número de años es 25, de modo que ahora aquí, si intento mostrar por pantalla, la antigüedad del segundo ya no va a ser cero sino 25, y si yo aquí le digo que me muestre el maquinista me va a decir que se llama, Juan Palomo.

Entonces yo puedo crear objetos con características iniciales estándar pero también puedo hacer que con los datos de entrada, cuando yo creo la variable de entrada, el objeto tenga ya datos inicializados, con valores reales que yo quiera pasarles.

Cambiar las propiedades de un Objeto

Aun así, esto lo puedo cambiar, por ejemplo yo aquí puedo decir que el primer tren cambie de maquinista, primero.maquinista, le voy a cambiar eses dato, es decir que ese maquinista se llame Luis García. primero.maquinista = "Luis García" de modo que yo ahora aquí, si muestro por pantalla, el nombre del primer maquinista del primer tren dirá "Luis García".

Los métodos de un Objeto

Entonces todas estas cosas son las que podemos hacer con las propiedades de los objetos, es decir con sus valores de sus variables que tienen asignadas, pero aparte, de tener propiedades, a estos objetos les podemos dar, métodos, es decir que podemos hacer funciones que realicen cosas con estas propiedades.

Por ejemplo vamos a crearnos aquí una función que lo que va a hacer aquí es llenar un vagón, así como por ejemplo queremos meter mucha gente en un vagón vamos a crear una función que lo llene, vamos a poner, “public”, nombre de la función que sea, “completarvagon”, y vamos a tener que escribir aquí cuál vagón es el que queremos completar, un numerito que nos diga el vagón número 5 u 8, el 14. Esta función o las funciones estas que creamos aquí pueden retornarnos valor, tu por ejemplo quieres consultar, cuántos pasajeros hay y la función te devuelve el número de pasajeros, pero como en este caso no nos devuelve nada, vamos a ponerle aquí un "void", porque no devuelve nada, esta función simplemente completa el vagón, ¿qué es lo que hace? Bueno, aquí lo que vamos a hacer es lo siguiente, vamos a decir que el vagón, en el número que le hayamos pasado, el número de pasajeros aquí, vamos a decir que el valor sea: el mismo de los asientos, ¿dónde están guardados los asientos? Pues en la posición cero, de esa matriz. Y aquí ya hemos hecho que el número de pasajeros sea igual al de los asientos, ya lo hemos completado pues podemos mostrar un mensaje por pantalla, aquí que diga: system.out.println. que diga: “el vagón”, y aquí ponemos el número de vagón que hemos pasado, vagón, “ha sido completado”.

Igualmente aquí podría crear una función que se llamara: meter pasajero, vamos a ver ahora, aquí, voy a crearme una, MeterPasajero, y me tiene que decir, en qué vagón tiene que meterlo y cuantos pasajeros quiere meter, entonces aquí lo que haría, es lo siguiente, vamos a decir que el número de pasajeros aquí, tiene que ser igual a lo que haya más los pasajeros que yo le he dicho, es decir al número de pasajeros le he aumentado la cantidad que me ha dicho, en el vagón que me ha pedido, pero antes de hacer esto sería bueno comprobar si hay o no capacidad, porque quizás un vagón ya esté lleno, y le he dicho que quiero meter un pasajero pero ya está lleno, entonces ¿Cómo hago yo eso? Bueno voy a preguntar aquí, si el número de pasajeros que hay hasta ahora más los que yo le quiero meter supera la capacidad, por ejemplo, imaginese este vagón que tiene 30 asientos y hay 25 pasajeros y quiero meter 6, ya supera a 31, entonces digo: si esto es mayor a la capacidad entonces lo que voy a hacer aquí es, mostrar un mensaje que diga, “el vagón ya está lleno, no hay tanta capacidad” “ no hay tantos asientos libres en tal vagón” “no hay tantos asientos libres en el vagón y el número del vagón" y en caso contrario en que si haya asientos libres, entonces en else, pongo esto y le digo que efectivamente que le aumento los pasajeros y voy a poner aquí un mensajito que diga: “la reserva se ha completado”.

Ya hemos visto entonces como podemos manejar los datos de una clase. Aquí en los constructores que por defecto se crean con unas características estándar, o le podemos personalizar de entrada los valores que en concreto queramos y también hemos visto cómo trabajar con los métodos que podemos hacer para completar, podemos hacer funciones, que allí trabajemos o no con los datos de los objetos que estamos creando. Vamos a ver ahora la herencia, ok! Pasamos al siguiente video.

Si quieres enterarte de los nuevos cursos, suscríbete. No habrá spam, prometido :)

También te puede interesar

Ejercicios Resueltos en C / C++
Encriptación en Java

Sobre el autor

foto de jotajotavm
José Javier Villena

jotajota pa los amigos y jota pa los de más cnfianza.

Bio Seria: Analista-Programador en diferentes lenguajes. Tutor PREMIUM de reconocidas plataformas de nivel mundial como CodigoFacilito. Redactor de artículos para Cristalab. Mi canal de YouTube está patrocinado por la editorial ANAYA y LaTostadora. Me gusta explicar con detalle y poner varios ejemplos para que no queden dudas.

Bio Molona: Me presento :) soy informatico, ni frostis d hardware pero muy muxo de programacion, friki a medias o del to segun el dia. Me gusta programar, muxo. Manejo varios lenguajes y tdo lo ke sepa lo comparto x amor al arte. Este no es mi trabjo pero lo ago mejor y con +ganas y calidad que si lo fuera, x eso mismo, xq para mi es divertido. Solo spero al menos algo de agradecimientO!! ;)

Dios, qe gusto haber escrito este parrafo cm me a dao la gana sin pensar en ortografia ni tildes ni historias!!!!!

Esta página usa cookies para darte una mejor experiencia de usuario.

x