Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los 4 Tipos de Variable en Java
Los 4 Tipos de Variable en Java
DOCENTE:
OLOVARRA PAZ JESUS.
ESCUELA:
INGENIERA DE SISTEMAS
CURSO:
LENGUAJE DE PROGRAMACIN
2016
Variables de Instancia
En programacin orientada a objetos, una variable de instancia o miembro de dato
es una variable que se relaciona con una nica instancia de una clase.
Cuando se declara el atributo o variable miembro euros en la clase Precio de la
siguiente
forma:
public class Precio {
// Declaracin de atributos o variables miembro
public double euros;
// Declaracin de mtodos . . .
}
Se est declarando el atributo euros como una variable de instancia. En
consecuencia, cada vez que se crea una instancia de la clase Precio, se reserva
espacio en memoria para una variable de instancia euros. Por ejemplo, el cdigo:
// Creacin de dos instancias de la clase precio
Precio p = new Precio();
p.pone(56.8);
Precio q = new Precio();
q.pone(75.6);
Genera dos instancias de la clase Precio. En este caso, cada una de las dos
instancias, p y q, de la clase Precio tiene una variable de instancia euros propia.
Las respectivas llamadas al mtodo pone para cada instancia (p.pone(56.8) y
q.pone(75.6)), permiten asignar un valor a las variables de instancia correspondientes.
Figura 12.1. Representacin grfica del espacio de la memoria utilizado por cada instancia de la
clase
Precio
Otro ejemplo. En la declaracin de la clase Fecha se incluyen tres atributos (da,
mes y ao) que son variables de instancia:
public class Fecha {
// Declaracin de atributos o variables miembro private int dia;
private int mes; private int anho;
// Declaracin de mtodos. . .
}
Mtodos de Instancia
Los mtodos de instancia operan sobre las variables de instancia de los objetos pero
tambin tienen acceso a las variables de clase. La sintaxis de llamada a un mtodo de
instancia es:
idReferencia.idMetodo(parmetros); // Llamada tpica a un mtodo de instancia
Todas las instancias de una clase comparten la misma implementacin para un
mtodo de instancia. La instancia que hace la llamada al mtodo es siempre un
parmetro o argumento implcito. Dentro de un mtodo de instancia, el
identificador de una variable de instancia hace referencia al atributo de la instancia
concreta que hace la llamada al mtodo (suponiendo que el identificador del
atributo no ha sido ocultado por el de un parmetro).
En el ejemplo anterior en la declaracin de la clase CuentaBancaria, los mtodos
saldo y transferencia ,
son mtodos de instancia.
Variables de Clase
Las variables de clase son variables cuyos valores son los mismos para la clase y
para todas sus instancias.
Las variables de clase son atributos diferentes de las variables de instancia. Las
variables de clase implican una sola zona de memoria reservada para todas las
instancias de la clase, y no una copia por objeto, como sucede con las variables
de instancia. Para diferenciarlas de stas en el cdigo fuente de Java, las
variables de clase se distinguen con el modificador static en la declaracin del
atributo correspondiente. Por defecto (si no se indica la palabra static), el atributo
declarado se considera variable de instancia.
Durante la ejecucin del programa, el sistema reserva un nico espacio en memoria
para cada variable estticas o de clase independientemente del nmero de instancias
creadas de una clase. Esta reserva se produce la primera vez que encuentra dicha
clase en el cdigo, de forma que todas las instancias pertenecientes a una clase
comparten la misma variable de clase. A diferencias de las variables globales fuera
de la POO, las variables de clase garantizan la encapsulacin.
Las variables de clase sirven para almacenar caractersticas comunes (constantes) a
todos los objetos (nmero de ruedas de una bicicleta) o para almacenar
caractersticas que dependen de todos los objetos (nmero total de billetes de
lotera). Por ejemplo, la clase CuentaBancaria tiene una variable de instancia, saldo, y
una variable de clase, totalCuentas.
public class CuentaBancaria {
// Atributos o variables miembro
public double saldo;
public static int totalCuentas=0;
// Declaraciones de metodos
...
}
//Variable de instancia
// Variable de clase
Figura 12.3. Representacin grfica del espacio de la memoria utilizado por la variable
de clase
totalCuentas y por cada instancia de la clase CuentaBancaria
Las variables de clase se emplean cuando slo es necesaria una copia por clase que,
adems, est accesible por todas las instancias de la clase a la que pertenece. En
este caso, al ser un atributo public y static, puede accederse directamente a la
variable de clase (totalCuentas) a travs de una instancia (c1 o c2) o de la clase
en s (CuentaBancaria). Un atributo esttico puede ser accedido desde cualquier
instancia de la clase, ya que es miembro de la propia clase.
public class PruebaCuentaBancaria {
public static void main (String [] args) {
CuentaBancaria c1 = new CuentaBancaria();
c1.totalCuentas++;
System.out.println("Total cuentas: " + c1.totalCuentas);
CuentaBancaria c2 = new CuentaBancaria();
c2.totalCuentas++;
System.out.println("Total cuentas: " + c2.totalCuentas);
// Acceso a traves de la clase:
CuentaBancaria.totalCuentas++;
System.out.println("Total cuentas: " +
CuentaBancaria.totalCuentas);
// Resto de sentencias . . .
}
}
La ejecucin del cdigo anterior origina la siguiente salida por pantalla:
$>java PruebaCuentaBancaria
Total cuentas: 1
Total cuentas: 2
Total cuentas: 3
Mtodos de Clase
En principio, los mtodos de clase no operan sobre las variables de instancia de los
objetos. Los mtodos de clase pueden trabajar con las variables de clase pero
no pueden acceder a las variables de instancia declaradas dentro de la clase, a no
ser que se crea una nueva instancia y se acceda a las variables de instancia a
travs del nuevo objeto. Los mtodos de clase tambin pueden ser llamados
precedindolos con el identificador de la clase, sin necesidad de utilizar el de una
instancia.
IdClase.idMetodo(parametros);
La palabra static
determina la declaracin de un mtodo de clase. Por defecto,
si no se indica la palabra static, el mtodo declarado se considera un mtodo de
instancia.
En el ejemplo anterior en la declaracin de la clase CuentaBancaria, el
mtodo incCuentas es un mtodo de clase.
public static void incCuentas () { totalCuentas++;
}
Un ejemplo de llamada a este mtodo dentro de PruebaCuentaBancaria sera:
CuentaBancaria.incCuentas();
Las diferencias entre los mtodos de instancia y los de clase se resumen en la Tabla
Modificador
en la
declaracin
-(por defecto)
static
Sintaxis de llamada
Operan normalmente...
instancia.metodo(parametros)
Sobre variables de
instancia
Sobre variables de
clase o sobre otros
datos
Clase.metodo(parametros)
Identificador y
abs(double a)
abs(float a)
abs(int a)
abs(long a)
acos(double a)
asin(double a)
atan(double a)
atan2(double a, double
b)
ceil(double a)
cos(double a)
exp(double a)
floor(double a)
IEEEremainder(double
f1, double f2)
log(double a)
max(double a, double b)
max(float a, float b)
max(int a, int b)
max(long a, long b)
min(double a, double b)
min(float a, float b)
min(int a, int b)
min(long a, long b)
pow(double a, double b)
random()
rint(double a)
round(double a)
round(float a)
sin(double a)
sqrt(double a)
tan(double a)
toDegrees(double
angulo)
toRadians(double
angulo)
Funcin
Devuelve el valor absoluto de un dato de tipo
double.
Devuelve el valor absoluto de un dato de tipo
float.
Devuelve el valor absoluto de un dato de tipo
int.
Devuelve el valor absoluto de un dato de tipo
long.
Devuelve el valor del arco coseno de un
ngulo
entre
0 y .
Devuelve
el valor
del arco seno de un ngulo
entre
/2
y
/2.
Devuelve el arco tangente de un ngulo
entre
/2
/2 en polares
Devuelve
el y ngulo
correspondientes a las coordenadas
rectangulares.
Devuelve
el menor entero (en formato
double) que no es menor que el parmetro.
Devuelve el coseno de un ngulo
Devuelve el valor de la funcin exponencial
Devuelve
el mayor entero (en formato
(ea)
double) que no es mayor que el parmetro.
Devuelve el resto (en formato double) de la
divisin entre los dos parmetros segn la
especificacin
IEEE 754
Devuelve
el logaritmo
neperiano de un valor.
Devuelve el mayor de dos valores de tipo
double.
Devuelve el mayor de dos valores de tipo float.
Devuelve el mayor de dos valores de tipo int.
Devuelve el mayor de dos valores de tipo long.
Devuelve el menor de dos valores de tipo
double.
Devuelve el menor de dos valores de tipo float.
Devuelve el menor de dos valores de tipo int.
Devuelve el menor de dos valores de tipo long.
Devuelve el valor del primer parmetro elevado
al
segundo
Devuelve
un valor aleatorio de tipo double
mayor o igual que cero y menor que 1.
Devuelve el valor entero (en formato double)
ms
cercano.
Devuelve
el valor entero (long) ms cercano al
parmetro.
Devuelve el valor entero (int) ms cercano al
parmetro.
Devuelve el seno de un ngulo
Devuelve la raiz cuadrada positiva del
parmetro
Devuelve ladouble.
tangente de un ngulo
Devuelve el resultado de la conversin de un
ngulo dado en radianes a grados
Devuelve la conversin de un ngulo dado en
grados a radianes
{
public static void main(String[l args)
Data d = new Data(niRola desde Java!");
Class c = new Class 0;
Bibliografa:
Java 2. La Biblia. Steven Holzner. Ediciones Anaya Multimedia
(Grupo Anaya, S.A), 2000.
Piensa en Java. Bruce Eckel. Pearson Educacin, S.A., Madrid,
2002.
Introduccin a la programacin orientada a objetos con Java. C.
Thomas Wu. McGraw-Hill/ Interamericana de Espaa, S.A.U.,
2001.