JavaPlayer - Modificadores de visibilidad en Java - Modificadores de visibilidad generales en Java - private - public - protected - default

Hola hoy vamos hablar sobre los modificadores de visibilidad en Java.

Los modificadores acceso en java, determina desde que clase se puede ver y acceder a los elementos, es decir se pueden proteger sus variables y métodos (ya sean de instancia como de clase) del acceso desde otra clase.


Modificadores de visibilidad en Java

En java existen 4 tipos diferentes de modificadores de visibilidad para las clases:

  • public: El tipo public permite acceder al elemento desde cualquier clase/lugar.
  • private: El tipo private es restrictivo y especifica que los elementos que lo utilizan solo pueden ser accedidos desde la clase que en la que se encuentran.  El private se puede poner solo sobre atributos/propiedades y métodos dentro de una clase. Al utilizar herencia las clases hijas no verán los atributos/propiedades y métodos que utilizen este modificador."(voy a obviar a las clases de segundo nivel por que para mi gusto es lo peor que existe.)" 
  • protected: El tipo protected indica que los elementos solo pueden ser accedidos desde su mismo paquete (como el acceso por default) y desde cualquier clase que extienda aunque esta clase este fuera del paquete. "(voy a obviar a las clases de segundo nivel por que para mi gusto es lo peor que existe.)" 
  • default: El tipo default no tiene ninguna palabra clave asociada, pero se lo conoce como default o package-private. Si no especificamos nigun modificador de acceso de utiliza este nivel, que determina que el elemento puede ser accesido solo desde las clases que pertenezcan al mismo paquete.


Modificadores de visibilidad en Java


Modificadores de visibilidad generales en Java


native 
Native es un modificador utilizado cuando un determinado metodo esta escrito en un lenguaje distinto a java, como puede ser C, C++ o ensamblador para mejorar el rendimiento. La forma mas común de implementar es estos métodos 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 serialización estándar.
abstract
Este modificador es utilizados para indicar una clase abstracta, las clases no se pueden instanciar. 

final
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 método el que se declara como final, no se podrá sobreescribir.

static
A pesar de lo que podría parecer por su nombre, heredado de la terminología 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 métodos. Este es el motivo por el cual es obligatorio que main se declare como static;


strictfp
strictfp es un modificador de lo más esotérico, muy poco utilizado y conocido cuyo nombre procede de strict floating point, o punto flotante estricto.



VOLATILE Y SYNCHRONIZED

Volatile es, junto con synchronized, uno de los mecanismos de sincronización básicos 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 asíncrona, 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 estén sincronizados en todo momento, asegurando así la visibilidad del valor actualizado a costa de un pequeño impacto en el rendimiento.

volatile es más simple y más sencillo que synchronized, lo que implica también un mejor rendimiento. Sin embargo volatile, a diferencia de synchronized, no proporciona atomicidad, lo que puede hacer que sea más complicado de utilizar.

Una operación como el incremento, por ejemplo, no es atómica. El operador de incremento se divide en realidad en 3 instrucciones distintas (primero se lee la variable, después se incrementa, y por último se actualiza el valor).

En caso de que necesitemos atomicidad podemos recurrir a synchronized o a cosas más 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 código y métodos, y no sobre variables. Al utilizarsynchronized sobre un bloque se añade entre paréntesis una referencia a un objeto que utilizaremos a modo de lock.
JavaPlayer - Modificadores de visibilidad en Java - Modificadores de visibilidad generales en Java - private - public - protected - default JavaPlayer - Modificadores de visibilidad en Java - Modificadores de visibilidad generales en Java - private - public - protected - default Reviewed by El lado oscuro de java on diciembre 06, 2013 Rating: 5

No hay comentarios:

Con la tecnología de Blogger.