¡Aprender jugando!
Elena Guzmán Blanco, entre otras cosas:
Algunos lo definen como magia, porque es una gran forma de crear.
En realidad, es dominar un lenguaje intermedio con el que comunicarnos con la máquina, para recibir y escribir datos.
Con estas instrucciones, resolver situaciones, optimizar algoritmos, facilitar operaciones.
Hay muchos lenguajes, y cada vez aparecen más.
¿Cuál elegir entonces? La respuesta es más sencilla de lo que pudiera parecer.
Todo depende.
Y no olvidemos las modas.
La Programación Orientada a Objetos (POO, OOP) es un paradigma de la programación que enfoca el código en Clases por múltiples motivos.
Sus caracterísiticas son:
Herencia: las Clases pueden basarse en otras y adquirir las funcionalidades de la Clase de la cual hereda.
Se puede crear incluso una jerarquía de herencia, creando un “arbol genealógico” entre Clases, para saber cómo evolucionan y crecen.
class Criatura { }
class Personaje : Criatura { }
class Druida : Personaje { }
Druida miNuevoDruida = new Druida();
Polimorfismo: las Clases permiten diferentes formas, diferentes invocaciones, haciendo más laxo el tipado fuerte.
Quizás uno de los conceptos más complejos, fuertemente relacionado con la herencia de Clases y al tipado de datos.
Su importancia depende del lenguaje que estemos usando, pues no todos tienen el mismo tipado.
Personaje otroPersonaje = new Druida();
Una Clase es una ficha, una plantilla, un modelo que tendrá información para casos concretos basados en la información definida en la Clase.
Cuenta con Propiedades (datos), Métodos (acciones), Eventos (reacciones cuando algo sucede)...
Personaje Nombre: Abraxas
Habilidades
|
|
Una instancia es un caso concreto basado una Clase.
Si contamos con la Clase Personaje, necesitaremos crear nuestros propios personajes para poder jugar con ellos… a través del Constructor:
Mago personajePrincipal = new Mago();
… y así podré acceder a sus miembros, Propiedades y Métodos:
personajePrincipal.Nombre = "Balem";
personajePrincipal.atacar();
No todas las Clases son iguales, y algunas cuentan con miembros estáticos.
Los miembros estáticos no necesitan de instancias para ser invocados. Son miembros de uso “general”, no concretos de cada caso concreto de objeto.
Mago.Descripcion();
C# es un lenguaje de herencia única, y con implementación de interfaces múltiple. Solo puede heredar una vez, pero puede contener múltiples interfaces.
Los Interfaces son un contrato, un aumento obligado de funcionalidad para la Clase. En este caso, aumenta las capacidades de nuestro Druida:
class Druida : Personaje, IArmoniaConNaturaleza, ICambioDeForma { }
La Programación Orientada a Objetos está diseñada para facilitar nuestra labor como desarrolladores, y con todo sigue evolucionando.
La clave está en experimentar, aprender, curiosear, ampliar fronteras.
Gracias a Al Sweigart por inspirar esta charla.
![]() |