Mostrando las entradas con la etiqueta OOP. Mostrar todas las entradas
Mostrando las entradas con la etiqueta OOP. Mostrar todas las entradas

Tipos de tipos!

Teniendo en cuenta que has leido el post: ¿Qué es un objeto? seguimos con el ejemplo del foco, y decimos que el tipo de objeto es: Foco.
Los tipos de objeto se pueden dividir en 2 subtipos.

Clases:
Tipos que tienen una implementación real de métodos y propiedades (Encender() y Apagar(), EstaEncendido )... o sea, que te indican como son estos mecanismos, y como se utilizan sobre este tipo de objeto.

Interfaces: Tipos que solo describen como son estos mecanismos pero no como trabajan.
Por ejemplo, Encender() y Apagar(), EstaEncendido podría ser una interfaz para una variedad de objetos como el foco, un lavarropas, una lampara (pero no una manzana)

¿Que es un objeto?

en la Programación Orientada a Objetos (OOP) es muy importante ir aclarando que es un objeto, que son sus propiedades y cuales son sus métodos.
Del Autor Bruce Payette (Windows Powershell in action), les traduzco este excelente párrafo:

Objeto:
Un objeto es un paquete que contiene datos e información sobre cómo utilizar estos datos.

Tomemos foco (bombilla de luz ;) como un ejemplo simple.
Este objeto (el foco!) contendría datos que describen su estado - si está encendido o apagado.
También contendría el mecanismo o métodos (asociar método con mecanismo SIEMPRE) necesarios para cambiar el estado de encendido/apagado

OOP:
Una vez que entendemos que son los objetos. nos preguntamos ¿Que es la Programación Orientada a Objetos?
Bueno, la OOP se trata principalmente de responder:
  • ¿como se contruyen estos objetos?
  • ¿De donde vienen los elementos de datos?
  • ¿De donde vienen los comportamientos de los objetos?
Sobre tipos, propiedades y métodos
Muchas capacidades de objetos se determinan por su tipo. En el ejemplo del foco, el tipo de objeto es (sorpresa): Foco. Este tipo de objeto determina que propiedades tiene este objeto, por ejemplo: EstaEncendido, y que métodos (recuerden: mecanismos) tiene, por ejemplo: Encender y Apagar
Escencialmente, el tipo de objeto es el plano (arquitecto) o patrón que determina como es un objeto y como utilizarlo.
El tipo Foco diriamos que tiene un elemento de datos (que nos da información) : EstaEncendido (nos diria si está encendido, o no) y dos métodos (mecanismos, ultima vez ;) : Encender() y Apagar().

Por lo tanto:

"Cosa" "real": (Para no confundir terminos): Una bombilla de luz
tipo: foco
Propiedad: EstaEncendido
Método: Encender() y Apagar()


A ver si comentan algun otro objeto (puerta, moto,....) , con su tipo, propiedades y métodos, asi lo aprendemos entre todos.

Diferencias entre propiedades y metodos

Un objeto, tiene propiedades y metodos, desde un foro, he copiado el texto de un usuario que remarca las diferencias. MUY aliviante.

Propiedades:
  • Está relacionada directamente con aspectos del objeto, o mejor dicho, lo que represente el objeto.
  • Actuan como variables: referierete a estas por su nombre.
  • Cada propiedad devuelve un valor de algun tipo. Obtener el valor de una propiedad no cambia nada del objeto o lo que represente.
  • Algunas propiedades te dejan asignarle nuevos valores. Esto cambia el atributo del objeto y lo que este representa.
  • No necesitan que les pasen argumentos porque tienen atributos predefinidos del objeto mismo, y por esto, no necesitan informacion adicional para poder devolver un valor.
Metodos:
  • Son las cosas que los objetos del progama pueden hacer para vos.
  • Actuan como funciones: Se les pueden pasar argumentos.
  • No tienes que devolver valores, pero algunos devuelven.
  • Invocar un objeto puede cambiar algo acerca del objeto o lo que representa en "el mundo real.