CAPITULO 12

02.12.2014 09:10

 

¿Cómo se muestra un objeto ArryLists?

La clase ArrayList en Java, es una clase que permite almacenar datos en memoria de forma similar a los Arrays, con la ventaja de que el numero de elementos que almacena, lo hace de forma dinámica, es decir, que no es necesario declarar su tamaño como pasa con los Arrays. Para todos aquellos que hayáis estudiado en alguna asignatura las estructuras de datos de las Pilas, Colas, Listas, Arboles (AVL, B, B+, B*) etc. hay decir que los ArrayList “tiran por tierra” toda la teoría que hay detrás de esas estructuras de datos ya que los ArrayList nos permiten añadir, eliminar y modificar elementos (que pueden ser objetos o elementos atómicos) de forma trasparente para el programador. Antes de pasar a explicar el manejo de los ArrayList, dejamos un enlace al JavaDoc.

Los principales métodos para trabajar con los ArrayList son los siguientes:

// Declaración de un ArrayList de "String". Puede ser de cualquier otro Elemento u Objeto (float, Boolean, Object, ...)

ArrayList<String> nombreArrayList = new ArrayList<String>();

nombreArrayList.add("Elemento");   // Añade el elemento al ArrayList

nombreArrayList.add(n, "Elemento 2");   // Añade el elemento al ArrayList en la posición 'n'

nombreArrayList.size();   // Devuelve el numero de elementos del ArrayList

nombreArrayList.get(2);   // Devuelve el elemento que esta en la posición '2' del ArrayList

nombreArrayList.contains("Elemento");   // Comprueba se existe del elemento ('Elemento') que se le pasa como parametro

nombreArrayList.indexOf("Elemento");   // Devuelve la posición de la primera ocurrencia ('Elemento') en el ArrayList

nombreArrayList.lastIndexOf("Elemento");   // Devuelve la posición de la última ocurrencia ('Elemento') en el ArrayList

nombreArrayList.remove(5);   // Borra el elemento de la posición '5' del ArrayList

nombreArrayList.remove("Elemento");   // Borra la primera ocurrencia del 'Elemento' que se le pasa como parametro.

nombreArrayList.clear();   //Borra todos los elementos de ArrayList

nombreArrayList.isEmpty();   // Devuelve True si el ArrayList esta vacio. Sino Devuelve False

ArrayList arrayListCopia = (ArrayList) nombreArrayList.clone();   // Copiar un ArrayList

Object[] array = nombreArrayList.toArray();   // Pasa el ArrayList a un Array

Otra cosa muy importante a la hora de trabajar con los ArrayList son los “Iteradores” (Iterator). Los Iteradores sirven para recorrer los ArrayList y poder trabajar con ellos. Los Iteradores solo tienen tres métodos que son el “hasNext()”para comprobar que siguen quedando elementos en el iterador, el “next()”  para que nos de el siguiente elemento del iterador; y el “remove()” que sirve para eliminar el elemento del Iterador.

 

La sintaxis para crear el ArrayList de Objetos es la siguiente:

1

ArrayList <ClaseDelObjeto> NombreArrayList= new ArrayList <ClaseDelObjeto> ();

ClaseDelObjeto => La clase que vamos a emplear para el manejo de los datos del objeto.
NombreArrayList => El nombre del ArrayList que vamos a manipular.

Los anteriores son datos que se reemplazan con los nombres que deseemos y debamos usar. Para usar esta sintaxis debemos de importar las librerias necesarias para usar el ArrayList:

1

import java.util.ArrayList;

 

Como se arreglan y eliminan elementos de un objeto

 

Muchas veces nos es necesario quietar cualquier elemento que este duplicado dentro de un ArrayList<T> de Java. Para realizar tal acción existen colecciones del tipo HashSet<T> que nos permiten agregar todos los elementos del array y nos devuelve una colección de objetos sin duplicados.

 

Para realizar tal acción simplemente hay que agregar la colección del ArrayList<T> al HashSet<T> y luego regresar la información. Se puede observar en el siguiente código:

 

En el código anterior hay dos casos, el primero usa un HashSet<T> el cual elimina los duplicados de un array de String pero nos lo devuelve sin ningún orden en particular. En el segundo caso se usa un LinkedHashSet<T> el cual elimina los repetidos de un ArrayList de objetos Datos y mantiene el orden con el que venía. Si se desea que la respuesta este ordenada LinkedHashSet es la solución. 

 

Es importante que al trabajar con objetos con varios atributos como lo es Datos sobrescribamos sus métodos equals() y hashCode(). Pueden leer sobre esto en el siguiente post.

 

Al final la respuesta nos quedaría asi:

 

 

 

 

 

Cadena2
 

Cadena3
 

Cadena4
 

Cadena1
 

Info: 1-Nombre1-Empresa1
 

Info: 2-Nombre2-Empresa2
 

Info: 3-Nombre3-Empresa3
 

Info: 4-Nombre4-Empresa4
 

Info: 5-Nombre5-Empresa5
 

Info: 1-Nombre2-Empresa2
 

 

 

 

 

Como obtener el tamaño de un objeto

na colección de objetos es un objeto que puede almacenar un número variable de elementos siendo cada elemento otro objeto. Siguiendo con nuestro símil, podríamos ver una colección como una caja que contiene más cajas dentro. Puede haber distintos tipos de colecciones de tamaño “flexible”, es decir, que se pueden encoger o agrandar según las necesidades.

 

 

En Java se distinguen diversos tipos, agrupados en una estructura general similar a la que muestra este esquema.

 

 

 

Por el momento consideraremos que una interfaz viene siendo algo así como una protoclase: define ciertas cosas que van a compartir cierto número de subinterfaces y de clases.

Cada tipo de colección tiene unas características.

a) Una lista (list) es una colección de objetos donde cada uno de ellos lleva un índice asociado. Así, podríamos tener una lista con los nombres de las personas que han utilizado un servicio de acceso a internet que podría ser: usuarios --> (Juan R.R., Sara G.B., Rodolfo M.N., Pedro S.T., Claudio R.S., Juan R.R.). Donde cada contenido va asociado a un índice, usuario(0) sería Juan R.R., usuario(1) sería Sara G.B, usuario(2) sería Rodolfo M.N. y así sucesivamente. En una lista podemos insertar y eliminar objetos de posiciones intermedias. Ejemplos de listas son la clase ArrayList y LinkedList del API de Java.

b) Un conjunto (set) sería una colección de objetos que no admite duplicados. Siguiendo el ejemplo anterior, un conjunto nos serviría para saber los usuarios distintos que han utilizado el servicio de acceso a internet, pero no tendríamos información sobre el orden y una misma persona no aparecería más de una vez, ni siquiera aunque hubiera utilizado el servicio varias veces. Ejemplo de conjunto sería la clase HashSet del API de Java.

c) Una cola (queue) sería una colección de objetos que se comportan como lo haría un grupo de personas en la cola de una caja de un supermercado. Los objetos se van poniendo en cola y el primero en salir es el primero que llegó.  

d) Una pila (stack) sería una colección de objetos que se comportan como lo haría un montón de objetos apilados, el último en añadirse queda en la cima de la pila y el primero en salir es el último que ha llegado. El primero en llegar está en el fondo de la pila.

e) Existen otros tipos de colecciones.

 

Lo cierto es que las estructuras de datos en Java ofrecen muchas posibilidades y variantes. Por ejemplo, podemos tener conjuntos sin orden entre los elementos, pero también conjuntos ordenados. Y podemos tener colas donde el objeto que sale primero no es el primero que llegó, sino el que tiene mayor prioridad o “urgencia” por salir. Para escoger un tipo de comportamiento u otro existen distintas clases que se catalogan como colecciones en el API de Java. Incluso existen clases que sirven para agrupar objetos que Java no clasifica como colecciones, aunque su funcionamiento es muy similar. Sería el caso de los Maps, objetos que contienen parejas de objetos donde un elemento sirve para encontrar al otro, al igual que un listín telefónico contiene parejas “Nombre de personas – Datos de dirección y teléfono” y el nombre de persona es lo que nos sirve para encontrar sus datos asociados. En la nomenclatura de Java, los Maps no son colecciones. Por eso a veces se usa el término “contenedores de objetos” para hacer referencia a listas, conjuntos, colas, mapas, etc. que al fin y al cabo son objetos que contienen más objetos (como una caja que contiene más cajas).

¿Cómo saber qué clase elegir? Hay varios factores a tener en cuenta, entre ellos el número de datos que tenemos que gestionar (no es lo mismo trabajar con una colección de 50 objetos que con una colección de 50.000 objetos) y el tipo de procesos que tenemos que realizar con ellos (no es lo mismo una lista en que los nuevos elementos se añaden casi siempre al final de la lista que una lista donde los nuevos elementos se añaden frecuentemente en posiciones intermedias). Cada clase resulta más eficiente que otra para realizar determinados procesos. Esto es de especial interés cuando hay que gestionar muchos datos. Si hablamos de sólo unas decenas de datos no vamos a ser capaces de apreciar diferencias de rendimientos.

Nosotros no vamos a estudiar todas las clases contenedoras de objetos porque excedería los objetivos de este curso. Citaremos simplemente algunas clases que son frecuentemente usadas por los programadores porque sirven para cubrir muchas necesidades de programación. Estas clases son ArrayList, LinkedList, HashSet y HashMap. Vamos a centrarnos primeramente en una de las clases más usadas, la clase ArrayList del API de Java. Estudiando esta clase aprenderemos cosas que después nos serán útiles para aplicar a cualquier contenedor de objetos. No obstante, siempre habremos de consultar la documentación del API de Java para conocer a fondo una clase.

 

Cual es el concepto índice

Se entiende por índice al sistema utilizado principal pero no exclusivamente en los libros con el objetivo de organizar y ordenar el material que se encontrará a lo largo del mismo. El índice supone unapresentación clasificada y mayor o menormente accesible que busca permitir al lector encontrar las secciones de mayor utilidad, así como también establecer un orden lineal necesario para llevar adelante la lectura. Tradicionalmente, el índice se construye a través de títulos, subtítulos o números que sirven como elementos clasificadores de la información.

Hay diversas maneras de establecer un índice en un libro, y este puede aparecer tanto al principio como al final del libro, dependiendo del tipo de publicación, el lugar de impresión y otros detalles. Por otro lado, mientras el índice más conocido es el índice de contenido o aquel que organiza los ítems de manera lineal a como se han ido desarrollando en el texto, también existe el índice onomástico que presenta los términos, personajes o conceptos encontrados a lo largo del texto con los números de páginas en los que aparecen. Ambos tipos de índices son necesarios y útiles para diferentes tipos de búsquedas.

El índice debería servir siempre para que el lector conozca no sólo los contenidos que han sido incluidos en la obra, sino también cómo estos han sido clasificados y organizados, además de permitir establecer referencias cruzadas y grupos de conceptos de acuerdo a la necesidad específica de cada lector.

El término índice también es utilizado para otros espacios más allá de las publicaciones de texto. Siempre mantiene un objetivo de clasificaciónorganización y orden de diferentes tipos de contenidos. Por ejemplo, el índice de una biblioteca permitirá conocer, encontrar y utilizar los libros presentes en los diferentes espacios de manera rápida, eficiente y lógica. Un índice estadístico es por ejemplo una clasificación de números y datos que han sido propiamente organizados a modo tal de ser útiles para aquellos que requieran estudiarlos.

Como llevar a cabo operaciones comunes en un objeto

En el paradigma de programación orientada a objetos (POO, o bien OOP en inglés), un objeto es un programa de computadora que consta de un estado y de un comportamiento, que a su vez constan respectivamente de datos almacenados y de tareas realizables durante el tiempo de ejecución. Un objeto puede ser creado instanciando unaclase, como ocurre en la programación orientada a objetos, o mediante escritura directa de código y la replicación otros objetos, como ocurre en la programación basada en prototipos.

Estos objetos interactúan unos con otros, en contraposición a la visión tradicional en la cual un programa es una colección de subrutinas (funciones o procedimientos), o simplemente una lista de instrucciones para el computador. Cada objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a otros objetos de manera similar a unservicio (en Windows) o demonio (en Unix y Linux).

En el mundo de la programación orientada a objetos (POO), un objeto es el resultado de la instanciación de unaclase. Una clase es el anteproyecto que ofrece la funcionalidad en ella definida, pero ésta queda implementada sólo al crear una instancia de la clase, en la forma de un objeto. Por ejemplo: dado un plano para construir sillas (una clase de nombre clase_silla), entonces una silla concreta, en la que podemos sentarnos, construida a partir de este plano, sería un objeto de clase_silla. Es posible crear (construir) múltiples objetos (sillas) utilizando la definición de la clase (plano) anterior. Los conceptos de clase y objetos son análogos a los de tipo de datos y variable; es decir, definida una clase podemos crear objetos de esa clase, igual que disponiendo de un determinado tipo de dato (por ejemplo el tipo entero), podemos definir variables de dicho tipo:

 

 

¿Cómo se muestra un objeto ArryLists?

La clase ArrayList en Java, es una clase que permite almacenar datos en memoria de forma similar a los Arrays, con la ventaja de que el numero de elementos que almacena, lo hace de forma dinámica, es decir, que no es necesario declarar su tamaño como pasa con los Arrays. Para todos aquellos que hayáis estudiado en alguna asignatura las estructuras de datos de las Pilas, Colas, Listas, Arboles (AVL, B, B+, B*) etc. hay decir que los ArrayList “tiran por tierra” toda la teoría que hay detrás de esas estructuras de datos ya que los ArrayList nos permiten añadir, eliminar y modificar elementos (que pueden ser objetos o elementos atómicos) de forma trasparente para el programador. Antes de pasar a explicar el manejo de los ArrayList, dejamos un enlace al JavaDoc.

Los principales métodos para trabajar con los ArrayList son los siguientes:

// Declaración de un ArrayList de "String". Puede ser de cualquier otro Elemento u Objeto (float, Boolean, Object, ...)

ArrayList<String> nombreArrayList = new ArrayList<String>();

nombreArrayList.add("Elemento");   // Añade el elemento al ArrayList

nombreArrayList.add(n, "Elemento 2");   // Añade el elemento al ArrayList en la posición 'n'

nombreArrayList.size();   // Devuelve el numero de elementos del ArrayList

nombreArrayList.get(2);   // Devuelve el elemento que esta en la posición '2' del ArrayList

nombreArrayList.contains("Elemento");   // Comprueba se existe del elemento ('Elemento') que se le pasa como parametro

nombreArrayList.indexOf("Elemento");   // Devuelve la posición de la primera ocurrencia ('Elemento') en el ArrayList

nombreArrayList.lastIndexOf("Elemento");   // Devuelve la posición de la última ocurrencia ('Elemento') en el ArrayList

nombreArrayList.remove(5);   // Borra el elemento de la posición '5' del ArrayList

nombreArrayList.remove("Elemento");   // Borra la primera ocurrencia del 'Elemento' que se le pasa como parametro.

nombreArrayList.clear();   //Borra todos los elementos de ArrayList

nombreArrayList.isEmpty();   // Devuelve True si el ArrayList esta vacio. Sino Devuelve False

ArrayList arrayListCopia = (ArrayList) nombreArrayList.clone();   // Copiar un ArrayList

Object[] array = nombreArrayList.toArray();   // Pasa el ArrayList a un Array

Otra cosa muy importante a la hora de trabajar con los ArrayList son los “Iteradores” (Iterator). Los Iteradores sirven para recorrer los ArrayList y poder trabajar con ellos. Los Iteradores solo tienen tres métodos que son el “hasNext()”para comprobar que siguen quedando elementos en el iterador, el “next()”  para que nos de el siguiente elemento del iterador; y el “remove()” que sirve para eliminar el elemento del Iterador.

 

La sintaxis para crear el ArrayList de Objetos es la siguiente:

1

ArrayList <ClaseDelObjeto> NombreArrayList= new ArrayList <ClaseDelObjeto> ();

ClaseDelObjeto => La clase que vamos a emplear para el manejo de los datos del objeto.
NombreArrayList => El nombre del ArrayList que vamos a manipular.

Los anteriores son datos que se reemplazan con los nombres que deseemos y debamos usar. Para usar esta sintaxis debemos de importar las librerias necesarias para usar el ArrayList:

1

import java.util.ArrayList;

 

Como se arreglan y eliminan elementos de un objeto

 

Muchas veces nos es necesario quietar cualquier elemento que este duplicado dentro de un ArrayList<T> de Java. Para realizar tal acción existen colecciones del tipo HashSet<T> que nos permiten agregar todos los elementos del array y nos devuelve una colección de objetos sin duplicados.

 

Para realizar tal acción simplemente hay que agregar la colección del ArrayList<T> al HashSet<T> y luego regresar la información. Se puede observar en el siguiente código:

 

En el código anterior hay dos casos, el primero usa un HashSet<T> el cual elimina los duplicados de un array de String pero nos lo devuelve sin ningún orden en particular. En el segundo caso se usa un LinkedHashSet<T> el cual elimina los repetidos de un ArrayList de objetos Datos y mantiene el orden con el que venía. Si se desea que la respuesta este ordenada LinkedHashSet es la solución. 

 

Es importante que al trabajar con objetos con varios atributos como lo es Datos sobrescribamos sus métodos equals() y hashCode(). Pueden leer sobre esto en el siguiente post.

 

Al final la respuesta nos quedaría asi:

 

 

 

 

 

Cadena2
 

Cadena3
 

Cadena4
 

Cadena1
 

Info: 1-Nombre1-Empresa1
 

Info: 2-Nombre2-Empresa2
 

Info: 3-Nombre3-Empresa3
 

Info: 4-Nombre4-Empresa4
 

Info: 5-Nombre5-Empresa5
 

Info: 1-Nombre2-Empresa2
 

 

 

 

 

Como obtener el tamaño de un objeto

na colección de objetos es un objeto que puede almacenar un número variable de elementos siendo cada elemento otro objeto. Siguiendo con nuestro símil, podríamos ver una colección como una caja que contiene más cajas dentro. Puede haber distintos tipos de colecciones de tamaño “flexible”, es decir, que se pueden encoger o agrandar según las necesidades.

 

 

En Java se distinguen diversos tipos, agrupados en una estructura general similar a la que muestra este esquema.

 

 

 

Por el momento consideraremos que una interfaz viene siendo algo así como una protoclase: define ciertas cosas que van a compartir cierto número de subinterfaces y de clases.

Cada tipo de colección tiene unas características.

a) Una lista (list) es una colección de objetos donde cada uno de ellos lleva un índice asociado. Así, podríamos tener una lista con los nombres de las personas que han utilizado un servicio de acceso a internet que podría ser: usuarios --> (Juan R.R., Sara G.B., Rodolfo M.N., Pedro S.T., Claudio R.S., Juan R.R.). Donde cada contenido va asociado a un índice, usuario(0) sería Juan R.R., usuario(1) sería Sara G.B, usuario(2) sería Rodolfo M.N. y así sucesivamente. En una lista podemos insertar y eliminar objetos de posiciones intermedias. Ejemplos de listas son la clase ArrayList y LinkedList del API de Java.

b) Un conjunto (set) sería una colección de objetos que no admite duplicados. Siguiendo el ejemplo anterior, un conjunto nos serviría para saber los usuarios distintos que han utilizado el servicio de acceso a internet, pero no tendríamos información sobre el orden y una misma persona no aparecería más de una vez, ni siquiera aunque hubiera utilizado el servicio varias veces. Ejemplo de conjunto sería la clase HashSet del API de Java.

c) Una cola (queue) sería una colección de objetos que se comportan como lo haría un grupo de personas en la cola de una caja de un supermercado. Los objetos se van poniendo en cola y el primero en salir es el primero que llegó.  

d) Una pila (stack) sería una colección de objetos que se comportan como lo haría un montón de objetos apilados, el último en añadirse queda en la cima de la pila y el primero en salir es el último que ha llegado. El primero en llegar está en el fondo de la pila.

e) Existen otros tipos de colecciones.

 

Lo cierto es que las estructuras de datos en Java ofrecen muchas posibilidades y variantes. Por ejemplo, podemos tener conjuntos sin orden entre los elementos, pero también conjuntos ordenados. Y podemos tener colas donde el objeto que sale primero no es el primero que llegó, sino el que tiene mayor prioridad o “urgencia” por salir. Para escoger un tipo de comportamiento u otro existen distintas clases que se catalogan como colecciones en el API de Java. Incluso existen clases que sirven para agrupar objetos que Java no clasifica como colecciones, aunque su funcionamiento es muy similar. Sería el caso de los Maps, objetos que contienen parejas de objetos donde un elemento sirve para encontrar al otro, al igual que un listín telefónico contiene parejas “Nombre de personas – Datos de dirección y teléfono” y el nombre de persona es lo que nos sirve para encontrar sus datos asociados. En la nomenclatura de Java, los Maps no son colecciones. Por eso a veces se usa el término “contenedores de objetos” para hacer referencia a listas, conjuntos, colas, mapas, etc. que al fin y al cabo son objetos que contienen más objetos (como una caja que contiene más cajas).

¿Cómo saber qué clase elegir? Hay varios factores a tener en cuenta, entre ellos el número de datos que tenemos que gestionar (no es lo mismo trabajar con una colección de 50 objetos que con una colección de 50.000 objetos) y el tipo de procesos que tenemos que realizar con ellos (no es lo mismo una lista en que los nuevos elementos se añaden casi siempre al final de la lista que una lista donde los nuevos elementos se añaden frecuentemente en posiciones intermedias). Cada clase resulta más eficiente que otra para realizar determinados procesos. Esto es de especial interés cuando hay que gestionar muchos datos. Si hablamos de sólo unas decenas de datos no vamos a ser capaces de apreciar diferencias de rendimientos.

Nosotros no vamos a estudiar todas las clases contenedoras de objetos porque excedería los objetivos de este curso. Citaremos simplemente algunas clases que son frecuentemente usadas por los programadores porque sirven para cubrir muchas necesidades de programación. Estas clases son ArrayList, LinkedList, HashSet y HashMap. Vamos a centrarnos primeramente en una de las clases más usadas, la clase ArrayList del API de Java. Estudiando esta clase aprenderemos cosas que después nos serán útiles para aplicar a cualquier contenedor de objetos. No obstante, siempre habremos de consultar la documentación del API de Java para conocer a fondo una clase.

 

Cual es el concepto índice

Se entiende por índice al sistema utilizado principal pero no exclusivamente en los libros con el objetivo de organizar y ordenar el material que se encontrará a lo largo del mismo. El índice supone unapresentación clasificada y mayor o menormente accesible que busca permitir al lector encontrar las secciones de mayor utilidad, así como también establecer un orden lineal necesario para llevar adelante la lectura. Tradicionalmente, el índice se construye a través de títulos, subtítulos o números que sirven como elementos clasificadores de la información.

Hay diversas maneras de establecer un índice en un libro, y este puede aparecer tanto al principio como al final del libro, dependiendo del tipo de publicación, el lugar de impresión y otros detalles. Por otro lado, mientras el índice más conocido es el índice de contenido o aquel que organiza los ítems de manera lineal a como se han ido desarrollando en el texto, también existe el índice onomástico que presenta los términos, personajes o conceptos encontrados a lo largo del texto con los números de páginas en los que aparecen. Ambos tipos de índices son necesarios y útiles para diferentes tipos de búsquedas.

El índice debería servir siempre para que el lector conozca no sólo los contenidos que han sido incluidos en la obra, sino también cómo estos han sido clasificados y organizados, además de permitir establecer referencias cruzadas y grupos de conceptos de acuerdo a la necesidad específica de cada lector.

El término índice también es utilizado para otros espacios más allá de las publicaciones de texto. Siempre mantiene un objetivo de clasificaciónorganización y orden de diferentes tipos de contenidos. Por ejemplo, el índice de una biblioteca permitirá conocer, encontrar y utilizar los libros presentes en los diferentes espacios de manera rápida, eficiente y lógica. Un índice estadístico es por ejemplo una clasificación de números y datos que han sido propiamente organizados a modo tal de ser útiles para aquellos que requieran estudiarlos.

Como llevar a cabo operaciones comunes en un objeto

En el paradigma de programación orientada a objetos (POO, o bien OOP en inglés), un objeto es un programa de computadora que consta de un estado y de un comportamiento, que a su vez constan respectivamente de datos almacenados y de tareas realizables durante el tiempo de ejecución. Un objeto puede ser creado instanciando unaclase, como ocurre en la programación orientada a objetos, o mediante escritura directa de código y la replicación otros objetos, como ocurre en la programación basada en prototipos.

Estos objetos interactúan unos con otros, en contraposición a la visión tradicional en la cual un programa es una colección de subrutinas (funciones o procedimientos), o simplemente una lista de instrucciones para el computador. Cada objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a otros objetos de manera similar a unservicio (en Windows) o demonio (en Unix y Linux).

En el mundo de la programación orientada a objetos (POO), un objeto es el resultado de la instanciación de unaclase. Una clase es el anteproyecto que ofrece la funcionalidad en ella definida, pero ésta queda implementada sólo al crear una instancia de la clase, en la forma de un objeto. Por ejemplo: dado un plano para construir sillas (una clase de nombre clase_silla), entonces una silla concreta, en la que podemos sentarnos, construida a partir de este plano, sería un objeto de clase_silla. Es posible crear (construir) múltiples objetos (sillas) utilizando la definición de la clase (plano) anterior. Los conceptos de clase y objetos son análogos a los de tipo de datos y variable; es decir, definida una clase podemos crear objetos de esa clase, igual que disponiendo de un determinado tipo de dato (por ejemplo el tipo entero), podemos definir variables de dicho tipo: