Bienvenida

martes, 9 de febrero de 2016

TIPOS DE OPERADORES EN JAVA-NETBEANS Y OTROS LENGUAJES DE PROGRAMACIÓN

Introducción
                        Para programar ya sea en java-netbeans u otros lenguajes de programación es necesario tener en cuenta los tipos de operadores con los que se esta programando.

Para lo cual el programador tiene que ser muy minucioso al momento de declarar variables y realizar la programación ya que eso define el tipo de programador que es, además debe mantener un orden al momento de programar.

Los datos se manipulan muchas veces utilizando operaciones con ellos. Los datos se suman, se restan, ... y a veces se realizan operaciones más complejas.

Tipos de Operadores


  • Operadores Aritméticos
                             Son:

Hay que tener en cuenta que el resultado de estos operadores varía notablemente si usamos enteros o  si usamos números de coma flotante.

Por ejemplo:

                              double resultado1, d1=14, d2=5;
                              int resultado2, i1=14, i2=5;

                              resultado1= d1 / d2;
                              resultado2= i1 / i2;

                              resultado1 valdrá 2.8 mientras que resultado2 valdrá 2. Es más incluso:

                               double resultado;
                               int i1=7,i2=2;
                               resultado=i1/i2;                                     //Resultado valdrá 3
                               resultado=(double)i1/(double)i2;         //Resultado valdrá 3.5

            El operador del módulo (%) para calcular el resto de una división entera. Ejemplo:

                                int resultado, i1=14, i2=5;
                                resultado = i1 % i2;                              //El resultado será 4


  • Operadores Condicionales
            Sirven para comparar valores. Siempre devuelven valores booleanos. Son:



Los operadores lógicos (AND, OR y NOT), sirven para evaluar condiciones complejas. NOT sirve para negar una condición. Ejemplo:

                 boolean mayorDeEdad, menorDeEdad;
                 int edad = 21;
                      mayorDeEdad = edad >= 18;               //mayorDeEdad será true
                      menorDeEdad = !mayorDeEdad;       //menorDeEdad será false

El operador && (AND) sirve para evaluar dos expresiones de modo que si ambas son ciertas, el resultado será true sino el resultado será false. Ejemplo:

                           boolean carnetConducir=true;
                           int edad=20;
                           boolean puedeConducir= (edad>=18) && carnetConducir;

                          //Si la edad es de al menos 18 años y carnetConducir es
                         //true, puedeConducir es true

El operador || (OR) sirve también para evaluar dos expresiones. El resultado será true
si al menos uno de las expresiones es true. Ejemplo:

                          boolean nieva =true, llueve=false, graniza=false;

                          boolean malTiempo= nieva || llueve || graniza;


  • Operadores de Bit
         Son aquellos operadores que manipulan los bits de los números y son los siguientes:



  • Operadores de Asignación

Permiten asignar valores a una variable. El fundamental es “=”. Pero sin embargo se pueden usar expresiones más complejas como:

x += 3;

En el ejemplo anterior lo que se hace es sumar 3 a la x (es lo mismo x+=3, que x=x+3). Eso se puede hacer también con todos estos operadores:

                                                                           += -= *= /=
                                                                           &= |= ^= %=
                                                                            >>= <<=

También se pueden concatenar asignaciones:

                                                                          x1 = x2 = x3 = 5;

Otros operadores de asignación son “++” (incremento) y “- -“ (decremento). Ejemplo:

                                                                          x++;           //esto es x=x+1;
                                                                          x--;            //esto es x=x-1;  

Pero hay dos formas de utilizar el incremento y el decremento. Se puede usar por ejemplo 

                                                                           x++ o ++x

La diferencia estriba en el modo en el que se comporta la asignación. Ejemplo:

                                                                           int x=5, y=5, z;
                                                                           z=x++;                     //z vale 5, x vale 6
                                                                           z=++y;                   //z vale 6, y vale 6


  • Operador ?

Este operador (conocido como if de una línea) permite ejecutar una instrucción u otra según el valor de la expresión. Sintaxis:

expresionlogica?valorSiVerdadero:valorSiFalso;

Ejemplo:

paga=(edad>18)?6000:3000;

En este caso si la variable edad es mayor de 18, la paga será de 6000, sino será de 3000. Se evalúa una condición y según es cierta o no se devuelve un valor u otro. Nótese que esta función ha de devolver un valor y no una expresión correcta. Es decir, no funcionaría:

(edad>18)? paga=6000: paga=3000; /ERROR!!!!

  • Orden de Precedencia de los Operadores Java-Netbeans
A veces hay expresiones con operadores que resultan confusas. Por ejemplo en:

resultado = 8 + 4 / 2;

Es difícil saber el resultado. ¿Cuál es? ¿seis o diez? La respuesta es 10 y la razón es que el operador de división siempre precede en el orden de ejecución al de la suma. Es decir, siempre se ejecuta antes la división que la suma. Siempre se pueden usar paréntesis para forzar el orden deseado:

resultado = (8 + 4) / 2;

Ahora no hay duda, el resultado es seis. No obstante el orden de precedencia de los operadores Java es:


En la tabla anterior los operadores con mayor precedencia está en la parte superior, los de menor precedencia en la parte inferior. De izquierda a derecha la precedencia es la misma. Es decir, tiene la misma precedencia el operador de suma que el de resta. Esto último provoca conflictos, por ejemplo en:
resultado = 9 / 3 * 3;

El resultado podría ser uno ó nueve. En este caso el resultado es nueve, porque la división y el producto tienen la misma precedencia; por ello el compilador de Java realiza primero la operación que este más a la izquierda, que en este caso es la división. Una vez más los paréntesis podrían evitar estos conflictos.

Ejemplo de Programacion en Consola de Java-Netbeans

PRÓXIMA PUBLICACIÓN
  • Ejemplos prácticos y sencillos paso a paso en Java-Netbeans incluidos vídeos.

   

COMO INICIAR LA PROGRAMACIÓN EN JAVA

Escritura de Programas y Aplicaciones Java

Codificación del texto:
                                       Todos los códigos fuentes Java se escriben en documentos de texto con extensión .java. Al ser un lenguaje para Internet, la codificación de texto debía permitir a todos los
programadores de cualquier idioma escribir ese código. Eso significa que Java es compatible con la codificación Unicode.

En la práctica significa que los programadores que usen lenguajes distintos del inglés no tendrán problemas para escribir símbolos de su idioma. Y esto se puede extender para nombres de clase, variables, etc.

La codificación Unicode2 usa 16 bits (2 bytes por carácter) e incluye la mayoría de los códigos del mundo.

Notas y Conocimientos  Previos

Los archivos con código fuente en Java deben guardarse con la extensión .java. Como se ha comentado cualquier editor de texto basta para crearle. Algunos detalles y recomendaciones importantes son:
  • En java (como en C) hay diferencia entre mayúsculas y minúsculas.
  • Cada línea de código debe terminar con ; (punto y coma).
  • Los comentarios; si son de una línea debe comenzar con “//” y si ocupan más de una línea          deben         comenzar con “/*” y terminar con “*/”.                                                                                                                                                                                                                                              

                  /*  Comentario

                    de varias líneas */

               //Comentario de una línea.

A veces se marcan bloques de código, los cuales comienza con { y terminan con } El código dentro de esos símbolos se considera interno al bloque.                                                                                                                                                                                                                                         
                       {
                        ...código dentro del bloque
                         }
                            código fuera del bloque



         El primer programa en Java
  
                                                    public class mi_primera_app
                                                    {
                                                       public static void main(String[] args)
                                                    {
                                                       System.out.println(“Hola..!!..¡Bienvenido Mi primer programa!”);
                                                      }
                                                      }

Este código escribe “Hola..!!..¡Bienvenido Mi primer programa!” en la pantalla. El archivo debería llamarse  mi_primera_app  ya que esa es la clase pública. El resto define el método main que es el que se ejecutará al lanzarse la aplicación. Ese método utiliza la instrucción que escribe en pantalla.

Otros Datos Importantes En la Compilación de Programas.

Los comentarios que comienzan con los códigos /** se llaman comentarios de documento y serán utilizados por los programas de generación de documentación javadoc.

Los comentarios javadoc comienzan con el símbolo /** y terminan con */ Cada línea javadoc se inicia con un símbolo de asterisco. Dentro se puede incluir cualquier texto.

Incluso se pueden utilizar códigos HTML para que al generar la documentación se tenga en cuenta el código HTML indicado.

En el código javadoc se pueden usar etiquetas especiales, las cuales comienzan con el símbolo @. Pueden ser:

  • 􀂀 @author. Tras esa palabra se indica el autor del documento.
  • 􀂀 @version. Tras lo cual sigue el número de versión de la aplicación
  • 􀂀 @see. Tras esta palabra se indica una referencia a otro código Java relacionado con éste.
  • 􀂀 @since. Indica desde cuándo esta disponible este código
  • 􀂀 @deprecated. Palabra a la que no sigue ningún otro texto en la línea y que indica que esta              clase o método esta obsoleta u obsoleto.
  • 􀂀 @throws. Indica las excepciones que pueden lanzarse en ese código.
  • 􀂀 @param. Palabra a la que le sigue texto qué describe a los parámetros que requiere el código        para su utilización (el código en este caso es un método de clase). Cada parámetro se coloca       en una etiqueta @param distinta, por lo que puede haber varios                                        @param para el mismo método.
  • 􀂀 @return. Tras esta palabra se describe los valores que devuelve el código (el código en este caso es un método de clase).
El código javadoc hay que colocarle en tres sitios distintos dentro del código java de la aplicación:

1> Al principio del código de la clase (antes de cualquier código Java). En esta zona se colocan comentarios generales sobre la clase o interfaz que se crea mediante el código Java. Dentro de estos comentarios se pueden utilizar las etiquetas: @author, @version, @see, @since y @deprecated.

2> Delante de cada método. Los métodos describen las cosas que puede realizar una clase. Delante de cada método los comentarios javadoc se usan para describir al método en concreto. Además de los comentarios, en esta zonase pueden incluir las etiquetas: @see, @param, @exception, @return,  @since y @deprecated.

3> Delante de cada atributo. Se describe para qué sirve cada atributo en cada clase. Puede poseer las etiquetas: @since y @deprecated.

Ejemplo:

/** Esto es un comentario para probar el javadoc
* este texto aparecerá en el archivo HTML generado.
* <strong>Realizado en agosto 2003</strong>
*
* @author Jorge Sánchez
* @version 1.0
*/
public class prueba1 {
//Este comentario no aparecerá en el javadoc
/** Este método contiene el código ejecutable de la clase
*
* @param args Lista de argumentos de la línea de comandos
* @return void
*/
public static void main(String args[]){
System.out.println("¡Mi segundo programa! ");
}
}

Tras ejecutar la aplicación javadoc, aparece como resultado la página web de la página siguiente.

Variables
Introducción

Las variables son los contenedores de los datos que utiliza un programa. Cada variable ocupa un espacio en la memoria RAM del ordenador para almacenar un dato determinado.
Las variables tienen un nombre (un identificador) que sólo puede contener letras, números y el carácter de subrayado (también vale el símbolo $). El nombre puede contener cualquier carácter Unicode.

Declaración de variables

Antes de poder utilizar una variable, ésta se debe declarar. Lo cual se debe hacer de esta forma:

tipo nombrevariable;

Donde tipo es el tipo de datos que almacenará la variable (texto, números enteros,...) y nombrevariable es el nombre con el que se conocerá la variable. 
Ejemplos:

int dias;
                boolean decision;


También se puede hacer que la variable tome un valor inicial al declarar:

int dias=365;

Y también se puede declarar más de una variable a la vez:

int dias=365, anio=23, semanas;

Al declarar una variable se puede incluso utilizar una expresión:

         int a=13, b=18;
int c=a+b;

Esas dos palabras sinónimas, hacen referencia a la duración de una variable. En el ejemplo:

{
                 int x=12;
}
                                                 System.out.println(x); //Error

Java dará error, porque la variable se usa fuera del bloque en el que se creo. Eso no es posible, porque una variable tiene como ámbito el bloque de código en el que fue creada (salvo que sea una propiedad de un objeto).

Tipos de datos primitivos


Enteros

Los tipos byte, short, int y long sirven para almacenar datos enteros. Los enteros son números sin decimales. Se pueden asignar enteros normales o enteros octales y hexadecimales. Los octales se indican anteponiendo un cero al número, los hexadecimales anteponiendo 0x.

                                                   int numero=16;      //16 decimal
                                                   numero=020;         //20 octal=16 decimal
                                                   numero=0x14;      //10 hexadecimal=16 decimal

Normalmente un número literal se entiende que es de tipo int salvo si al final se le coloca la letra L; se entenderá entonces que es de tipo long.
No se acepta en general asignar variables de distinto tipo. Sí se pueden asignar valores de variables enteras a variables enteras de un tipo superior (por ejemplo asignar un valor int a una variable long). Pero al revés no se puede:

                                                   int i=12;
                                                   byte b=i;            //error de compilación
La solución es hacer un cast. Esta operación permite convertir valores de un tipo a otro.

Se usa así:

                                                   int i=12;
                                                   byte b=(byte) i;            //No hay problema por el (cast).

Hay que tener en cuenta en estos cast que si el valor asignado sobrepasa el rango del elemento, el valor convertido no tendrá ningún sentido:

                                                   int i=1200;
                                                   byte b=(byte) i;            //El valor de b no tiene sentido.

Números en Coma Flotante

Los decimales se almacenan en los tipos float y double. Se les llama de coma flotante por como son almacenados por el ordenador. Los decimales no son almacenados de forma exacta por eso siempre hay un posible error. En los decimales de coma flotante se habla, por tanto de precisión. Es mucho más preciso el tipo double que el tipo float.
A un valor literal (como 1.5 por ejemplo), se le puede indicar con una f al final del número que es float (1.5f por ejemplo) o una d para indicar que es double. Si no se indica nada, un número literal siempre se entiende que es double, por lo que al usar tipos float hay que convertir los literales.
Las valores decimales se pueden representar en notación decimal: 1.345E+3 significaría 1.345·103 o lo que es lo mismo 1345.

Booleanos

Los valores booleanos (o lógicos) sirven para indicar si algo es verdadero (true) o falso (false). En C se puede utilizar cualquier valor lógico como si fuera un número; así verdadero es el valor -1 y falso el 0. Eso no es posible en Java.
Si a un valor booleano no se le da un valor inicial, se toma como valor inicial el valor false. Por otro lado, a diferencia del lenguaje C, no se pueden en Java asignar números a una variable booleana (en C, el valor false se asocia al número 0, y cualquier valor distinto de cero se asocia a true).

Caracteres

Los valores de tipo carácter sirven para almacenar símbolos de escritura (en Java se puede almacenar cualquier código Unicode). Los valores Unicode son los que Java utiliza para los caracteres. Ejemplo:

                                     char letra;
                                     letra=’C’;       //Los caracteres van entre comillas
                                     letra=67;        //El código Unicode de la C es el 67. Esta línea
                                                                 //hace lo mismo que la anterior
También hay una serie de caracteres especiales que van precedidos por el símbolo \, son estos:


Otros caracteres especiales tenemos:


Conversión entre tipos (casting)

Hay veces en las que se deseará realizar algo como:

                             int a;byte b=12;
                               a=b;

La duda está en si esto se puede realizar. La respuesta es que sí. Sí porque un dato byte es más pequeño que uno int y Java le convertirá de forma implícita. Sin embargo en:

                            int a=1;
                            byte b;
                              b=a;

El compilador devolverá error aunque el número 1 sea válido para un dato byte. Para ello hay que hacer un casting. Eso significa poner el tipo deseado entre paréntesis delante de la expresión.
                           int a=1;
                           byte b;
                            b= (byte) a;    //No da error

En el siguiente ejemplo:

                           byte n1=100, n2=100, n3;
                            n3= n1 * n2 /100;

Aunque el resultado es 100, y ese resultado es válido para un tipo byte; lo que ocurrirá en realidad es que ocurrirá un error. Eso es debido a que primero multiplica 100 * 100 y como eso da 10000, no  tiene más remedio el compilador que pasarlo a entero y así quedará aunque se vuelva a dividir. La solución correcta sería:

n3 = (byte) (n1 * n2 / 100);


PRÓXIMOS TEMAS A PUBLICAR:

  • TIPOS DE OPERADORES QUE SE UTILIZAN EN LA PROGRAMACIÓN EN JAVA Y OTROS LENGUAJES.
  • EJEMPLOS SIMPLES Y BÁSICOS UTILIZANDO LA CONSOLA DE JAVA-NETBEANS.