Sie sind auf Seite 1von 27

Unidad 5

VARIABLES Y MTODOS ESTTICOS


Qu es static en Java?
Una clase, mtodo o campo declarado como esttico puede ser
accedido o invocado sin la necesidad de tener que instanciar un
objeto de la clase.

Pertenecen a la clase, en lugar de pertenecer a un objeto en


particular.
Qu es static en Java?
Un ejemplo muy comn en donde se puede utilizar variables
estticas es cuando se necesita definir una configuracin global en un
proyecto.
Variables Estticas
Los campos de una clase declarados como estticos son
inicializados en el momento en que se carga la clase en
memoria, respetando el orden de declaracin.

Los campos estticos no pueden ser accedidos desde un


contexto no esttico; este comportamiento resultar en un
error en tiempo de ejecucin.

En conjuncin con la directiva final (que evita la


modificacin del campo) se generan las constantes.

Las variables estticas son compartidas entre todos los


objetos de una clase. Existe solo una copia que todos
alteran.
Variables Estticas
Podemos considerarlo como una variable global a la que tienen
acceso todos los objetos de la clase.

Existe y puede utilizarse aunque no existan objetos de la clase.

Si declaramos variables estticas privadas, solo se pordr acceder a


ellas a travs de metdos get y set static.
Variables Estticas
Este cdigo declara y utiliza una variable para un contador esttico:
Variables estticas
En el cdigo anterior, la variable esttica 'contador' es inicializada en
cero cuando MiClase es cargada por primera vez en la JVM, antes de
que cualquier instancia sea creada. Cada vez que una nueva instancia
de la clase se crea se manda a llamar al constructor de la clase y el
contador aumenta en uno. Cuando el cdigo se ejecuta ya fueron
creadas 3 instancias de la clase y el resultado es el siguiente:

Variables estticas
Si en cambio contador fuera una variable de instancia no esttica:
Variables estticas
El cdigo anterior genera el siguiente error:

La JVM no sabe de qu objeto de MiClase ests tratando de imprimir


su variable 'contador.
Variables estticas
Un mtodo esttico no puede acceder a ningn componente (mtodo
o variable) no esttico. Pensemos de la siguiente manera:
esttico (static) = clase
no-esttico = instancia.
Mtodos estticos
Debido a que los mtodos estticos son enlazados en tiempo de
compilacin mediante static binding usando la informacin del tipo,
no es posible realizar sobreescritura (override) de mtodos.
Los mtodos estticos no pueden ser declarados como abstract.

Solo pueden acceder a variables estticas.


Mtodos estticos
Constantes
Una constante es una variable del sistema que mantiene un valor
inmutable a lo largo de toda la vida del programa. Las constantes
en Java se definen mediante el modificador final.
Constantes
Si queremos utilizar una constante Java, simplemente deberemos de
utilizar su nombre.
Clases Wrapper
Clases envoltorio.

Los tipos de datos primitivos no son objetos. Para que sean tratados
as se usan wrapper class.

Proveen un mecanismo de envolver valores primitivos en un objeto


para que estos primitivos puedan ser incluidos en actividades que
estn reservadas para objetos.
Clases Wrapper
Diferencias entre un tipo de dato primitivo y un objeto de una clase
wrapper.
Clases Wrapper
Proveen un surtido de funciones de utilidad a los primitivos.

La mayora de estas funciones estn relacionadas con varias


conversiones:

Hay una clase contenedora para cada primitivo en Java.

Hay que tener en cuenta que las operaciones aritmticas habituales


(suma, resta, multiplicacin ...) estn definidas solo para los datos
primitivos por lo que las clases envoltura no sirven para este fin.
Clases Wrapper
Constructores de las clases Wrapper
Todas las clases wrapper excepto Character proveen de 2
constructores:

Uno que coge un primitivo del tipo que est siendo construido.

Otro que recoge un String como representacin del tipo que est
siendo construido.
Constructores de las clases Wrapper
Los constructores para las clase Boolean coge o un valor booleano, ya
sea true o false, o una String.
Si la String (sin importar mayusculas o minusculas) es true el
Boolean ser true, y cualquier otro valor ser false:
Constructores de las clases Wrapper
Las conversiones entre los tipos primitivos y sus clases envolventes
son automticas. No es necesario hacer un casting. Para realizarlas se
utiliza el Boxing/Unboxing.

Boxing: Convertir un tipo primitivo en su clase Wrapper.

Unboxing: Convertir un objeto de una clase Wrapper en su tipo


primitivo.
Resumen de mtodos de Integer
Los Mtodos valueOf()
mtodos estticos provedos en la mayora de las clases wrapper que
dan otro enfoque para poder crear objetos wrapper.
Unboxing
Mtodos de instancia para extraer el dato numrico dl envoltorio
xxxValue();

Cuando necesitamos convertir un valor de un contenedor numrico a


un primitivo usamos uno delos mtodos xxxValue();
Otros mtodos
Para crear nmeros a partir de cadenas de caracteres
xxxParsexxx(String);
Otros mtodos
Para construir wrappers a partir de cadenas de caracteres
xxx.valueOf(String);
toString()
todas las clases tienen el mtodo toString();

Permite que obtengamos una representacin significativa de un objeto


dado.

Todas las clases wrapper tienen una versin de toString() sin argumentos y
no static.

Este mtodo retorna un String con el valor del primitivo que se encuentra
dentro del wrapper.

Das könnte Ihnen auch gefallen