Hola, el tema de esta lección es clases y objetos.
En primer lugar tratemos de imaginar a un estudiante.
Un estudiante en el ámbito universitario está principalmente caracterizado
o definido por su nombre, su código, su semestre de ingreso a la universidad,
su carrera, la cantidad de créditos que ha aprobado y su promedio acumulado.
A partir de esta información básica, un estudiante está en capacidad
de realizar ciertas acciones,
por ejemplo, calcular cuántos semestres le faltan para terminar la carrera,
saber si se encuentra en riesgo académico, o si por el contrario podría optar a una beca,
si puede cambiar de carrera o cursar un doble programa, entre otras acciones.
Bien, todo lo anteriormente descrito, tanto las características de un estudiante,
como las acciones que puede llevar a cabo,
lo podemos generalizar a cualquier otro estudiante.
Cualquier otro estudiante de la universidad tendrá igualmente un nombre, un código,
una carrera, un promedio acumulado, un semestre de ingreso y un número de créditos aprobados,
y podrá realizar las mismas acciones que definimos para un estudiante particular.
En esta metáfora los estudiantes serán los objetos
en el mundo de la programación orientada a objetos.
Entonces podemos definir estas características y acciones
dentro de un patrón, y podríamos ver las acciones
como operaciones, rutinas o procedimientos si usáramos la nomenclatura de otros lenguajes.
En programación orientada a objetos estas características y acciones
que identificamos, determinan lo que llamaremos una clase.
Una clase es el molde o formato con el que podemos crear objetos particulares del mundo.
Las características de la clase definirán los atributos del objeto.
Las acciones las llamaremos métodos, y corresponden a operación
que cada instancia de la misma clase podrá hacer.
Es decir, le delegamos la responsabilidad de realizar ciertas operaciones
a las instancias de la clase,
en lugar de dejarlas como procedimientos generales del programa.
Y para representar las clases se usa un estándar particular, usamos la notación UML.
Usamos este rectángulo para representar una clase
y tres compartimentos para organizar nombre, los atributos y los métodos.
Estos se nombran usando CamelCase,
y normalmente se muestran los tipos de datos con los que se representan, String, entre otros.
Usando la clase estudiante podemos entonces instanciar o crear varios objetos.
Si vamos a representar a nuestra primera instancia
u objeto de la clase estudiante, usamos la instrucción new
y creamos un objeto estudiante e1 y asignamos un valor a cada uno de los datos.
La estudiante tendrá como nombre Adriana, su código será 12345,
su carrera será ingeniería de sistemas y computación,
su semestre de ingreso será el de enero del 2013,
habrá aprobado 45 créditos y su promedio es de 3.94.
Si creamos un segundo objeto, operaríamos de la misma manera usando la instrucción new,
y esta vez llamamos al objeto e2, ya que e1 existe,
y le asignamos valores diferentes a sus atributos.
En este caso su nombre será Camilo, su código será 10101,
su carrera biología, su semestre de ingreso será el de agosto de 2012,
ha aprobado 72 créditos y su promedio de 4.23.
Si llamamos los métodos que definimos en la clase para los objetos de tipo estudiante,
cada uno dará un resultado diferente de acuerdo a su implementación,
y a los datos de sus atributos.
Veamos, la respuesta de cada instancia al mismo método fue diferente.
Para nuestro objeto e1 fue de 3, para nuestro objeto e2 fue de 4.
Bien, pasemos a las conclusiones.
Los objetos son implementaciones o instancias particulares de una clase.
Dos objetos de la misma clase pueden tener diferentes valores
en sus atributos y sus métodos,
aunque implementados de la misma manera,
no necesariamente van a tener que dar el mismo resultado siempre.
Una clase es la representación abstracta de unas características comunes
a un grupo de elementos.
Es el plano con el que podemos crear objetos.
Y una clase está compuesta de atributos, características y métodos funciones.
Esto resume los conceptos básicos de clases, objetos y creación de objetos.
Los invitamos a seguir los casos de estudio y realizar los ejercicios del módulo
para poner en práctica lo que hemos visto.