Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ars1993 en 14 Febrero 2014, 19:37 pm



Título: Crear instancia de una clase en JAVA
Publicado por: ars1993 en 14 Febrero 2014, 19:37 pm
Buenas! Tengo el siguiente código en JAVA:

Código:
public class Person{
      public class Address{
      }
}

Ya sé que no tiene constructor pero solamente lo pongo para dar la idea de lo que tengo. Una classe dentro de otra.

Cómo puedo crear una instancia de la clase Address? He probado con el "new" de siempre:
Código:
Address address1 = new Address();

Pero el intento no ha tenido éxito. Alguien me puede decir como lo debo hacer? Gracias! :D


Título: Re: Crear instancia de una clase en JAVA
Publicado por: egyware en 14 Febrero 2014, 19:45 pm
Si no mal recuerdo seria algo asi...


Código
  1. Person person = new Person();
  2. Person.Address addres = new person.Address();
  3.  

En realidad no estoy seguro ya que esas clases internes solo tienen valides dentro del misma misma clase y ahi puedes invocarlas como si fuese una clase normal.
Te recomiendo que leas sobre las clases internas y sus usos.

Código
  1. public class Person
  2. {
  3.   public static class Address{
  4.  }
  5. }
  6. //----
  7. Person.Address address = new Person.Address();
  8.  

Hay un detalle sobre las clases internas y clases internas estáticas, las clases internas comparten las variables de la clase contenedora por eso creo yo deben ser instanciadas con un objeto (ver primer ejemplo), y las clases estaticas no, debido que ellas no comparten las variables de las clase contenedora.
Sinceramente siempre he hecho esto y me ha funcionado de maravilla:

Código
  1. public class Person
  2. {
  3.    public class Address
  4.    {
  5.    }
  6.     public void metodo()
  7.     {  
  8.        Adress adress = new Address();
  9.     }
  10. }
  11.  

Saludos!


Título: Re: Crear instancia de una clase en JAVA
Publicado por: Yaldabaot en 22 Febrero 2014, 19:10 pm
No comprendo mucho lo que quieres hacer, pero podrías usar un extends para heredar desde la super clase y así poder tener acceso a sus atributos.