Variables y asignación.

 1.- En lenguaje máquina un programa es una sucesión de "palabras" expresadas en código binario, en posiciones sucesivas de memoria que representan instrucciones y datos -su dirección de memoria: 

•Ejemplo: c <-- a * b

Load                   10111100   00100100     24    a  está en la dirección de memoria 24h

Multiply             10111111    00110011     33,   multiplica -24- por b, que está en 33h

Store                   11001110    00111100     3C,   almacenar en c (dirección de memoria 3Ch)

instrucciones = operaciones: Load, Multiply, Store.

datos... están en las direcciones de memoria... son direcciones de memoria donde se almacenan datos de un tipo determinado: todos las datos están tipados, y se guardan en las posiciones de memoria especificas para ese tipo de datos, para una misma dirección de memoria los valores de los datos pueden variar con el tiempo, pero siempre son del mismo tipo. 

Los datos pueden ser elementales o complejos: los elementales son: enteros (byte, short, int, long), reales (float, double), char y boolean. Para cada uno de estos tipos, tienen unos "recipientes de memoria distintos en el ordenador".

Los complejos o compuestos están formados por conjuntos tipados de datos elementales, se definen a través de las llamadas Clases, muchas de ellas vienen definidas en Java, y podemos hacer uso directo de ellas, y otras las podemos definir nosotros, siguiendo las normas del lenguaje Java.

 

2.- En el lenguaje de programación de alto nivel se abstrae el código de la instrucción y la dirección de la memoria del dato, y utilizamos variables (datos) y operadores (instrucciones).

El ejemplo anterior quedaría: c = a*b; sin necesidad de saber su lenguaje en binario.

a, b, c se convierten en variables de un tipo determinado, puede ser el que queramos -de los elementales en este caso-; pero los operadores, = *, han de ser adecuados y determinados para ese tipo de datos.

= es la instrucción que permite asignar el valor de a*b a la variable c;

La inicialización o asignación de un valor inicial es muy importante, no solo para las variables que referencian datos elementales, sino, sobre todo, para las que representan datos compuestos u objetos. Las variables se declaran previamente a su uso, pero también se inicializan. Como las variables pueden adquirir diversos valores, según sus tipos específicos de datos, a lo largo de la ejecución del programa, no importa, normalmente, en la inicialización, el valor que le demos, a través de un dato o de una expresión que resulte del mismo tipo de dato. Otras veces si importa, como en el ejemplo siguiente.

Concluyendo: Las variables requieren su declaración y su asignación.

Declaración: TipoVariable nombreVariable;

Asignación: nombreVariable = valorVariable;

Se puede hacer al unísono:

                TipoVariable nombreVariable = valorVariable; 

El valorVariable puede ser una expresión cuyo resultado final sea un valor del TipoVariable, el nombreVariable se dice que se inicializaría a ese valor, después podría ir tomando distintos valores.

Ejemplo:

class Programa {//clase programa

        public static void main(String[] args){ //método de arranque.

                int a = 4; // declaracíon de la variable int  a y asignación del valor 4.

                int b = 2; // declaracíon y asignación del valor 2 a la variable b de tipo int.

                int c = a*b;//declaracíon de la variable int  c y asignación del valor de la expresión a*b;

                System.out.println(c); //Impresión en el sistema-terminal del valor de la variable c;

        }

}


Otra forma:

class Programa {//clase programa

        public static void main(String[] args){ //método de arranque.

                int a, b, c; // declaración de las variables int  a, b, c; 

                a = 4; //  asignación a a del valor 4.

                b = 2; //  asignación del valor 2 a la variable b de tipo int.

                c = a*b;// asignación a la variable c del valor de la expresión a*b;

                System.out.println(c); //Impresión en el sistema-terminal del valor de la variable c;

        }

}

Las variables enteras se inicializan a 0 por defecto;

Las variables reales lo hacen a 0.0 por defecto;

Las booleanas a false por defecto;

Las char no lo se;

Los objetos: Strings, etc. se inicializan por defecto a null;

Pero parece que es uno el que tiene que inicializarlos?.

Pero en este ejemplo no parece que funcione la inicialización por defecto de a y b a 0:

class Programa {//clase programa

        public static void main(String[] args){ //método de arranque.

                int a; int b; int c; // declaración de las variables int  a, b, c; 

                c = a*b;// asignación a la variable c del valor de la expresión a*b;

                System.out.println(c); //Impresión en el sistema-terminal del valor de la variable c;

        }

}

Con lo cual ya no se que decir.


Llamamos estado de una variable en un momento determinado a su valor en ese momento de la ejecución del programa. 

Al ejecutarse el programa, una variable puede ir obteniendo distintos valores, pasando del valor inicial o inicialización, al valor final o resultado. No obstante en un programa pueden  existir variable muy diferentes, según sean variables de objeto, de clase, locales, ..., y al ejecutarse el programa, su actuación o permanencia pueden ser muy distintas: fugaces o persistentes: Como actores de una película o una obra de teatro, o de un concierto. Algunos solo actúan un momento.

Volviendo a lo anterior, si lo extendemos a todas las variables del programa, lo llamamos estado de un programa. Si pudiéramos obtener los distintos estados de una variable o de un programa lo llamamos traza.

A una variable la podemos calificar como final o constante, si así lo especificamos en su declaración. Su valor inicial permanecerá fijo y no se podrá modificar a lo largo de la ejecución del programa.

Ejemplo:             final TipoVariable nombreVariable = expresión;

                            final double PI = 3.141592;


Identificadores: Los identificadores son los nombres que el programador puede dar a variables, clases y otros elementos del lenguaje.

•Sintaxis: Han de empezar por una letra y, a continuación cualquier combinación de letras, dígitos, el carácter subrayado _ y el signo de dólar $.

•Java distingue mayúsculas de minúsculas. Por ejemplo PI, Pi, son identificadores diferentes.

•Las palabras reservadas tienen un significado preestablecido y no pueden usarse como identificadores. Ejemplos: class, double, int, final, new, public, static, while, ....

Tampoco pueden usarse como identificadores null, true y false.

Ejemplos válidos: radio, MAX_VALOR, dato1, anyo, día. Los identificadores de constantes se suelen poner en mayúsculas.

Ejemplos no válidos 5esfera, mi valor, una.variable

Inciso:

No se puede utilizar el mismo identificador para dos variables distintas, pero basta cambiar una letra de minúsculas o mayúsculas y sí lo admite.



Comentarios

Entradas populares de este blog

Definición de la estructura o atributos que tendrán los objetos de una clase.

Métodos: Declaración.

La clase String de java