Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Primeros pasos en Unity. POO parte 1 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Primera parte de los 3 que componen una explicación sobre qué es la Programación Orientada a Objetos. En este primero se introduce el concepto general.
Ahora que nos vamos a adentrar en la programación dentro de Unity, creo que es el momento ideal
00:00:06
para hacer una introducción a lo que es la programación orientada a objetos, ya que
00:00:11
es el sistema de programación que vamos a utilizar. Debo advertir que son conceptos
00:00:15
bastante abstractos, que quizá en un principio cuesta entenderlos, pero con el uso iremos
00:00:21
cogiendo soltura y a lo mejor, quién sabe, a lo mejor al final del curso decimos, ah,
00:00:28
ahora lo entiendo. Pero bueno, insisto, mejor empezar desde el principio. Mirad este vídeo
00:00:32
con atención e intentad no perder detalle y, como siempre, si hay dudas, pues contactad conmigo.
00:00:38
Empezaré diciendo que la programación orientada a objetos es un paradigma de programación. No es
00:00:43
que cambie la utilización de lo que hemos visto hasta ahora, de las estructuras de control,
00:00:48
de las variables, de los bucles... Bueno, pero sí que se plantea de otra forma y se plantea por
00:00:53
una sencilla razón. Como buen programador, pues uno siempre busca la eficiencia y la eficiencia
00:00:57
significa que mi código o mis fragmentos de código los puedan utilizar el siguiente
00:01:02
que venga de una forma fácil, que no tenga que estar buscando qué funciones ha creado,
00:01:06
qué variables ha creado, cómo se llaman, en fin. Entonces, para dar una especie de
00:01:11
cuerpo lógico a todo esto y que yo en cuanto me enseñen el diagrama de un programa o de
00:01:14
un script y vea cómo son sus clases, cuáles son sus atributos y cuáles son sus métodos,
00:01:20
yo automáticamente sé qué tengo que hacer con ellos y sobre todo cómo usarlos. En contraposición
00:01:24
con lo que hasta ahora hemos visto que es programación estructurada pues en la
00:01:30
programación estructurada no era más que líneas de código que se iban
00:01:34
ejecutando aquí no es exactamente así aunque sigue por supuesto ejecutándose
00:01:37
las líneas de código pero aquí se organiza de otra forma como mediante
00:01:41
clases y objetos a continuación veremos pues cada cosa y aparte de eso pues
00:01:45
infiere ciertas convenciones o ciertas formas de trabajar que son habituales en
00:01:50
cualquier lenguaje de programación orientado objetos lo cual facilita
00:01:56
mucho la tarea de cualquier programador a la hora de enfrentarse a un programa que no
00:01:59
es suyo, porque sabe lo que se va a encontrar. Y en ese sentido seguiremos unas convenciones
00:02:03
muy precisas y muy importante que cuando sepamos que estamos declarando un objeto, estamos
00:02:07
declarando un objeto o cuando estamos llamando al método de un objeto, pues sabemos lo que
00:02:11
estamos haciendo o lo que nos espera. De hecho hay muchos lenguajes que ya están orientados
00:02:15
a objetos y C-Sharp por supuesto es uno de ellos.
00:02:20
Para entender la programación orientada a objetos voy a partir de un ejemplo real, del
00:02:24
mundo real. Pensemos, por ejemplo, que yo trabajo en un banco y que cada vez que alguien
00:02:28
viene y abre una cuenta, pues yo tengo que realizar ciertas tareas. Por ejemplo, viene
00:02:33
alguien, abre una cuenta y yo le tengo que primero abrir esa cuenta, es decir, ya está,
00:02:38
he abierto una cuenta. Tengo que preguntarle algunas cosas al cliente. Para empezar, tengo
00:02:43
que determinar su nombre para ponerlo en la cuenta, la fecha en la que he abierto la cuenta.
00:02:47
Tengo que crear, por ejemplo, un número de cuenta. Tengo que poner un saldo en esa cuenta.
00:02:53
Ahora, eso son las variables de la cuenta, vamos a decirlo así. Es decir, son variables que se van a repetir en todas las cuentas.
00:02:58
De hecho, adelanto un concepto que es el de la abstracción, luego hablaremos de ello, que significa qué atributos o qué propiedades van a tener todas las cuentas.
00:03:05
No me interesa esta cuenta en concreto, que a lo mejor tiene un plan de pensiones, o sea, que es muy poco típico, pero que esta lo tiene.
00:03:14
No, esa no me interesa. Lo que me interesa son las propiedades que tienen todas las cuentas.
00:03:19
Lo que he dicho, saldo, número de cuenta, fecha de apertura, en fin. Pues ya tengo eso, pero luego resulta que como trabajador del banco hay ciertas tareas que estoy repitiendo constantemente.
00:03:22
Por ejemplo, cada vez que viene un cliente y retira un saldo o retira un dinero, pues yo tengo que actualizar el saldo. Tengo que entrar en la cuenta, seguir unos procedimientos para entrar en esa cuenta,
00:03:34
restar el saldo que me han, o restar la cantidad de dinero que ha sacado el cliente,
00:03:45
restárselo al saldo general, actualizar la variable de saldo,
00:03:49
acordémonos que esa es una de las variables o atributos que tiene esa cuenta.
00:03:52
Es decir, hemos realizado unas tareas que son repetitivas.
00:03:57
¿Y qué hacemos cuando tenemos unas tareas o una serie de actividades o de funciones
00:04:01
que se repiten constantemente? Pues efectivamente, declarar una función.
00:04:06
Que en programación orientada a objetos se llama métodos.
00:04:10
A partir de ahora lo llamaremos siempre métodos.
00:04:13
Así que tenemos una cuenta de banco con unas variables que se repiten en todas las cuentas
00:04:16
y con unos métodos que también se repiten en todas las cuentas.
00:04:22
Los métodos, como buenas funciones que son, pueden exigir variables,
00:04:26
en el caso que hablábamos del saldo, cuánto dinero voy a sacar, o retornar variables.
00:04:31
Por ejemplo, si tengo que actualizar el saldo, me tiene que devolver cuál es el saldo final
00:04:34
y entonces yo lo actualizo.
00:04:40
En fin, o bueno, o a lo mejor si la variable del saldo la tiene ya disponible el método, pues ni siquiera me lo tiene que devolver, él se encarga de hacerlo todo y yo no pregunto, que eso es otra de las cuestiones que veremos cuando hablemos de los conceptos de programación orientada a objetos, es que lo ideal es que él, la clase o lo que estamos haciendo haga cosas si yo saber muy bien cómo las hace, ¿vale?
00:04:41
Eso es lo que se llama una estructura de caja negra, que es, mira, yo sé lo que te tengo que dar, yo sé lo que me vas a devolver, pero cómo lo hagas internamente es cosa tuya.
00:05:03
Eso facilita de nuevo también las tareas de un programador.
00:05:12
Siguiendo ese ejemplo que hemos visto, esto que tenemos aquí, la cuenta bancaria, sería la clase.
00:05:15
Es decir, declaramos una clase, por cierto, ya empezaremos a hablar con propiedad,
00:05:23
Es decir, las clases, cuando las declaremos por convención, van con la primera letra mayúscula para diferenciarlo de las variables, por ejemplo.
00:05:29
Y a partir de ahí empezamos a asignar ciertos atributos.
00:05:37
Estos atributos los va a tener todas las cuentas que yo abra.
00:05:41
Pero aparte de eso hemos dicho que teníamos unos métodos.
00:05:45
¿De acuerdo? Aquí están.
00:05:48
Ahí yo creo que le faltan unos paréntesis para indicar que esto es un método, pero bueno.
00:05:50
Y esas son las actividades que realiza la clase.
00:05:53
Ya tenemos nuestra clase definida y es muy importante cuando nos ponemos a trabajar en programación orientada a objetos pensar las clases, pensarlas muy bien hasta que decimos, vale, estas son las clases, estos son sus atributos generales y estos son los métodos.
00:05:55
¿Ahora qué hago? Pues siguiendo el ejemplo de la cuenta bancaria
00:06:08
tengo la clase que es cuenta bancaria
00:06:11
y cada vez que abro una nueva
00:06:13
lo que se llama es que creo un objeto
00:06:16
a partir de esa clase
00:06:18
son lo que se llaman instancias de clases
00:06:19
es como repetirlas
00:06:22
no es clonarlas porque no las repito
00:06:24
ahí está la magia de la programación orientada a objetos
00:06:26
no es que coja esto y lo repita una y dos y tres veces
00:06:28
no, no, no, es que lo instancio
00:06:31
es decir, creo una instancia
00:06:33
con su propio nombre
00:06:35
genera las mismas variables genera los mismos métodos que están en la clase es
00:06:37
decir puedo acceder a ellos pero sus variables son propias es decir que una
00:06:42
cuenta tendrá un número de cuenta y un objeto de cuenta tendrá un número de
00:06:46
cuenta y otro objeto de cuenta tendrá otro número de cuenta y no se molestan
00:06:50
entre ellas que es otro de los conceptos que veremos en programación orientada
00:06:54
objetos que es el encapsulamiento que las propiedades de un objeto no
00:06:57
interfieren para nada en las propiedades de otro objeto así que puedo tener mil
00:07:00
objetos de la misma clase mil cuentas bancarias a partir de una sola clase de cuenta bancaria
00:07:04
ahí podríamos tener creado un objeto a partir de la clase que hemos visto antes y tiene como
00:07:09
podemos ver sus variables de clase pero que tienen sus propios valores que son diferencias de otro y
00:07:15
por supuesto tengo acceso como vemos ahí faltaban unos paréntesis como vemos tengo acceso a las
00:07:21
los métodos de la clase principal por cierto declarar que esta forma de representar las
00:07:26
clases sigue el Unified Modeling Language, que es decir, la forma en la que se representan
00:07:32
las clases, porque cuando un programador hace un diagrama de sus clases, pues tiene que
00:07:37
seguir ciertas normas, entonces están especificadas en ese lenguaje. Muy bien, sin abogobiarnos
00:07:41
mucho, pongo aquí un ejemplo, nada de falta que lo entendamos de todo, pero pongamos aquí
00:07:47
un ejemplo de lo que sería una clase ya en código. Por ejemplo, vamos a pensar que yo
00:07:51
voy a declarar una clase coche, es decir, necesito instanciar coches, y lo que hago
00:07:56
es, como decíamos, abstraer, obtener los atributos generales de un coche. Por ejemplo,
00:08:01
el color, todos los coches tienen color, el modelo, todos lo tienen. Incluso puedo crear
00:08:08
variables booleanas. He de recordar que todas las variables tienen que tener un tipo de
00:08:15
variable. En este caso puedo decir si un coche está encendido o apagado. Y puedo incluso
00:08:20
crear un método que diga, pues voy a crear un método para que una vez que cree el objeto
00:08:26
de un coche lo pueda poner en marcha. Y lo mismo podría crear un método para pararlo.
00:08:29
Pues bien, esto sería mi clase, con sus atributos y sus métodos.
00:08:34
¿Cómo genero objetos? Pues bien, cada lenguaje de programación
00:08:38
tendrá su propio sistema de crear o de instanciar las clases.
00:08:41
Pero bueno, veremos que es muy habitual, y nosotros de hecho lo haremos así,
00:08:45
llamando a esta sintaxis.
00:08:49
Pero bueno, C Sharp tiene sus peculiaridades y las vamos a ver ahora mismo.
00:08:54
Y una vez que he creado una variable, muy importante, esta variable no es una variable como las que hemos visto antes, no es una variable string, no es un boolean, no es un integer, no, no, no, es un objeto.
00:08:56
¿De qué clase? De esta clase.
00:09:10
¿Qué significa? Que ahora mismo esta variable, como podemos ver más abajo, tiene accesibles los atributos y tiene accesibles los métodos.
00:09:13
Es decir, que si yo escribo el nombre de la variable y a continuación un punto, muy importante, así es como accedemos a los atributos o a los métodos que tenemos en la clase de donde viene este objeto,
00:09:23
pues a continuación ponemos el atributo y le asignamos un valor.
00:09:33
Es decir, que ahora mismo mi coche es un objeto de la clase coche, su atributo color que está declarado aquí en la clase coche, ahora es rojo, pero es rojo el de este objeto.
00:09:37
Si genero otro objeto nuevo, podría asignarle otro color.
00:09:51
Y, por supuesto, le puedo decir que se ponga en marcha.
00:09:55
Como podemos ver, por ejemplo, el método de ponerse en marcha, ¿qué es lo que hace?
00:09:58
Cambiar el atributo de encendido a true, que por defecto venía en false.
00:10:05
¿Qué significa? Que en este objeto, al llamar al método ponerse en marcha, lo que ha hecho es cambiar el atributo encendido a true.
00:10:10
Es decir, que tengo un coche rojo y que ahora mismo está encendido.
00:10:19
Bien, ya sé que esto puede sonar un poco achino y cuesta al principio,
00:10:22
pero tenemos que empezar a verlo de esta forma.
00:10:27
Es decir, tenemos unas clases disponibles para nosotros
00:10:29
y que las podemos llamar e instanciar y meterlas en una variable nuestra.
00:10:32
Y dentro de esa variable, pues de nuevo tenemos accesibles sus atributos
00:10:36
y empezamos a jugar con ellos.
00:10:38
Sus atributos, sus métodos, en fin.
00:10:40
De todas formas, el entorno de desarrollo que usemos seguramente nos ayude.
00:10:42
Nos diga qué atributos tiene o qué métodos podemos llamar a ese objeto que instancia la clase a la que está instanciando.
00:10:46
- Idioma/s:
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Autor/es:
- Alvaro Holguera Gozalo
- Subido por:
- Alvaro H.
- Licencia:
- Reconocimiento - No comercial - Compartir igual
- Visualizaciones:
- 107
- Fecha:
- 11 de septiembre de 2025 - 20:35
- Visibilidad:
- Público
- Centro:
- CFP JOSÉ LUIS GARCI
- Descripción ampliada:
- Descripción breve sobre la Programación Orientada a Objetos
- Duración:
- 10′ 53″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 413.93 MBytes