Objeto (programación)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 14 de junio de 2016; las comprobaciones requieren 13 ediciones .

Un objeto en programación  es una entidad en el espacio digital que tiene un estado y comportamiento, tiene campos y métodos . Como regla, cuando se consideran objetos, se enfatiza que los objetos pertenecen a una o más clases que definen el comportamiento (son un modelo ) de un objeto. Los términos " instancia de clase " y "objeto" se usan indistintamente [1] . Analogía: un objeto es lo que se hizo según un dibujo, una clase es un dibujo.

Un objeto, junto con el concepto de una clase , es un concepto importante en el enfoque orientado a objetos . Los objetos tienen las propiedades de herencia , encapsulación y polimorfismo [2] .

El término objeto en el software se introdujo por primera vez en el lenguaje Simula y se utilizó para modelar la realidad [1] .

Conceptos relacionados

Una  instancia de una clase es una descripción de un objeto específico en la memoria. La clase describe los campos y métodos que estarán disponibles para un objeto construido de acuerdo con la descripción establecida en la clase. Las instancias se utilizan para representar (modelo) entidades específicas en el mundo real. Por ejemplo, una instancia de una clase de lavadora puede ser su lavadora, que tiene las siguientes propiedades: empresa fabricante Vyatka, nombre del modelo Vyatka-automatic , número de serie del producto VYAT454647, capacidad 20 litros. A diferencia de un nombre de clase, el nombre de una instancia generalmente comienza con una letra minúscula.

La creación de instancias es la  creación de una instancia de una clase. A diferencia de la palabra "creación", no se aplica a un objeto, sino a una clase. Es decir, dicen: (en un entorno virtual) crear una instancia de una clase , o, en otras palabras, instanciar una clase . Las plantillas de creación utilizan instanciación polimórfica .

Un objeto anónimo es un  objeto que pertenece a alguna clase, pero no tiene nombre.

Inicialización ( inicialización en inglés  ): asignación de valores iniciales a los campos del objeto.

La vida útil de un objeto  es el tiempo desde el momento en que se crea (construcción) hasta su destrucción (destrucción).

Enfoque práctico

Con la excepción de los lenguajes orientados a prototipos como Lua y JavaScript , donde el concepto de "clase" no se utiliza en absoluto, en la mayoría de los lenguajes de programación orientados a objetos (como Java , C++ o C# ), los objetos son instancias . de alguna clase predefinida .

Los objetos en dichos lenguajes se crean usando el constructor de clases y se destruyen usando el destructor de clases (por ejemplo, en C ++ ) o automáticamente usando el recolector de basura , por ejemplo, en Java y C # (C # admite destructores, pero se llaman por el recolector de elementos no utilizados), o utilizando el objeto interno y el contador de referencia de mensajes ("dealloc" en Objective-C ). Un objeto se almacena como los datos de todos sus campos y referencias a la tabla de métodos virtuales y RTTI de su clase. La clase define un conjunto de funciones e información de servicio para construir un objeto, incluida la cantidad de memoria requerida para almacenar el objeto.

En Python , todos los valores son objetos, incluso clases. En este lenguaje, puede construir una clase, de la cual las clases serán instancias. Tales clases se llaman metaclases .

Código de ejemplo

Un ejemplo de cómo crear un nuevo objeto y trabajar con él en el lenguaje de programación Java :

// Crear una instancia de la clase ArrayList llamada list ArrayList list = new ArrayList (); // Agregar instancias de la clase Integer a la lista de objetos de la lista . agregar ( nuevo Entero ( 1 )); lista _ agregar ( nuevo entero ( 2 )); lista _ agregar ( nuevo Entero ( 3 ));

Se supone que la clase ArrayListya ha sido descrita en el código del programa y su descripción contiene una definición para el método y el constructor de la clase add.

Notas

  1. 1 2Grady Butch. Análisis y Diseño Orientado a Objetos con C++ Ejemplos de Aplicación, Clases y Objetos . Consultado el 9 de octubre de 2009. Archivado desde el original el 1 de diciembre de 2009.
  2. ¿ Error en la nota al pie ? : Etiqueta no válida <ref>; defsin texto para notas al pie

Literatura

  • Grady Butch. Análisis y Diseño Orientado a Objetos con Ejemplos de Aplicaciones en C++. - Binom, 1998. - ISBN 0-8053-5340-2 , ISBN 5-7989-0067-3 , ISBN 5-7940-0017-1 .