viernes, 3 de octubre de 2008

Miembros de las clases(Metodos y variables de instancia)

Accesos default y protected
El acceso default y protected sólo se diferencian cuando hablamos de subclases, hay qué pensar en el aceso default como un acceso a nivel de paquetes es decir cuando intantamos accesar a un miembro qué es protected sólo podemos hacerlo si estadentro del mismo paquete a(y lo unstanciamos. Correctamente) si intantamos entrar desde una clase fuera del paquete nos va a mandar un error de compilación dicendonos que el miembro no existe
Por que de hecho no es siquera visible fuera del paquete, cuando intentamos acceder fuera de este nos manda una espantosa X.
Ahora cuando hablamos de protected las reglas del juego cambian como en el big brother com protected si podemos acceder fuera del paquete pero solo por medio de herencia es decir solo los hijos de la clase pueden acceder pero no por medio de una instancia sino llamando al método directamente o lo que es lo mismo usado el operador this, si queremos instanciarlo nos va a mandar far... Far away
VARIABLES LOCALES
No esxiste ningún modificador de acceso que pueda usarse con las variables locales, el único modificador que permiten las variables locales es el final.
OTROS MODIFICADORES PARA MIEMBROS
Existen varios modificadores para miembros como son final abstract strictfp volatile transient sinchronized static y native primrero veremos laos que se aplican a loa métodos
METODOS FINAL
Los métodos final no pueden ser sobreeacritos, bistros podemos usarlos pero si tratamos de sobreescribirlos nos manda un error de xompilacion esto se hace cuando queremos asegurarnis que nadiie pueda cmbiar el comportamiento de nuestros metodos
ARGUMENTOS FINAL
UN argumento es prácticamente lo mismo que una variable local, cuando declaramos un argumeto como final nos aseguramos de que los valores que les pasemos a esos mtods no pueden ser cambiados.(o el objeto al que refiere en u caso)
MÉTODOS ABSTRACTOS
Un metodo abstract termina con punto y coma y no puede se definido en la clase en las que es declarada, ose no ponemos una implementación del método sólo ponemos los modificadores de acceso el nombre del método y los argumentos , pero nunca lo implementamos,.
Un metodo abstracto debe de estar dentro de una clase abstracta, sin embargo piedra esxistir métodos comcretos dentro de una clase abstracta, va de nuevo , si un simple método es declarado abstracto la clase estera deber de ser abstracta, si no nos manda un error de compilación , sin embargo pueden existir clases abstractas con sólo métodos concretos.
La primera clase concreta que extienda a una clase abstracta debe implementar los métodos abstractos de está y de todas sus superclases.
El modificador abstract no lo podemos mezclar con final ni private, simplemete por que no tendríamos forma de implementarla, tampoco puede ser static.
SYNCRONIZED
un método sincronizado sólo puede accederse por un hilo a la vez, al acceso sinchronized sólo aplica a métodos y nada más.

Clases

Existen dos modificadores para las clases public y default sólo puede haber una clase pública por cada archivo de código y debe tener el mismo nombre que el archivo puede haber las clases privadas que sean, y si no existe una clase pública el archivo puede tener cualquier orden
Otros modificadores aparte de public y default una clase puede tener otros 3 tipos de modificadores estos son final,abstract y strictfp
Los modificadores strictfp y abstract se pueden usar juntos pero nunca podemos usar final y abstract
El modificador strictfp sólo se puede usar con clases y metodos pero nunca con variables
FINAL
Una clase que es final no puede ser una subclase es decir ninguna otra clase la puede extender
ABSTRACT
Una clase abstracta no puede ser instanciada, su único propósito en l vida es ser extendida, es decir no podemos crear un objeti con está clase pero podemos utilizarla para crear otras clases que si pueden ser instanciadas, una clase abstracta no termina con llaves ,termina con punto y coma , no se puede marcar una clase abstracta y final por qué tienen significados opuestos
INTERFACES
Las interfaces son como cases 100% abstractas, es decir en ellas solo se pueden declarar metodos abtractos , las interfaces son abstractas le pongamos ese modificador o no, las interfaces pueden ser públicas o default , pero los metodos dedntro de las interfaces son implictsmente public y abstract , las interfaces no pueden ser static y al ser abstractas tampoco pueden ser final las interfaces no pueden extender ni implementar ninguna clase , pero tampoco pueden implmentar interfaces, sólo extienden interfaces, y puede estender las interfaces que quiera, ninguna, una o varias
Las variables de las interfaces son implícitamente public, static y final lo escribamos así o no.
MIEMBROS DE LA CLASE
Los métodos y las variables de instancia son llamados miembros, los miembros pueden tomar todos los modificadores de acceso el public, private, default y protected
Existen dos firmas de acceder a un método de un clase, el primero es usado el operador "." esto es instanciando la clase y utilizar el operador punto para accesar a un método o a alguna variable local.
La segunda forma es por medio de la herencia, cuando extendéis otra clase estamos tomando todos sus métodos y variables de instancia y estamos haciendolos nuestros, por eso no ncesiramos nada para usarlos, simplemente los llamamos con su nombre.
PUBLIC
Cuando un miembro es public, puede ser accesado desde cualquier lado siempre y cuando clase pueda ser accesada, es decir si podemos ver l clase podemos ver cualquier método público, cuando extendemos una clase. Toda los miembros públicos son heredados sin importar el paquete en que se encuentren
PRIVATE
Un miembro privado no puede ser visto en ningún lugar fuera de la clase en donde es declarado, ni siquiera por herencia , es decir su una clase es privada unicamente puede ser vista por la mismo clase, si tratamos de accesarlo desde otra clase nos manda un error de compilación, podemos declarar otro metido con el mismo nombre en una subclase, pero no estamos sobrescribiendo nada, sólo es otro método.
.