SoloCodigo
Programación General => Java => Mensaje iniciado por: alemag en Martes 23 de Enero de 2007, 18:22
-
Creo que lo mas logico es poner los datos miembro de una clase como privados, para que no se puedan modificar desde fuera, y si se quiere acceder a esos datos, se hace a través de un observador. Pues bien, tengo lo siguiente:
public class Ejemplo
{
int a;
public int get_entero()
{
return a;
}
}
y desde otra clase pretendo acceder a ese dato entero con:
....
Ejemplo ej=new Ejemplo();
System.out.println(ej.get_entero());
...
y con el eclipse me dice que el dato entero a no es visible.
Pero supuestamente no estaria accediendo a ese dato a traves del observador, y éste es público ???
Por favor, ayudadme. Muchas gracias.
-
Hola. Por default, todas las variables que no tengan ningún modificador de acceso son públicos, entonces, en tu programa no necesitas tener un método que acceda a la variable "a" a menos de que ésta sea privada. Saludos!
:hola:
-
Hola:
Perdona que te corrija, pero por defecto, el modificador en Java es "default", accesible desde clases dentro del mismo paquete.
El código que muestras no debería dar ese error, por estás accediendo a "a" dentro de la misma clase y el método get_entero() es público.
¿Podrías aportar más información al respecto?
Un saludo
Luis Javier López Arredondo.
http://es.geocities.com/luisja80 (http://es.geocities.com/luisja80)
http://hardprogrammer.blogspot.com (http://hardprogrammer.blogspot.com)
-
Hola a todos. Llevo una temporada leyendo este foro pero nunca me habia animado a postear nada. A ver si voy cambiando eso. ;)
Hano, tenia entendido que la visibilidad por defecto era "protected" pero veo que estaba equivocado.¿Que diferencia hay entre "protected" y "default"?
-
Buenas.
Hano tiene razón, cuando no se especifican un modificador en java, el compilador toma un por defecto, "default" o "package" es igual, y es accesible solo por las clases del paquete al que pertenece la clase y si no se utiliza ningún paquete se utiliza el paquete por defecto que será el directorio en el que estén todas tus clases.
la diferencia principal entre protected y default es que protected es como una especie de hibrido entre public y private, funciona como public para todas las clases derivadas y como private para el resto de las clases. B)
-
Hola...
Vamos a ver. No tiene nada que ver que la variable sea o no privada, pública o lo que quiera que sea, puesto que el método que usa para obtener el valor es público.
He probado el código que indicas por si me devolviese un error y no lo hace. Estoy usando el WSAD, basado en Eclipse, así que no creo que el fallo venga de ahí.
¿Puedes pasarnos algún código más específico para que veamos qué está pasando?
Muchas gracias.
Un saludo.
Silverfox
-
Ahi deberia funcionarte bien, coloca el codigo completo para mirar que esta pasando.
-
Prueba esto:
public class Ejemplo
{
int a;
public int get_entero()
{
return this.a;
}
}
this.a hace referencia a la instancia de "a" de la clase. Quien sabe, puede que funcione :whistling: