Академический Документы
Профессиональный Документы
Культура Документы
Buscar
Modificadores en Java
Cursos Gratis del Inem CursosGratis.eMagister.com +290 Cursos Gratis (Subvencionados) Apntate a hacer Cursos Sin Pagar! Listado De Cursos 2012 www.CanalCursos.com Aprovecha este Mes Para Apuntarte Al Curso Que Te Interesa Busca Aqu Cursos a distancia www.ceac.es Cursos y Titulaciones de FP Aprende a tu ritmo desde casa! Todos los Cursos 2012 www.tumaster.com/Cursos Encuentra tu Curso en el Buscador Lder de Internet. Infrmate Aqu!
CursosGratis.eMagister.com
BT - Contact Centre
Master Java-J2EE
Tweet
Recomendar 17
Mundo geek es una web escrita por Ral Gonzlez Duque, dedicada principalmente a las nuevas tecnologas y la informtica.
Mundo geek en
Facebook Me gusta A 3,871 personas les gusta Mundo geek.
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]
Modificadores en Java
Archivos Acerca Contacto Traducciones Wiki
view plain
copy to clipboard
El modificador protected, por ltimo, indica que los elementos slo pueden ser accedidos desde su mismo paquete (como el acceso por defecto) y desde cualquier clase que extienda la clase en que se encuentra, independientemente de si esta se encuentra en el mismo paquete o no. Este modificador, como private, no tiene sentido a nivel de clases o interfaces no internas. Los distintos modificadores de acceso quedan resumidos en la siguiente tabla:
Modificadores de acceso La misma Otra clase del mismo Subclase de otro Otra clase de otro clase public protected default private X X X X paquete X X X paquete X X paquete X
STATIC
A pesar de lo que podra parecer por su nombre, heredado de la terminologa de C++, el modificador static no sirve para crear constantes, sino para crear miembros que pertenecen a la clase, y no a una instancia de la clase. Esto implica, entre otras cosas, que no es necesario crear un objeto de la clase para poder acceder a estos atributos y mtodos. Este es el motivo por el cual es obligatorio que main se declare como static; de esta forma no tenemos que ofrecer un constructor vaco para la clase que contiene el mtodo, o indicar de alguna forma a la mquina virtual cmo instanciar la clase. Un uso del modificador static sera, por ejemplo, crear un contador de los objetos de la clase que se han creado, incrementando la variable esttica en el constructor:
view plain copy to clipboard print ?
Como es de esperar, dado que tenemos acceso a los atributos sin necesidad de crear un objeto, los atributos estticos como usuarios no se inicializan al crear el objeto, sino al cargar la clase. Podemos acceder a estos mtodos y atributos bien desde la propia clase
view plain copy to clipboard print ?
public class Ejemplo { public static void main(String[] args) { Usuario raul = new Usuario(); Usuario juan = new Usuario(); System.out.println("Hay " + Usuario.usuarios + " usuarios"); } }
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]
public class Ejemplo { public static void main(String[] args) { Usuario raul = new Usuario(); Usuario juan = new Usuario(); System.out.println("Hay " + raul.usuarios + " usuarios"); } }
Otro uso sera el de crear una recopilacin de mtodos y atributos relacionados a los que poder acceder sin necesidad de crear un objeto asociado, que podra no tener sentido o no ser conveniente, como es el caso de la clase Math.
view plain copy to clipboard print ?
public class Ejemplo { public static void main(String[] args) { System.out.println("PI es " + Math.PI); System.out.println("El coseno de 120 es " + Math.cos(120)); } }
Una caracterstica no muy conocida que se introdujo en Java 1.5 son los static imports, una sentencia similar al import habitual, con la salvedad de que esta importa miembros estticos de las clases, en lugar de clases de los paquetes, permitiendo utilizar estos miembros sin indicar el espacio de nombres en el que se encuentran. El ejemplo anterior podra haberse escrito tambin de la siguiente forma utilizando esta caracterstica:
view plain copy to clipboard print ?
import static java.lang.Math.*; public class Ejemplo { public static void main(String[] args) { System.out.println("PI es " + Math.PI); System.out.println("El coseno de 120 es " + Math.cos(120)); } }
Si por algn motivo requerimos cualquier tipo de computacin para inicializar nuestras variables estticas, utilizaremos lo que se conoce como bloque esttico o inicializador esttico, el cul se ejecuta una sola vez, cuando se carga la clase.
view plain copy to clipboard print ?
Por ltimo, una curiosidad relacionada que podis utilizar para romper el hielo con una programadora Java es que podemos utilizar un bloque static para escribir un programa sencillo sin necesidad de un main, aadiendo una llamada a System.exit para que el programa termine tras cargar la clase sin intentar llamar al mtodo main
view plain copy to clipboard print ?
STRICTFP
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]
Modificadores en Java strictfp es un modificador de lo ms esotrico, muy poco utilizado y conocido cuyo nombre procede de strict floating point, o punto flotante estricto. Su uso sobre una clase, interfaz o mtodo sirve para mejorar su portabilidad haciendo que los clculos con nmeros flotantes se restrinjan a los tamaos definidos por el estndar de punto flotante de la IEEE (float y double), en lugar de aprovechar toda la precisin que la plataforma en la que estemos corriendo el programa pudiera ofrecernos. No es aconsejable su uso a menos que sea estrictamente necesario.
NATIVE
native es un modificador utilizado cuando un determinado mtodo est escrito en un lenguaje distinto a Java, normalmente C, C++ o ensamblador para mejorar el rendimiento. La forma ms comn de implementar estos mtodos es utilizar JNI (Java Native Interface).
TRANSIENT
Utilizado para indicar que los atributos de un objeto no son parte persistente del objeto o bien que estos no deben guardarse y restaurarse utilizando el mecanismo de serializacin estndar.
VOLATILE Y SYNCHRONIZED
volatile es, junto con synchronized, uno de los mecanismos de sincronizacin bsicos de Java. Se utiliza este modificador sobre los atributos de los objetos para indicar al compilador que es posible que dicho atributo vaya a ser modificado por varios threads de forma simultanea y asncrona, y que no queremos guardar una copia local del valor para cada thread a modo de cach, sino que queremos que los valores de todos los threads estn sincronizados en todo momento, asegurando as la visibilidad del valor actualizado a costa de un pequeo impacto en el rendimiento. volatile es ms simple y ms sencillo que synchronized, lo que implica tambin un mejor rendimiento. Sin embargo volatile, a diferencia de synchronized, no proporciona atomicidad, lo que puede hacer que sea ms complicado de utilizar. Una operacin como el incremento, por ejemplo, no es atmica. El operador de incremento se divide en realidad en 3 instrucciones distintas (primero se lee la variable, despus se incrementa, y por ltimo se actualiza el valor) por lo que algo como lo siguiente podra causarnos problemas a pesar de que la variable sea volatile:
view plain copy to clipboard print ?
En caso de que necesitemos atomicidad podemos recurrir a synchronized o a cosas ms avanzadas, como las clases del API java.util.concurrent de Java 5. synchronized se diferencia de volatile entre otras cosas en que este modificador se utiliza sobre bloques de cdigo y mtodos, y no sobre variables. Al utilizar synchronized sobre un bloque se aade entre parntesis una referencia a un objeto que utilizaremos a modo de lock.
view plain copy to clipboard print ?
01.
int contador;
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]
ABSTRACT
Un viejo conocido para la mayora de los programadores Java. La palabra clave abstract indica que no se provee una implementacin para un cierto mtodo, sino que la implementacin vendr dada por las clases que extiendan la clase actual. Una clase que tenga uno o ms mtodos abstract debe declararse como abstract a su vez.
FINAL
Indica que una variable, mtodo o clase no se va a modificar, lo cul puede ser til para aadir ms semntica, por cuestiones de rendimiento, y para detectar errores. Si una variable se marca como final, no se podr asignar un nuevo valor a la variable. Si una clase se marca como final, no se podr extender la clase. Si es un mtodo el que se declara como final, no se podr sobreescribir. Algo muy a tener en cuenta a la hora de utilizar este modificador es que si es un objeto lo que hemos marcado como final, esto no nos impedir modificar el objeto en s, sino tan slo usar el operador de asignacin para cambiar la referencia. Por lo tanto el siguiente cdigo no funcionara:
view plain copy to clipboard print ?
public class Ejemplo { public static void main(String[] args) { final String cadena = "Hola"; cadena = new String("Adios"); } }
public class Ejemplo { public static void main(String[] args) { final String cadena = "Hola"; cadena.concat(" mundo"); } }
Una variable con modificadores static y final sera lo ms cercano en Java a las constantes de otros lenguajes de programacin.
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]
Modificadores en Java
Etiquetas: abstract, final, Java, modificadores, private, protected, public, static, strictfp, transient, volatile
COMENTARIOS
NeoMorfeo
Hola me gustaria que comprobases la tabla de correspondencias con los modificares de acceso y desde dnde se puede acceder a la variable, ya que en mi opinin no est claro el criterio que sigues.(qu indica la X?) P.e.: el acceso a public ser desde todos los elementos (porqu marcas una X en todas?) sin embargo entiendo que private es accesible slo desde la propia clase (y marcas una X en desde otro paquete). Un saludo
Responder
memo1289
La tabla esta extremadamente correcta!! Pon atencion para que le entiendas, la x quiere decir que desde el punto(titulo de la columna) es accesible por otra clase
Responder
NeoMorfeo
Despus de observar la tabla, creo que has transpuesto las X, porque si cambias filas por columnas slo en las X, obtienes como es o eso creo un saludo
Responder
Zootropo
Ahora lo edito.
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]
Modificadores en Java
Baleog
Seria bueno una tabla con los modificadores que acepta cada objeto, por ejemplo que una variable no puede ser abstract pero que un metodo y una clase si. O que un metodo no puede ser abstract y final a la vez
Responder
Miguel Casallas
Muchas gracias Zootropo, es un excelente artculo, no slo para quienes quieren aprender java sino para quienes ya lo saben, no hay que negar que esto de los modificadores siempre da su guerra. Saludos.
Responder
Cane
Aladaris
Ufff que bueno! Este artculo me ha venido como anillo al dedo! Como siempre: muy bueno!
Responder
Jose Jimnez
Muy bueno el artculo, como siempre muy currado Adems por motivos del trabajo parece que estamos siguiendo la misma trayectoria, llevaba ya unos aos trabajando con python y ahora me ha tocado meterme con java. Saludos.
Responder
me gusta este documento ya que los madificadores dan mas guerra que hitler y siempre hay que saberse un truquito o dos . gracias
Responder
Introduccin a C# para programadores Java [...] Ambos lenguajes tienen en comn varios modificadores. [...]
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]
Modificadores en Java
Responder
Mati
Karla
Modificador STATIC Java fdaf58's Blog [...] Mas informacin: Mundo Geek Modificadores en Java [...]
Responder
Marcos Jara
Que articulo ESPECTACULAR, bien resumido y bien compacto, contiene todos los tpicos relacionados con los modificadores. Estaba justo buscando algo asi por que la mayoria que encontr estaban en ingles. Gracias
Responder
Paoln
kz2024
Gracias! aunque esta muy resumido dice cosas que muchos autores no logran explicar en varias decenas de paginas Muy bien explicado, sobre todo el tema de los static. Agradecido
Responder
power
genial
Responder
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]
Modificadores en Java
edwin
jorge vasquez
hoa solo queria decir que los modificadores de acceso son private ,(default), protected, public los demas son modificadores de clase lo cual mno es lo mismo
Responder
Diego
uf de lujo, no sabia que exista, el modificador native en java, buen dato Gracias
Responder
tan
Muy Bueno. Seria muy interesante que comentaras de las palabras reservadas en java, ademas de la que aun no estn en uso como cons.
Responder
Marcos Aybar
Hola. Para mi se ve muy bien explicado este tema, por lo cual estoy conforme y entendido sobre este tema. Muchas gracias
Responder
Daniel
Hola soy nuevo progrando y no entiendo bien acerca de el modificador abstract y su uso podrian dar algun ejempo o explicar mas de antemano gracias
Responder
Ale
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]
Modificadores en Java
Actividades (Activities) en Android Androideity [...] actividades en Android son clases pblicas que heredan de la clase base android.app.Activity. En este caso en especfico declaramos un botn [...]
Responder
Trabajando con la documentacin de Android Androideity [...] primera columna nos indicar el tipo de atributo y los modificadores de acceso del [...]
Responder
Annimo
gracias
Responder
Annimo
cmo se accedera a un atributo private de una clase desde otra clase del mismo paquete?
Responder
juanelo
k buena informacion me resolvio mis dudas sobre algunos tema de java gracias///deverian subir mas informacion clara y concreta-komo esta XD.+++++ESPERO K ENCUENTREN INFORMACION K LES AYUDE A SU FORMACIN
Responder
Adansky
DEJA UN COMENTARIO
Nombre email (no se mostrar) Tu web (opcional)
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]
Modificadores en Java
Enviar comentario
Aviso legal
http://mundogeek.net/archivos/2009/03/30/modificadores-en-java/[17/01/2012 22:26:18]