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

modulo = package?

Estas en el tema de modulo = package? en el foro de Java en Foros del Web. Hola. Soy muy nuevo en Java y tengo una duda bastante basica. Cual es la mejor manera de crear un simple modulo en Java? 1- ...
  #1 (permalink)  
Antiguo 16/01/2015, 14:58
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 13 años, 9 meses
Puntos: 0
modulo = package?

Hola. Soy muy nuevo en Java y tengo una duda bastante basica.

Cual es la mejor manera de crear un simple modulo en Java?

1- Crear un package que contenga las clases que implementan el comportamiento esperado por el modulo
2- desde otro package exportar una de las clases del package

Como puedo restringir el uso del modulo a solo unos metodos concretos?
Tiene que ver aqui algo el concepto de interfaz? Yo creo que no porque yo no quiero implementar los metodos, yo quiero pedirle informacion a un modulo cerrado.

Tendriais disponible algun proyecto java qie implemente el uso de modulos?

Un saludo y gracias por vuestro tiempo
  #2 (permalink)  
Antiguo 16/01/2015, 15:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: modulo = package?

Hola:

Un paquete sólo exporta a otros paquetes las clases que se ponen como public. Si quieres que haya clases que no se puedan ver fuera de tu paquete, simplemente quítales el public.

En cualquier caso, esto no impide el uso de esas clases. Una clase que no es public puede ser usada por otras clases del mismo paquete, así que otra persona puede hacer una clase con el mismo package que tú y usar tus clases desde esa clase. Lo de no poner public sería más una forma de "documentar" qué clases se aconseja usar de tu package y cuales no, más que una "protección" para impedir el uso de clases.

No tienes este tipo de protección a nivel de método, sólo de clase. Si de una clase quieres que se usen unos métodos sí y otros no se puedan, pon protected o private los que no quieras que se usen, pero tampoco podrán usarlos otras clases de tu package.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 16/01/2015, 16:16
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: modulo = package?

Hola gracias por la respuesta.
Sin embargo queda sin responder la pregunta principal.

Como se implementa un modulo en java. Y como otro modulo accede a informacion del primer modulo.
Y que papel juegan las class interfaces para este proposito, que yo creo que nada.

Un saludo!
  #4 (permalink)  
Antiguo 16/01/2015, 23:38
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: modulo = package?

Hola:

En java tal cual no existe el concepto de modulo. Puedes partir tu aplicacion en varios jar donde cada jar seria el equivalente a un modulo (en realidad, cada jar es una libreria). El jar no exporta nada, solo tiene clases que cualquier otro jar de la misma aplicacion puede usar (siempre que sean clases public). El que quiera usar clases de otro paquete (sea de otro jar o no) tiene que importarlas con el import tipico de java.

Las interfaces no son necesarias para todo esto, pero pueden usarse y ayudan a definir como deben "hablar" unos paquetes/jar/modulos/clases con otras.

El desarrollo modular es una de las asignaturas pendientes de java y hay trabajos para ello. OSGI (apache felix o equinox) son las mas antiguas. Ahi si, un jar es un modulo y en el fichero de manifiesto del jar se indica que paquetes exporta ese jar a otros jar y que paquetes importa de otros jar.

Java intenta desarrollar todo este tema de modulos como parte propia de java y es una caracterstica prevista para java 9 (ya estaba prevista para java 8 pero se aplazo). Es el proyecto jigsaw http://www.codergears.com/Blog/?p=310

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 17/01/2015, 01:48
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: modulo = package?

Muchisimas gracias. Muy buena respuesta!
Se bueno tú tb

Etiquetas: clase, modulo, 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 03:58.