Conceptos de programación orientada a objetos
Jueves, 11 de Diciembre de 2008Vamos a ver algunos de los términos más comúnmente utilizados en OOP
Árbol de jerarquía: La estructura de un jerarquía de clases se suele representar como un árbol. En la raíz de este árbol se halla la superclase, y de ella se van ramificando todas las subclases, conectándose con ramas aquellas que derivan de otras. Una clase derivada puede estar conectada con más de una clase padre si existe herencia múltiple para esa clase hija.
Clase: Conjunto de datos y métodos. Conjunto de reglas de creación y comportamiento de los objetos.
Clase abstracta: Clase de apoyo, que construimos solo para derivar de ella otras clases, pero de la que no se puede hacer ninguna instanciación. También llamada Clase Virtual.
Clase base: Llamamos así a la clase que se halla al inicio del árbol de las jerarquías de clases. La raíz de ese árbol es la clase base o superclase.
Clase compuesta: Véase bajo Clase contenedora.
Clase contenedora: Al hecho de crear nuevas clases utilizando otras clases como componentes, se le llama composición, y a la clase compuesta se le llama contenedora. Es decir, si alguno de los datos de una clase es a su vez una instancia de otra clase (o de sí misma) a la clase se le llama contenedoras y a las clases albergadas contenidas.
Clase derivada: Una clase deriva de otra cuando hemos aplicado la herencia de una sobre otra. La clase B deriva de la clase A cuando B hereda los datos y métodos de A.
Clase hija: Clase que es derivada directamente de otra. Decimos que la clase B es hija de la clase A si B deriva directamente de A (está conectada directamente en el árbol de jerarquías de las clases).
Clase padre: La clase de la cual otra deriva directamente. Decimos que la clase A es padre de la clase B si B deriva directamente de A (está conectada directamente en el árbol de jerarquías de las clases).
Clase virtual: Véase bajo Clase abstracta.
Constructor: Método que devuelve un objeto de la clase a la que el constructor pertenece. Los constructores, habitualmente permiten asignar valores a todos o algunos datos del objeto que van a generar. Constructor por defecto En muchos lenguaje que implementan OOP, se permite definir una
clase sin crear un constructor para la clase. El leguaje, entonces, utiliza el constructor por defecto para crear objetos de esa clase. Este método, devuelve un objeto de su clase bien sin valor alguno o con los valores por defecto mínimos para que el objeto pueda ser inicializado.
Dato: Variable perteneciente a una clase. El conjunto de variables de una clase forman los datos de esa clase. Aunque depende del leguaje suelen darse al menos los siguientes tipos en cuanto a la accesibilidad:
Público: Cualquier método puede acceder a ellos.
Privado: Solo pueden ser utilizados por funciones miembro.
Protegido: Accesibles desde la clase y las clases heredadas de ella.
Early Binding: Ligadura Estática. Véase bajo Late Binding.
Encapsulamiento: se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto.
Función amiga: Una función F(), perteneciente a la clase A, se dice que es amiga de la clase B, cuando tiene acceso además de a los datos de su clase, a los datos protegidos de la clase B.
Función miembro Veáse bajo Método.
Herencia: Capacidad que tienen las clases derivadas o hijas para utilizar toda la información (datos y métodos) de todas las cla ses superiores.
Herencia múltiple Cuando una clase hija deriva de más de una clase padre; con lo que
adquiere los datos y métodos de todas las clases de las cuales deriva.
Instanciar Genéricamente: crear una nueva variable. En OOP, utilizamos este término para referirnos a la acción de crear un nuevo objeto. Este objeto contendrá espacio para almacenar valores para todos los datos de la clase a la que pertenece, y las referencias a los métodos de su clase -funciones miembro-. En realidad, no contiene en sí los métodos, que se quedan en la clase. La finalidad que se persigue dejando los métodos en la clase, en lugar de incorporarlos en cada uno de los objetos que instanciemos, es la de ahorrar memoria no duplicando innecesariamente esta información.
Late binding: En castellano podríamos traducirlo como Ligadura Dinámica. Habitualmente, es el enlazador el que se encarga de resolver las llamadas a las funciones de nuestro programa, esta resolución de llamadas se hace en tiempo de compilación (de enlazado, para ser exactos), a esto se le llama Ligadura Estática. Pero en OOP, a menudo, no se puede saber qué función es la que va
a ser llamada, por lo que esta resolución de llamadas debe hacerse en tiempo de ejecución. A esta resolución “tardía” es a lo que llamamos Ligadura Dinámica o Late Binding.
Método: Se les llama así a las funciones que realizan operaciones con los datos de un objeto. También llamados funciones miembro. Los datos privados de una clase sólo pueden ser modificados por
medio de las funciones miembro -todos los métodos de esa clase y sólo los de esa clase-.
Mensaje: El modo de solicitar que un objeto realice una acción, es enviándole un mensaje. Un mensaje normalmente activa cualquiera de los métodos de la clase a la que pertenece el objeto. Aunque hay
mensajes que no activan ningún método, como son los de inspección y/o modificación de un dato del objeto.
Objeto: Cualquiera de la instanciaciones que hacemos de una clase. Una clase podemos considerarla como un conjunto de datos y métodos, es decir, como un nuevo tipo de dato (como lo son los tipos
carácter, lógico, array, …). Un objeto sería una variable cuyo tipo es el la clase a la que
pertenece.
OOPS Object Oriented Programming System: (Sistema de Programación Orientado al Objeto). Puede encontrarlo también como “Sistema de Programación Orientado a Objetos”. Son dos traducciones distintas de la misma expresión inglesa.
OOUI Object Oriented User Interface: (Interface de Usuario Orientado al Objeto). La OOP suele tener como aplicación m s inmediata, el desarrollo de interfaces de usuario, a estos se les llama OOUI; ya que han sido construidos completamente con objetos.
Polimorfismo: Capacidad que tienen los objetos de clases diferentes para actuar frente al mismo mensaje de formas distintas.
Receptor: Llamamos así al objeto que recibe un mensaje. Cuando se implementa una clase, dentro de cada uno de los métodos de la clase, la variable this (en otros lenguajes Self) contiene el
receptor del mensaje.
Reusabilidad: Denota la permisividad de un sistema de programación para poder utilizar partes de código ya escritas en problemas diferentes. La OOP es el sistema de programación que proporciona un mayor grado de reusabilidad del código.
Sobrecarga: Algunos lenguajes de OOP (por ejemplo C++) permiten realizar lo que llamamos sobrecarga de operadores y de funciones. Por sobrecarga de operadores entendemos la posibilidad de definir para un operador existente comportamientos distintos dependiendo del tipo de los datos con los que trabaje el operador. Por sobrecarga de funciones entendemos la posibilidad de definir
distintas funciones con el mismo nombre, pero con diferente conjunto de argumentos. El lenguaje activar aquella que corresponda al conjunto de argumentos pasados a la función en cada ocasión. Sin
sobrecarga de funciones no puede haber Polimorfismo.
Superclase Cualquier clase de la que derivan una o más clases. Normalmente, a la clase que se encuentra directamente por encima de otra determinada, la llamamos clase padre, y aquella de la que derivan todas la llamamos Superclase o Clase Base.
Subclase: Cualquier clase que es derivada de otra (u otras si el sistema permite herencia múltiple) es una subclase. También llamada Clase Hija o Clase derivada.
Variable de clase: Son aquellas de las que solo existe una copia para todas las instancias de la clase. Es decir, todas las instancias de la clase comparten la misma variable en lugar de una copia de la variable que es lo normal. Virtual, método Aquel que se define como vacío en una clase superior para que cada subclase lo redefina según sus necesidades.