Acceso a Objetos con el mismo Nombre

25/01/2007 - 17:28 por Javito | Informe spam
Estoy viendo que se pude sin ningún problema crear objetos de una clase con
el mismo nombre por ejemploen un bucle For

Cliente Cli;
For (i=0;i<10;i++) Cli = new Cliente();

y los 10 objetos se crean y tienen vida independiente, pero como accedo a
ellos sin tener que almacenarlos y desalmacenarlos de una Colección.

un saludo

Preguntas similare

Leer las respuestas

#1 emiliano.sutil
26/01/2007 - 09:25 | Informe spam
On 25 ene, 18:49, "Javito" wrote:
Yo mismo te corrijo, no es cierto los objetos se crean y existen cada uno de
forma independiente, yo acabo de hacer tres objetos oyentes iguales para
tres objetos distintos de una clase que dispara un evento y cada clase
recibe la respuesta a su evento a pesar de que los tres objetos se llaman
Oyente



Hola,
Claro que se crean, el new lo que hace es devolver una instancia de
caja objeo, pero en la variable cli, solo puede quedar almacenada una
direccion de memoria. Por eso decia que no era lo mismo que con el
integer, aunque puede que queden tambien.
Eso que haces en un entorno de programacion sin recolector de basura
sería, un memory leak, es decir una perdida de memoria porque no
podrias acceder a ella y no podrias liberarla.
En C# es el collector de basura el que se encarga de ellos, pero tu ya
no puedes acceder a ellos.

MI consejo, es que almancenes toda lista de objettos creados en una
collection.

Un saludo

Emi
Respuesta Responder a este mensaje
#2 Hernan
26/01/2007 - 11:21 | Informe spam
> Yo mismo te corrijo, no es cierto los objetos se crean y existen cada uno de
> forma independiente, yo acabo de hacer tres objetos oyentes iguales para
> tres objetos distintos de una clase que dispara un evento y cada clase
> recibe la respuesta a su evento a pesar de que los tres objetos se llaman
> Oyente



1. Los objetos no tienen nombre.
2. Sí hay nombres que apuntan (o refieren) a objetos y
3. objetos que apuntan (o refieren) a otros objetos.
4. En tu ejemplo anterior 'Oyente' es el *tipo* del objeto (la clase).
5. En tu ejemplo, has creado 3 objetos Oyente *diferentes* (eso
después de
modificar el código, con Oye1 Oye2 Oye3 porque como está no compila.)
6. En C# los nombres también tienen tipos. Un nombre no puede apuntar
a un objeto con un tipo diferente o no "compatible" (subclases,
interfaces, etc.)
7. Distintos nombres pueden apuntar al mismo objeto.
8. Un objeto no puede saber qué nombres apuntan a él.
9. Sólo puedes acceder a un objeto vía una referencia, sea un nombre
u
otro objeto.

Hola,
Claro que se crean, el new lo que hace es devolver una instancia de
caja objeo, pero en la variable cli, solo puede quedar almacenada una
direccion de memoria. Por eso decia que no era lo mismo que con el
integer, aunque puede que queden tambien.
Eso que haces en un entorno de programacion sin recolector de basura
sería, un memory leak, es decir una perdida de memoria porque no
podrias acceder a ella y no podrias liberarla.
En C# es el collector de basura el que se encarga de ellos, pero tu ya
no puedes acceder a ellos.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida