Foros del Web » Programación para mayores de 30 ;) » Java »

Heredar clases java con netbeans

Estas en el tema de Heredar clases java con netbeans en el foro de Java en Foros del Web. Hola buenas tardes les comento soy nuevo en esto de la programación en java por lo regular siempre programo en .net pero ahora me llamo ...
  #1 (permalink)  
Antiguo 11/08/2012, 17:35
 
Fecha de Ingreso: julio-2012
Ubicación: Distrito Federal
Mensajes: 7
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta Heredar clases java con netbeans

Hola buenas tardes les comento soy nuevo en esto de la programación en java por lo regular siempre programo en .net pero ahora me llamo la atención aprender un poco de java en fin estoy intentando de Heredar clases pero me sale el siguiente error an enclosing instance that contains newclase.Datos.Trillas is required

les muestro el codigo fuente de la clase :

Código Javascript:
Ver original
  1. public class Datos
  2. {
  3.    
  4.  
  5.    public  boolean registro; // DECLARO VARIABLES GLOBALES
  6.    public String libro;
  7.    public String editorial;
  8.    public String Autor;
  9.    public int edicion;
  10.  public void newlibro(String nlibro,int nedicion,String Autor,String editorial)
  11.  {
  12.   this.libro=nlibro; //IGUALO LAS VARIABLES
  13.   this.Autor=Autor;
  14.   this.edicion=nedicion;
  15.   this.editorial=editorial;
  16.  
  17.  System.out.println("NUEVO LIBRO REGISTRADO"+this.libro); //IMPRIMO EL RESULTADO
  18.  System.out.println("EDICION"+this.Autor);
  19.  System.out.println("AUTOR"+this.edicion);
  20.  System.out.println("AUTOR"+this.editorial);
  21.  registro=true;
  22.  }
  23.  public void deletelibro(String nlibro)
  24.  {
  25.      
  26.     if(nlibro.trim().equals("")|| nlibro.trim()=="")
  27.     JOptionPane.showMessageDialog(null,"LA VARIABLE LIBRO ESTA VACIA","VARIABLE LIBRO VACIA",JOptionPane.ERROR_MESSAGE);
  28.     //VERIFICO SI ESTA VACIA O NO
  29.     else
  30.         registro=false;
  31.         System.out.println("LIBRO BORRADO EXITOSAMENTE :D");
  32.  }
  33. class Trillas extends Datos // CREO LA SUBCLASE
  34.  {
  35.     public Trillas()
  36.     {
  37.         this.editorial="TRILLAS";
  38.     }
  39.     public void editorial()
  40.     {
  41.         System.out.println("LA EDITORIAL ES"+""+this.editorial);
  42.     }
  43.  }

Y Finalmente en el main de mi proyecto tengo el siguiente codigo fuente:

Código Javascript:
Ver original
  1. */
  2. package newclase;
  3. import newclase.Datos;
  4. import javax.swing.JOptionPane;
  5. public class NewClase {
  6.  
  7.     /**
  8.      * @param args the command line arguments
  9.      */
  10.     public static void main(String[] args)
  11.     {
  12.     String op;
  13.     Datos libros = new Datos(); // DECLARO LA NUEVA INSTANCIA
  14.     op=JOptionPane.showInputDialog(null,"ELIGE OPCION");
  15.     switch(op)
  16.     {
  17.        
  18.         case "1":
  19.        String dlete=JOptionPane.showInputDialog(null,"INSERTE EL TITULO LIBRO","TITULO",JOptionPane.INFORMATION_MESSAGE);
  20.             libros.deletelibro(dlete);
  21.  
  22.     break;
  23.  
  24.         case "2":
  25.    
  26. [B]Trillas os = new Trillas(); //ERRROR [/B]
  27. break ;
  28.      
  29.     }
  30.    
  31.    
  32.     }

Pero como les comentaba tengo el error al intentar hacer esto: Trillas os = new Trillas(); //ERRROR espero y me puedan ayudar he intentado toda la tarde y no doy una y por ultimo utilizo netbeans IDE 7.1.2 GRACIAS
  #2 (permalink)  
Antiguo 12/08/2012, 03:42
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Heredar clases java con netbeans

Hola:

En java el mecanismo habitual es hacer un fichero .java por cada clase. Dentro de un fichero .java sólo puede haber una clase public y es por tanto la única clase que se ve desde fuera del package al que pertenece esa clase. Tú tienes Trillas y Datos dentro del mismo fichero y la public es Datos, así que el acceso a Trillas está muy restringido. Es más, no sé si el sangrado que has puesto está bien, pero da la impresión de que Trillas es una clase interna dentro de Datos y no es public, así que el acceso todavía es más restringido.

Tal cual lo tienes, posiblemente sólo puedes acceder a Trillas desde clases que estén en el mismo paquete que Datos (package) y debes añadir Datos delante (Datos.Trillas o algo así).

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 13/08/2012, 23:55
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años, 7 meses
Puntos: 69
Respuesta: Heredar clases java con netbeans

si la clase Trillas está dentro la clase Datos, necesitas hacer un objeto de tipo Datos, y en la clase datos tener un método que te genere un objeto de la clase Trillas, y usar ese metodo para tener la instancia: algo asi:

Datos.Trillas objeto = new Datos().crearInstancia();

siendo que crearInstancia() esta definido mas o menos asi:
public Trillas crearInstancia() {
return new Trillas();
}

ese metodo debera estar dentro de la clase Datos pero fuera de Trillas, y si quieres crear el objeto desde afuera debera ser public, o protected si quieres que sea accededido desde el paquete y subclases...

Ahora bien, como dice Don Chuidiang, puede haber mas de 1 clase en un archivo .java siempre y cuando solo una de ellas sea publica.. dado que coincido con el en que tu identacion esta algo confusa, si es el caso en que Trillas esta fuera de la clase datos pero en el mismo archivo y dado que la clase no tiene modificador de accesso, osea es de tipo Default

Podras crear un objeto de la clase Trillas si y solo si, lo haces desde una clase dentro del mismo package, si lo intentas desde una clase que no esta en el package o lo instentas desde una subclase, no podras, ya que es de accesso restringido...

Ahora trata tambien de importar la clase Trillas (si es que esta fuera de la de Datos), sin embargo tu error dice "Datos.Trillas required" osea que si esta adentro de datos? entonces le haces como dije al inicio, si no esta adentro importala y crea el objeto, pero la clase donde crees el objeto debera estar en el mismo package...
__________________
De nada, hay te encargo +1...
  #4 (permalink)  
Antiguo 13/08/2012, 23:57
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años, 7 meses
Puntos: 69
Respuesta: Heredar clases java con netbeans

si la clase Trillas está dentro la clase Datos, necesitas hacer un objeto de tipo Datos, y en la clase datos tener un método que te genere un objeto de la clase Trillas, y usar ese metodo para tener la instancia: algo asi:

Datos.Trillas objeto = new Datos().crearInstancia();

siendo que crearInstancia() esta definido mas o menos asi:
public Trillas crearInstancia() {
return new Trillas();
}

ese metodo debera estar dentro de la clase Datos pero fuera de Trillas, y si quieres crear el objeto desde afuera debera ser public, o protected si quieres que sea accededido desde el paquete y subclases...

Ahora bien, como dice Don Chuidiang, puede haber mas de 1 clase en un archivo .java siempre y cuando solo una de ellas sea publica.. dado que coincido con el en que tu identacion esta algo confusa, si es el caso en que Trillas esta fuera de la clase datos pero en el mismo archivo y dado que la clase no tiene modificador de accesso, osea es de tipo Default

Podras crear un objeto de la clase Trillas si y solo si, lo haces desde una clase dentro del mismo package, si lo intentas desde una clase que no esta en el package o lo instentas desde una subclase, no podras, ya que es de accesso restringido...

Ahora trata tambien de importar la clase Trillas (si es que esta fuera de la de Datos), sin embargo tu error dice "Datos.Trillas required" osea que si esta adentro de datos? entonces le haces como dije al inicio, si no esta adentro importala y crea el objeto, pero la clase donde crees el objeto debera estar en el mismo package...
__________________
De nada, hay te encargo +1...
  #5 (permalink)  
Antiguo 14/08/2012, 08:58
 
Fecha de Ingreso: julio-2012
Ubicación: Distrito Federal
Mensajes: 7
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Heredar clases java con netbeans

Muchisimas gracias me ha servido demasiado sus explicaciones gracias maestros

Etiquetas: clase, clases, heredar, netbeans, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:38.