instancia en programacion orientada a objetos

Crear instancias en programación orientada a objetos con Java

La programación orientada a objetos (POO) es una técnica de programación que se basa en la creación de objetos con el fin de resolver problemas y llevar a cabo operaciones. Esta técnica se basa en la representación del mundo real mediante la definición de objetos, los cuales cuentan con características (atributos) y acciones (métodos) que les permiten interactuar entre sí.

Comprendiendo las características de una clase

Las instancias son objetos concretos que representan una clase y poseen su propio estado y comportamiento. Estas se relacionan directamente con el concepto de encapsulamiento, ya que sus atributos están protegidos y solo pueden ser accedidos y modificados a través de los métodos de la clase. Esto garantiza que el objeto mantenga su estado coherente y su comportamiento se ajuste a los requerimientos de la aplicación.

Además, las instancias están asociadas con el polimorfismo, lo que significa que cada una puede responder de forma diferente a un mismo mensaje, dependiendo de la implementación de los métodos en la clase. Esto permite que diferentes instancias de una misma clase sean tratadas como si pertenecieran a una clase más general, lo que aumenta la flexibilidad y escalabilidad del código.

Introducción

Programación orientada a objetos: en este enfoque, creamos una plantilla o clase que define las características y comportamiento de un conjunto de objetos similares. Por ejemplo, la clase automóvil engloba las características comunes de los vehículos, como la marca, color y dimensiones, así como su funcionamiento, como el desplazamiento y maniobras en la carretera.

Cada automóvil en sí mismo es una instancia de la clase, con sus propias características únicas, como la marca, color y potencia. Esto significa que podemos tener diferentes automóviles pertenecientes a diferentes personas, cada uno con sus propias características específicas.

En términos técnicos, una instancia u objeto es una representación concreta de una clase que se almacena en la memoria del ordenador. Es decir, cada vez que creamos un automóvil, estamos creando una instancia única de la clase automóvil, con sus propias características y comportamiento específicos.

El proyecto

El proyecto consiste en dos archivos: el primero alberga la clase Rectangulo, guardada en el archivo Rectangulo.java, que no contiene el método main.
La última casilla del asistente de creación de clases New Java File debe estar desactivada.

La otra clase, que describe la aplicación RectanguloApp1, se guarda en el archivo RectanguloApp1.java y debe contener el método main. Por lo tanto, la última casilla del asistente de creación de clases New Java File debe estar activada.

En un proyecto, pueden haber varias clases (normalmente se guarda cada una en un archivo), pero solo una de ellas tiene el método main y representa la aplicación. Para diferenciarla de las demás, hemos añadido el sufijo App.

Los objetos

Al utilizar el método new, se reserva un espacio en la memoria para los miembros de datos y se obtiene una referencia que se asigna a la variable rect1 del tipo Rectangulo. Esta variable ahora hace referencia a un objeto que es creado utilizando el segundo constructor del listado. El rectángulo resultante se ubica en el punto de coordenadas x=10, y=20, y tiene un ancho de ancho=40 y una altura de alto=80.

Se crea otro objeto llamado rect2 de la clase Rectangulo, utilizando el tercer constructor, cuyo rectángulo estará situado en el punto de coordenadas x=0, y=0, y tendrá una anchura de ancho=40 y una altura de alto=80.

También se crea un objeto denominado rect3 de la clase Rectangulo, esta vez llamando al primer constructor. El rectángulo resultante estará situado en el punto de coordenadas x=0, y=0, y tendrá un ancho y una altura ambos iguales a 0.

El ciclo de existencia de un objeto

En lenguaje C++, el uso de new requiere de la correspondiente sentencia delete para liberar la memoria reservada para el objeto creado. Sin embargo, en lenguaje Java, el recolector de basura (garbage collector) se encarga de esta tarea automáticamente, aliviando al programador de una de las mayores preocupaciones en cuanto a gestión de memoria.

Por lo tanto, en Java, el objeto granImagen permanecerá en memoria hasta el final de la función main. Aunque en realidad, únicamente es necesario durante el bucle while. En C++ o C, el objeto sería eliminado mediante delete, liberando así la memoria que ocupaba.

La forma de proceder en Java sería asignar el valor null al objeto granImagen, marcado en letra negrita más arriba. Esto permitirá que el recolector de basura se encargue de liberar la memoria correspondiente a la imagen, una vez ya no se necesite.

De esta manera, en Java se asigna el valor null a referencias a objetos temporales que ocupen mucha memoria, en cuanto ya no sean necesarios.

Modelos de Elementos en Programación

Las clases son como recetas para crear objetos. En pocas palabras, podemos entender que una clase es un patrón que define la estructura y el comportamiento de un objeto. Imagina que tienes una clase llamada «Coche». En esta clase, se establecen las propiedades y métodos que un coche puede tener. Por ejemplo, podríamos definir la marca, el modelo y el color como propiedades, y la acción de conducir como método.

La utilidad de las clases se encuentra en que nos permiten crear instancias de objetos concretos a partir de un modelo establecido. Es decir, cuando creamos un objeto a partir de una clase, estamos generando una nueva versión de ese objeto, una instancia única que hereda las propiedades y métodos de la clase. Siguiendo con el ejemplo anterior, si creamos una instancia de la clase «Coche», podremos establecer los valores específicos de marca, modelo y color para crear un coche personalizado.

Son una herramienta útil en la programación orientada a objetos, ya que nos ayudan a organizar y estructurar nuestro código de manera eficiente. ¡Con una única clase, podemos crear múltiples instancias y obtener varias versiones de un mismo objeto con diferentes propiedades!

La esencia de una Clase Qué implica una Instancia

En el mundo de la programación, una instancia se refiere a un objeto individual que ha sido creado a partir de una clase, actuando como una especie de plantilla. Es una manifestación concreta de dicha clase, con sus propios valores y propiedades únicos.

En otras palabras, cuando creamos una instancia, tomamos la "plantilla" de la clase y le asignamos valores específicos, algo similar a los productos finales que se ensamblan a partir de un diseño previo. Cada instancia es independiente y puede interactuar con otras instancias o clases según las reglas definidas.

Esperamos que este artículo haya aclarado tus dudas sobre este tema y que ahora tengas las bases para comprender mejor cómo funcionan los objetos en la programación y cómo puedes utilizarlos para construir programas más eficientes y flexibles.

La clase

Clase Rectangulo:

Para crear una clase, se utiliza la palabra reservada class seguida del nombre de la clase, el cual debe empezar con letra mayúscula. La definición de la clase se encierra entre llaves de apertura y cierre.

Los valores de los atributos se almacenan en miembros dato o variables de instancia. Los nombres de estas variables deben comenzar con letra minúscula.

A continuación, vamos a crear una clase llamada Rectangulo que describirá las características comunes de estas figuras planas. Entre estas características se encuentran:

  • El origen del rectángulo: la posición de la esquina superior izquierda en un plano definido por dos números enteros, x e y.
  • Las dimensiones del rectángulo: su ancho y alto, también representados por números enteros.

La clase Rectangulo quedaría definida de la siguiente manera:

class Rectangulo {
int x,
int y,
int ancho,
int alto,
//faltan las funciones miembro
}

En los lenguajes de programación C++ y Java, existen diferencias en la definición y llamada de las funciones miembro. En C++, estas funciones se deben declarar, definir y llamar, mientras que en Java solo se deben definir y llamar.

Artículos relacionados