Next: Estructuras de control
Up: Repaso de Java
Previous: Tipos simples
  Índice General
Modificadores de acceso:
- private:
accesible solamente desde la propia clase
- package:
(o ningún modificador)
accesible solamente desde la propia clase o dentro del mismo paquete
- protected:
accesible solamente desde la propia clase, dentro del mismo paquete,
o desde clases derivadas
- public:
accesible siempre cuando la clase es visible
(En C++, por defecto, los miembros son privados, mientras en Java
los miembros son por defecto del paquete.)
Modificadores de miembros siendo instancias de objetos:
- final:
declara constantes
(diferencia a C++ donde se declara constantes con const),
aún las constantes no se pueden modificar en el transcurso del
programa, pueden ser calculadas durante sus construcciónes;
variables finales, aún declaradas sin inicialización, tienen
que obtener sus valores como muy tarde en la fase de construcción
de un objeto de la clase
- static:
declara miembros de la clase que pertenecen
a la clase y no a instancias de objetos,
es decir, todos los objetos de la clase acceden la misma cosa
- transient:
excluye un miembro del proceso de conversión en un flujo de bytes
si el objeto se salva al disco o se transmite por una conexión
(no hay en C++)
- volatile:
ordena la máquina virtual de Java de no usar ningún tipo
de cache para el miembro, así es más probable (aún no
garantizado) que varios hilos ven el mismo valor de una variable;
declarando variables del tipo long o double
como volatile asegura que las operaciones básicas son
atómicas
Modificadores de miembros siendo métodos:
- abstract:
el método todavía no está completo, es decir, no se puede
instanciar objetos antes de que se haya implementado el método
en una clase derivada
(parecido a los métodos puros de C++)
- static:
el método pertenece a la clase y no a un objeto de la clase,
un método estático puede acceder solamente miembros estáticos
- final:
no se puede sobre-escribir el método en una clase derivada
(no hay en C++)
- synchronized:
el método pertenece a una región crítica del objeto
(no hay en C++)
- native:
propone una interfaz para llamar a métodos escritos en otros
lenguajes, su uso depende de la implementación de la
máquina virtual de Java
(no hay en C++, ahí se realiza durante el linkage)
- strictfp:
obliga a la máquina virtual de cumplir el estándar de
IEEE para los números flotantes
(no hay en C++, ahí depende de las opciones del compilador)
Un método abstracto no puede ser al mismo tiempo ni final,
ni estático, ni sincronizado, ni nativo, ni estricto.
Un método nativo no puede ser al mismo tiempo ni abstracto
ni estricto.
Nota que el uso de final y private puede mejorar
las posibilidades de optimización del compilador, es decir,
su uso resulta en programas más eficientes.
Next: Estructuras de control
Up: Repaso de Java
Previous: Tipos simples
  Índice General
© 2001, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática