En Java al igual que otros lenguajes existen diversos operadores que son empleados en diferentes secciones de un programa, a lo largo de los distintos programas escritos en este Curso se han empleado su gran mayoría, sin embargo, en esta sección se describirán detalles más precisos acerca de su funcionamiento.
Antes de entrar en el uso de Operadores, a continuación se describe un ejemplo que demuestra el comportamiento de Asignación de valores para el lenguaje Java:
A través de operadores relacionales es posible llevar acabo un proceso de comparación entre dos elementos en un programa, siendo su característica principal el generar un resultado verdadero o falso; dichos operadores relacionales se muestran a continuación :
Operador | Significado |
---|---|
< | Menor que |
> | Mayor que |
<= | Menor que o Igual |
>= | Mayor que o Igual |
== | Igual |
!= | No Igual |
Muchos de estos Operadores han sido utilizados a lo largo de este curso, a continuación se demuestra un uso muy común de estos operadores:
En Java se encuentran disponibles los mismos operadores matemáticos que en otros lenguajes, mencionados a continuación :
Operador | Significado |
---|---|
+ | Suma |
- | Resta |
= | Igual |
* | Multiplicación |
/ | División |
% | Modulo (El residuo de una División) |
Java también ofrece una sintaxis para llevar acabo una operación matemática y asignación en una sola simbología, esta es llevada acabo mediante: "+=","-=","*=","/="; además de esta sintaxis también existen los operadores de auto-incremento y auto-decremento que son representados por "++" y "--" respectivamente.
En los siguientes ejemplos se describe el uso de los diversos operadores matemáticos:
Además de estos operadores matemáticos, el lenguaje también posee una Clase estándar (en el JDK) para realizar operaciones más complejas, esta Clase bajo el nombre de java.lang.Math
ofrece operaciones trigonométricas, exponenciales y otras más; a continuación se describen algunos ejemplos empleando dicha clase :
Los operadores lógicos para el lenguaje Java son los siguientes:
Operador | Significado |
---|---|
|| | O (OR) |
&& | Y (AND) |
! | Negación (NOT) |
A continuación se describe un ejemplo que hace uso de estos operadores :
Aunque el tiempo ideal para encontrar errores es al momento de compilar un programa, esto no siempre es posible y por esta razón han sido diseñados mecanismos para encontrarlos al momento de ejecución ("Run-Time").La metodología más común para trabajar con errores en lenguajes de programación es interrumpir el flujo de ejecución e invocar otro código que maneje el error en cuestión; en el lenguaje Java a la ocurrencia de errores se le denomina "Exceptions" y al procesamiento de errores "Trap" (atrapar).
Como habría de esperarse, al encontrarse un error ("Exception") en Java es necesario invocar una Clase que realiza las respectivas tareas, para mandar llamar este tipo de Clases es necesario utilizar el vocablo throws; suponiendo que desea atrapar un error si determinada variable no ha sido inicializada, se utilizaría la siguiente sintaxis:
if(t == null) throw new NullPointerException(); |
Al utilizar una definición similar a la anterior, se asume que ya se conoce el tipo de error que puede ser generado en el programa, sin embargo, este no siempre es el caso y por esta razón en Java se define una Zona Especifica donde puede ser generado un error y a su vez atrapado, esta Zona "Protegida" es el conocido bloque try/catch/finally, a continuación se describe la sintaxis de este bloque:
Además de los errores ("Exceptions") ofrecidos en las Clases Base del JDK, es posible definir errores propietarios para llevar un control más estricto sobre la generación de errores:
A lo largo de los diversos métodos definidos en los distintos programas, se ha podido observar que estos definen sus Datos de Entrada seguido del nombre del mismo dentro de un paréntesis (calificadores nombre_del_metodo (datos_de_entrada)
).
La sintaxis de los datos de entrada se compone de dos partes: El tipo de Clase/Primitivo, seguido de la referencia empleada dentro dentro del método; por "default" los métodos principales (main
) en Java deben especificar un Arreglo de String's en su definición, esto con la intención de recibir parámetros al momento de ser llamada la Clase, a continuación se describe un ejemplo que hace uso de este mecanismo:
El uso de Datos de Entrada descrito anteriormente es trivial, ya que es realizado antes de iniciarse la ejecución de un programa, en la siguiente sección será descrito el uso de "Streams" para la lectura/escritura de datos en archivos y otros elementos.
Un "Stream" es un nombre genérico otorgado a un flujo de caracteres en un programa de computo, puede estar compuesto por los valores residentes en un archivo texto, datos introducidos interactivamente por un usuario o datos que desean ser colocados en determinado archivo.
Un "Stream" es la representación más cruda de un juego de datos, pero una manera muy universal de accesar/guardar datos, inclusive la clase System.out.println
utilizada en la gran mayoría de los programas de este curso también es un "Stream"; en Java existen diversas Clases utilizadas en conjunción de "Streams", a continuación se describen estas Clases :
El uso de "Streams" en programación es un tema muy extenso y en ocasiones considerado muy abstracto, por esta razón son descritos dos ejemplos en las siguientes secciones: