2010-08-13 38 views
16

puedo importar, usar clases de otro paquete? En Eclipse Hice 2 paquetes uno es principal otro es el segundojava cómo usar las clases en otro paquete?

 
main 
-main (class) 
second 
-second (class) 

y quería que la función principal de la clase principal para llamar a la función x en segunda clase. ¿cómo puedo hacerlo? Intenté:

import second; 
second.x(); (if both classes are in the same package then it works) 
second.second.x(); 

pero ninguno de ellos funcionó. Estoy fuera de la idea ahora.

+0

¿Qué quiere decir con main y second main? ¿Cuáles son los nombres de las clases y paquetes en los que se encuentran? –

Respuesta

23

Debe proporcionar la ruta completa que desea importar.

 
import com.my.stuff.main.Main; 
import com.my.stuff.second.*; 

Así, en su clase principal, que tendría:

 
package com.my.stuff.main 

import com.my.stuff.second.Second; // THIS IS THE IMPORTANT LINE FOR YOUR QUESTION 

class Main { 
    public static void main(String[] args) { 
     Second second = new Second(); 
     second.x(); 
    } 
} 

EDIT: la adición de ejemplo, en respuesta a Shawn D's comentario

No hay otra alternativa, como Shawn D señala, donde puede especificar el nombre completo del paquete del objeto que desea usar. Esto es muy útil en dos lugares. En primer lugar, si usted está utilizando la clase exactamente una vez:

class Main { 
    void function() { 
     int x = my.package.heirarchy.Foo.aStaticMethod(); 

     another.package.heirarchy.Baz b = new another.package.heirarchy.Bax(); 
    } 
} 

Como alternativa, esto es útil cuando se quiere diferenciar entre dos clases con el mismo nombre corto:

class Main { 
    void function() { 
     java.util.Date utilDate = ...; 
     java.sql.Date sqlDate = ...; 
    } 
} 
+1

Además, si solo hace referencia a la clase en un solo lugar, puede usar el paquete completo + nombre de clase en el código sin realizar la importación, o si necesita resolver el mismo nombre de clase utilizado en dos instrucciones de importación. –

4

dado tu ejemplo, que tenga que añadir la siguiente importación en su clase main.main:

import second.second; 

Algunos consejos de bonificación, asegúrese de que TitleCase nombres de las clases, ya que es un estándar de Java. Por lo que su principal ejemplo de la clase tendrá la estructura:

package main; //lowercase package names 
public class Main //titlecase class names 
{ 
    //Main class content 
} 
+0

Tienes que hacer que tu segunda clase sea "pública" – mor222

0

Debe ser como import package_name.Class_Name -> Si desea importar una clase específica (o)

import package_name.* -> Para importar todas las clases de un paquete

Cuestiones relacionadas