Título: duda basica seguramente en java Publicado por: arts en 10 Octubre 2013, 17:01 pm He visto en algunos ejemplos de java algo que me ha sonado a chino, el problema es que me viene solo esto y no me explica nada más. Y no veo de que forma puede usarse el ejemplo es decir, simplemente me pone los comentarios y ahí se termina todo, no avanza para ver como se usa.
Precio [] catalogo; // Creacion de la referencia catalogo = new Precio [5]; // Creación del array de referencias catalogo[0] = new Precio(); ¿ Para que se usa una instancia de una clase del tipo Array?, y como se usa ?. Haber algún iluminado que me alumbre que no le veo sentido, principalmente porque como no continua no puedo ni imaginarme para que se usa. Un saludo y gracias :) Título: Re: duda basica seguramente en java Publicado por: Fakedo0r en 11 Octubre 2013, 13:38 pm Es un Array de una clase llamada Precio. Supongo que sabes que normalmente las clases se instancian. Entonces simplemente lo que hace es acceder al primer objeto del array y luego instanciarlo.
Esto: Código
Es equivalente a: Código
Título: Re: duda basica seguramente en java Publicado por: arts en 23 Octubre 2013, 01:25 am Es decir: ¿ en el primero metes en la posición 0 del array catalogo un constructor de la clase Precio vacío de forma temporal y para acceder a algún método de Precio valdría con poner por ejemplo catalogo[0].dameSalario(); ?
Y el segundo simplemente es una instancia cPrecio de la clase Precio ? con el que puedo hacer perfectamente cPrecio.dameSalario(); Título: Re: duda basica seguramente en java Publicado por: Mitsu en 23 Octubre 2013, 01:51 am Un array puedes declararlo de tipos de datos y de objetos. Por lo que cuando haces:
Código
Lo que estás haciendo es crear un array tipo Libreria con 10 objetos Libreria dentro. Si bien esos elementos están creados, no están instanciados. Por lo que son de tipo Librería, tienen que instanciarse para poder usarse. Código
Ahora, como hemos instanciado el primer objeto del arreglo tipo Libreria, podemos acceder a sus metodos y variables (en caso tuviera). Código
Si quieres llamar a un método ni bien instancias el objeto, puedes hacer lo siguiente: Código
Saludos. Título: Re: duda basica seguramente en java Publicado por: visualfree en 23 Octubre 2013, 16:45 pm Estimado:
Te dejo un ejemplo sencillo. Código: import java.util.*; Atento a tus comentarios. Saluda Atte. Título: Re: duda basica seguramente en java Publicado por: arts en 24 Octubre 2013, 01:04 am Estimado: Te dejo un ejemplo sencillo. Código: import java.util.*; Atento a tus comentarios. Saluda Atte. Ese ejemplo lo entiendo, sin embargo lo entiendo porque hace la instancia sin mas y usa el nombre de la instancia para acceder al array recorrerlo llenarlo y hacer la media. Sin embargo en el ejemplo anterior de Libros primero se crea el array de 10 elementos con el nombre libro. Y después hace librería[0] = new Libreria(); cuando yo habría hecho como tu en el ejemplo, habría usado libro[0] = new librería(), sin embargo el usa todo el rato libro y es lo que me confunde. :/ Título: Re: duda basica seguramente en java Publicado por: Mitsu en 24 Octubre 2013, 03:27 am Trata de comprender 2 cosas.
Crear un objeto es muy diferente a INSTANCIAR. Cuando tu creas un objeto y no lo instancias, ese objeto tiene el valor Null, por que no apunta a nada. Ese objeto tienes que instanciarlo para que pueda usar sus métodos. Un objeto no es más que una referencia de una clase en particular. Así, si hacemos lo del ejemplo anterior: Código
Estamos creando solamente diez referencias de la clase Librería. Si ahora tratáramos de hacer esto: Código
Te dará un hermoso NullPointerException. ¿Por qué? Sencillamente porque NO HEMOS INSTANCIADOS LAS REFERENCIAS U OBJETOS, como quieras llamarle. Todo objeto en Java necesita ser instanciado, de lo contrario, el objeto será prácticamente inexistente e inútil. Saludos. Título: Re: duda basica seguramente en java Publicado por: arts en 24 Octubre 2013, 16:30 pm Vale ya lo pillo. Ya se como va gracias.
|