Want to create interactive content? It’s easy in Genially!
MODULO PROGRAMACION 1
Angeles
Created on November 4, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
Transcript
Programación y Bases de Datos
Primera Actividad
BT1 - Programación Estructurada y Programación Orientada a Objetos
MP0485 - Módulo Profesional: Programación
DAW - Técnico Superior en Desarrollo de Aplicaciones Web
María de los Ángeles Gey Piñeiro
Introducción a la tecnología Java
Índice
1. Introducción a la tecnología Java
Descripción de Java, JDK, JRE, JVM, IDE
2. Elementos esenciales del lenguaje Java
Variables, operadores, control de flujo, etc
Introducción a la tecnología Java
1. Qué es Java
2. La plataforma Java
3. Máquina Virtual de Java (JVM)
4. Principales características
5. Vídeo repaso
6. Entornos Integrados de Desarrollo (IDE)
7. Test de autoevaluación
Introducción a la tecnología Java
¿Que es Java?
Java es un lenguaje de programación orientada a objetos y una plataforma informática, creado por Sun Micorsystems Inc en 1990, que incluye los siguientes elementos:
- Un lenguaje de programación: Java
- Bibliotecas de Java: un conjunto de bibliotecas que ofrecen apoyo para el desarrollo en Java: bibliotecas estándar que vienen incluidas en la plataforma y que son necesarias en todo entorno Java, es el Java Core; bibliotecas de integración que permiten la comunicación con sistemas externos; bibliotecas para la interfaz de usuario; etc
- JRE (Java Runtime Environment, o Entorno en Tiempo de Ejecución de Java): es el software necesario para ejecutar cualquier aplicación desarrollada para la plataforma Java. Un entorno de ejecución que en definitiva es una máquina virtual que ejecuta los programas traducidos a bytecodes. El usuario final usa el JRE como parte de paquetes software o plugins (o conectores) en un navegador Web.
- JDK (Java Development Kit), en cuyo seno reside el JRE, incluye un conjunto de herramientas para el desarrollo de programas, como es el compilador de bytecodes, el generador de documentación (Javadoc), un depurador, etc.
- JVM (Java Virtual Machine): encargada de la ejecución del programa
Introducción a la tecnología Java
Plataforma Java
Actualmente existen varias ediciones de la plataforma Java y que se pueden resumir en las siguientes:
Java SE (Java Platform, Standard Edition) o J2SE
Java EE (Java Platform, Enterprise Edition) o J2EE
Java ME (Java Platform, Micro Edition) o J2ME
Es la plataforma base para desarrollo de aplicaciones en Java y sobre la que se cimientan el resto de plataformas Java. Es usado para desarrollar aplicaciones de escritorio, applets y otros tipos de aplicaciones. Dentro de estas funcionalidades básicas de Java encontramos: el uso de colecciones, acceso a ficheros con Java IO y NIO y bases de datos con JDBC, librerías para la fecha y hora, posibilidad de crear aplicaciones multi-hilo, capacidades para realizar conexiones en red…
Es una plataforma de desarrollo para aplicaciones empresariales y del lado del servidor. Incluye tecnologías como Servlets, JSP o EJB. Java EE nos permite realizar el desarrollo de servicios, ya sean WSDL (con JAX-WS), REST (con JAX-RS), o la creación de websockets.Además ofrece un API de persistencia de objetos con JPA, capacidades de mensajería con Java Message, de correo electrónico con Java Mail o gestión de procesos batch.
Es una plataforma de desarrollo de aplicaciones Java orientada a entornos de limitados recursos como son los dispositivos móviles, PDAs (Personal Digital Assistant), etc.
Introducción a la tecnología Java
Máquina Virtual de Java (JVM)
Java es un lenguaje interpretado, es decir, se puede ejecutar en cualquier máquina que disponga de un intérprete Java. A este intérprete se le llama Java Virtual Machine (JVM) o máquina virtual de Java. Esta característica hace que los programas Java sean independentes de la plataforma o sistema operativo donde se ejecuten.
¿Cómo funciona?
Código fuente
MiPrograma.java
El código fuente de Java se escribe en archivos .java durante la fase de programación.
Compilador
javac MiPrograma.java
Al compilarlo no se crea directamente el código máquina como sucede con otros lenguajes de programación, sinó que se traducen a un código intermedio llamado bytecodes en archivos .class.
Byte-Code
MiPrograma.class
Los bytecodes son instrucciones que se ejecutan en cualquier Máquina Virtual de Java (JVM) donde el intérprete lo convierte a lenguaje máquina de la computadora donde está instalado. De esta manera el código es independiente de la máquina donde se vaya a ejecutar, sólo es necesario que disponga de la Máquina Virtual de Java: “Write once, run everywhere”.
JVM
JVM
JVM
java MiPrograma
Introducción a la tecnología Java
Características principales de Java
En el siguiente diagrama se representan las principales características de Java. Haz click en cada una de ellas para ver el detalle:
Bibliotecas de clases
Robusto
Orientado a Objetos
Java
Portable
Sencillo
Distribuido
Seguro
Multithread
Introducción a la tecnología Java
Vídeo repaso
Veamos en este vídeo un poco más sobre la plataforma Java y su historia.
Introducción a la tecnología Java
Entornos Integrados de Desarrollo (IDE)
Los Entornos Integrados de Desarrollo o IDEs son aplicaciones que ofrecen la posibilidad de llevar a cabo el proceso completo de desarrollo de software a través de un único programa: edición de código, compilación, depuración, detección de errores, corrección y ejecución de programas escritos en Java o en otros lenguajes de programación, bajo un entorno gráfico (no mediante línea de comandos).
Sigue las instrucciones de este video para preparar tu entorno de desarrollo con el JDK y el IDE Eclipse
Existen en el mercado multitud de entornos de desarrollo para el lenguaje Java: de libre distribución (NetBeans, Eclipse, BlueJ, etc), de pago (IntelliJ IDEA, JCreator, JDeveloper, etc), para principiantes, para profesionales, que consumen más recursos, que son más ligeros, más amigables, más complejos que otros, etc.
Junto a las capacidades descritas, cada entorno añade otras que ayudan a realizar el proceso de programación, como por ejemplo: código fuente coloreado, plantillas para diferentes tipos de aplicaciones, creación de proyectos, etc.
" Ponte a prueba!!!!"
Accede y completa el test de autoevaluación.
Elementos esenciales del lenguaje JAVA
1. Tipos de datos
2. Variables
3. Constantes
4. Operadores
5. Conversión de tipo
6. Estructura de un programa
7. Estructuras de control de flujo
8. Test de autoevaluación
Elementos esenciales del lenguaje Java
Tipos de datos
En el primer tema hemos visto que es Java y hemos preparado el entorno de programación. Continuemos ahora viendo los elementos fundamentales del lenguaje Java.
¿Qué son los algoritmos y programas?
Un algoritmo es una secuencia ordenada de pasos, descrita sin ambigüedades, que conducen a la solución de un problema dado. Un programa es un algoritmo escrito en un determinado lenguaje de programación.
¿Qué es un dato?
En el ámbito de la programación un dato es una cifra, letra o palabra que maneja un programa para, por ejemplo, hacer cálculos, presentarlos en pantalla, enviarlos a la impresora, guardarlos en disco...
entonces ¿qué son los tipos de datos?
Es una manera de clasificar los datos según sus características.
Tipos de datos primitivos
Los tipos primitivos son aquellos datos sencillos que constituyen los tipos de información más habituales: números, caracteres y valores lógicos o booleanos.
¿Por qué hay tantos tipos de datos para números enteros?
Se diferencian por el tamaño, es decir, por lo que ocupan en memoria.
Elementos esenciales del lenguaje Java
Variables
Ahora que hemos visto qué es un dato y los tipos primitivos de datos en Java veamos cómo se usan en un programa.
¿Como maneja un programa esos datos?
El programa guarda los datos en variables. Una variable es una zona en la memoria del ordenador donde el programa guarda un valor para usarlo más tarde. Para acceder al valor guardado en una variable, esta tiene un nombre que será su identificador. La declaración de una variable es la asignación de un tipo de dato y un identificador. La inicialización es la asignación de un valor a la variable, es decir, indicar que valor se guardará en el espacio de memoria identificada con la variable.
identificador
...¿como se declara e inicializa una variable en Java?
tipo de dato
Para declarar una variable se debe indicar el tipo de dato que queremos guardar y el nombre de la variable. Para inicializarla se debe poner el operador = y el valor a guardar.
valor
miNumero
int
123456
Elementos esenciales del lenguaje Java
Constantes
Una constante es un espacio en la memoria del ordenador que almacena un valor que NO puede variar durante la ejecución de un programa. Las variables y las constantes sirven para guardar datos pero la diferencia es que el valor de la variable puede cambiar durante la ejecución del programa mientras que el valor de la constante no puede variar.
identificador
modificador
valor
21
IVA
short
final
tipo de dato
Para practicar:
- asignar un valor distinto a la constante (por ejemplo: cambiar el 18 por 21) y ejecutar, ¿cual es el resultado?
- cambiar el valor de la constante después de haberla declarado y ejecutar, ¿cual es el resultado?
Elementos esenciales del lenguaje Java
Expresiones y Operadores
Una expresión es una combinación de variables, operadores y llamadas de métodos que devuelve un valor. Los operadores son símbolos especiales que en general se usan en expresiones para realizar una operación con los datos pasados como operandos. A continuación se muestran los distintos tipos de operadores
Aritméticos
Relacionales
De bits
+ - * / % ++ - -
== != > < >= <=
~ & | ^ << >> >>>
Se usan en expresiones matemáticas o aritméticas y devuelven un número.
Se usan para comparar datos y devuelve un booleano.
Se usan para relizar operaciones a nivel de bits (poco frecuentes)
Precedencia de operadores
Orden de precedencia de los operadores.
Lógicos
Asignación
Otros
&& || !
= += -= *= /= %=
?: (tipo) expr str+str
Se usan para evaluar condiciones y devuelven un booleano.
Se usan para asignar un valor a una variable
Otros operadores de Java de uso frecuente
Elementos esenciales del lenguaje Java
Conversiones de tipo
Las conversiones de tipo se realizan para hacer que el resultado de una expresión sea del tipo que nosotros deseamos. Existen dos tipos de conversiones:
Conversiones Explícitas
Conversiones automáticas
Cuando hacemos una conversión de un tipo con más bits a un tipo con menos bits. En estos casos debemos indicar que queremos hacer la conversión de manera expresa, ya que se puede producir una pérdida de datos y hemos de ser conscientes de ello. Este tipo de conversiones se realiza con el operador cast. El operador cast es un operador unario que se forma colocando delante del valor a convertir el tipo de dato entre paréntesis. Tiene la misma precedencia que el resto de operadores unarios y se asocia de derecha a izquierda. Las conversiones explícitas también suelen ser conocidas como casting.
Cuando a una variable de un tipo se le asigna un valor de otro tipo numérico con menos bits para su representación, se realiza una conversión automática. En ese caso, el valor se dice que es promocionado al tipo más grande (el de la variable), para poder hacer la asignación. También se realizan conversiones automáticas en las operaciones aritméticas, cuando estamos utilizando valores de distinto tipo, el valor más pequeño se promociona al valor más grande, ya que el tipo mayor siempre podrá representar cualquier valor del tipo menor (por ejemplo, de int a long o de float a double).
Elementos esenciales del lenguaje Java
Estructura de un programa
Cualquier programa en Java tiene, al menos, una clase con un método especial que se llama main. El método main es un método especial que le dice a la JVM que clase es la principal dentro del programa.
A la hora de ejecutar el código, el entorno de ejecución de Java (JRE) busca un método llamado main. Si no lo encuentra, no puede acceder. Es por ello que puedes considerar main como una palabra clave de acceso. Si la cambias, tu aplicación no se ejecutará.
Elementos esenciales del lenguaje Java
Estructuras de control de flujo
Las estructuras de control determinan la secuencia de ejecución de las sentencias de un programa.
Estructuras de control
Estructuras de control de flujo
Estructura secuencial
Estructura condicional
Estructura repetitiva
Instrucciones de salto
if simple
while
break
if - else
do - while
continue
if anidados
for
switch
" Ponte a prueba!!!!"
Accede y completa el test de autoevaluación.
¡Lección aprendida!
¡Buen trabajo!
Bibliografía y recursos
Recursos de consulta en los que está basada esta unidad didáctica
01
Apuntes del IES San Clemente
02
WIKILIBROS: Programación_en_Java
03
UNIDAD 4. INTRODUCCIÓN A JAVA. (2019/2020). Carlos Cacho y Raquel Torres. Centre específic d'educació a distància de la Comunitat Valenciana. https://github.com/lionel-ict/ApuntesProgramacion/blob/master/Unidad%204%20Introducci%C3%B3n%20a%20Java/ud4_Introduccion_a_Java.pdf
04
Java (lenguaje de programación). (2023, 16 de noviembre). Wikipedia, La enciclopedia libre. Fecha de consulta: 20:16, noviembre 16, 2023 desde https://es.wikipedia.org/w/index.php?title=Java_(lenguaje_de_programaci%C3%B3n)&oldid=155423920.
05
Apuntes de Programación de Javier Gutiérrez.
06
Iconos e imágenes de Flaticon
07
Videos manual Java de @originpathVlog
Ejemplo
Prueba en el código de ejemplo un uso de conversión de tipo para evitar un error de posible pérdida de precisión al asignar un valor de una variable a otra variable.Sigue los comentarios en el código para realizar la prueba
Lenguaje Orientado a Objetos
Java es un lenguaje totalmente orientado a objetos. Todo en Java son objetos, excepto los tipos de datos primitivos, por lo que le confiere toda la potencialidad de este paradigma de programación:
- reutilización de código
- encapsulación
- polimorfismo
- herencia
Todos estos conceptos se verán más en detalle en el tema de Programación Orientada a Objetos (POO).
Multithread
Java soporta de modo nativo los threads, sin necesidad del uso de librerías específicas (como es el caso de C). Esto le permite además que cada thread (hilo) de una aplicación java pueda correr en una CPU (o core) distinta, si la aplicación se ejecuta en una máquina que posee varias CPU. De este modo, mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario mientras otro presenta una animación en pantalla y otro realiza cálculos.
Comentario de varias líneas
/* Comentario de varias lineas, todo el texto aqui dentro es un comentario.*/
Los comentarios de implementación se utilizan para explicar el código fuente del programa. Todo el texto entre los caracteres /* y */ es un comentario de implementación, por lo tanto no forma parte del programa, ypuede tener varias líneas.
Portable
En Java no hay aspectos dependientes de la implementación, todas las implementaciones de Java siguen los mismos estándares en cuanto a tamaño y almacenamiento de los datos. Esta característica y la Máquina Virtual de Java (JVM) proporciona a los programas Java la capacidad de poder ejecutarse en cualquier computador.
Al ejecutar el código despues de cambiar el valor asignado en la declaración de la constante (línea 7), en el ejemplo se ha cambiado el valor 18 por el valor 21, en la consola de salida aparece el texto "El valor de la constante es 21".
Sentencias / Instrucciones
String saludo = "Hola mundo"; // Sentencia 1System.out.println(saludo); // Sentencia 2
Una sentencia o una instrucción representa una unidad de ejecución, la tarea más sencilla que se puede realizar en un programa. Las sentencias terminan siempre en ;
- declaración de variables: String saludo = "Hola mundo";
- llamada a métodos, por ejemplo para imprimir por pantalla: System.out.println(saludo);
- expresión con algún tipo de operador: saludo += "!!!"
- expresión de creación de objetos: Integer objInt = new Integer(4);
Un bloque de sentencias es un grupo de cero o más sentencias que se inicia con una llave abierta, carácter {, y termina con una llave cerrada, carácter }.
Operadores aritméticos
Los operadores aritméticos son aquellos operadores que combinados con los operandos forman expresiones matemáticas o aritméticas.
Lenguaje fuertemente tipado
Java es un lenguaje fuertemente tipado o tipificado. Esto quiere decir que es necesario especificar el tipo de dato para cada una de las variables y constantes que se vayan a utilizar en un programa El tipo de dato limita el valor de la variable o expresión, las operaciones que se pueden hacer sobre esos valores, y el significado de esas operaciones. La comprobación del tipo de dato de una variable se realiza en tiempo de compilación por lo que permite detectar errores antes de su ejecución. Por ejemplo, cuando se intenta asignar un valor de un tipo a una variable de otro tipo el compilador mostrará un mensaje de error. Sin embargo, en Java, puede haber conversión entre ciertos tipos de datos, como veremos posteriormente.
Comentario de una línea
// Comentario de una linea
Los comentarios de implementación se utilizan para explicar el código fuente del programa. Con los caracteres // se indica que todo el texto de la línea a continuación de dichos caracteres es un comentario, por lo tanto no forma parte del programa.
Los programas consumen memoria y en función del consumo de memoria van más rápidos o más lentos.
Estructura Condicional Doble
Mediante esta estructura de control el flujo de ejecución del programa puede seguir dos caminos distintos dependiendo del valor de una condición.
if (condicion) { sentenciaA; } else { sentenciaB; }
Se evalúa la condición y si se cumple se ejecuta un bloque de instrucciones. Si no se cumple se ejecuta otro bloque de instrucciones.
- Introduce una letra en la pestaña Entrada y ejecuta el código, ¿cual es el resultado en la pestaña Salida?
- Introduce un número entero en la pestaña Entrada, ejecuta el código y comprueba la pestaña Salida, ¿es un número par o impar?
Al asignar a la constante otro valor (línea 12) después de su declaración (línea 7) devuelve un error de compilación. Sin embargo, si se elimina el modificador final de la declaración de la constante ya no devuelve error porque ya no es una constante, sería una variable.
Otros operadores
El lenguaje Java tiene otros operadores. En la siguiente tabla se destacan algunos de los más frescuentes.
Estructura Condicional Múltipe
La estructura condicional múltiple se obtiene encadenando sentencias if ... else. Mediante esta estructura podemos construir estructuras de selección más complejas.
if (condicion) { sentenciaA; } else { if(condicion2) { sentenciaB; } else { sentenciaC; }
- Introduce distintos valores en la petaña de entrada y ejecuta el programa, ¿cual es el resultado en la pestaña Salida?
Instrucción de salto break
Esta instrucción provoca la finalización de una instrucción switch, while, do-while o for. En aquellos casos en los que existan estructuras de control repetitivas anidadas, un break produce la salida inmediata de aquel bucle en el que se encuentre incluida pero no de los demás. La única situación en la que un buen programador debería utilizar la instrucción break, es para separar los diferentes casos de una instrucción switch.
En este ejemplo, cuando se ejecuta la instrucción break el for finaliza y la ejecución del programa continúa en la instrucción que aparece a continuación del for.
Operadores de bits
Los operadores a nivel de bits se caracterizan porque realizan operaciones sobre números enteros (o char) en su representación binaria, es decir, sobre cada dígito binario.Son operadores de uso poco frecuente y muy específico.
Lorem ipsum dolor
Operadores de asignación
El principal operador de esta categoría es el operador asignación "=" que permite al programa darle un valor a una variable, que ya hemos utilizado en varias ocasiones en esta unidad. Además de este operador, Java proporciona otros operadores de asignación combinados con los operadores aritméticos, que permiten abreviar o reducir ciertas expresiones.
Ejemplo
En el código se muestra un ejemplo de la conversación implícita al asignar el valor de una variable a otra variable de tipo con mayor rango (no hay pérdida de precisión y la conversión es automática)
Para practicar:
- Cambia el valor de la variable por otro número entero, por ejemplo el 3, y ejecuta el código. ¿Cual es el resultado?
- Cambia de nuevo el valor de la variable, esta vez pon el valor 3.1 ¿Qué pasa al ejecutar?
- Cambia ahora el tipo de la variable, en vez de int pon double y ejecuta. ¿Qué sucede ahora?
Estructura repetitiva do...while
Las instrucciones se ejecutan mientras la condición sea evaluada a true.
do { sentencia; } while (condicion);
En un ciclo while la condición se comprueba al final del bucle por lo que el bloque de instrucciones se ejecutan al menos una vez. Si la condición nunca cambia tendremos un bucle infinito y el programa nunca terminará por lo que lo normal es modificar la expresión de la condición dentro del bloque while en algún momento para salir del bucle.
¿Que sucede si inicializamos la variable contador en la línea 7 con el valor 11?
Instrucciones de salto
Una instrucción de salto provoca la modificación del flujo de ejecución de un programa. En general no son muy recomendables y su uso debería estar restringido a situaciones especiales.
- break
- continue
Java ofrece dos instrucciones de salto:
El nombre de la constante:
Buenas prácticas según la convención de nombres de Java
- debe tener todas las letras en mayúculas
- no puede contener espacios; si está compuesto de varias palabras, irán separadas por un guión bajo "_"
- java es case sensitive, es decir, distingue mayúsculas de minúsculas (no es lo mismo FINAL que final). Por esta razón, al escribir el nombre de las constantes en mayúscula no hay problemas con las palabras reservadas, las cuales tienen todas sus letras en minúsculas.
Ver la lista de palabras reservadas de Java
Truco para asimilar estos conceptos
- Imagina que la memoria del ordenador es como un almacén.
- las cajas serían las variables, espacios donde guardar cosas
- la cajas tienen un código de barras para identificarlas, lo mismo sucede con el nombre de la variable
- en la caja se indica el tipo de material que contiene, por ejemplo bolígrafos, igual que el tipo de una variable indica el tipo de valor que se guardará en ella.
Estructura switch
switch (expresion) { case valor1: sentenciaA; break; case valor2: sentenciaB; break; ... default: sentenciaN; break; }
Esta estructura de control se utiliza para seleccionar una de entre múltiples opciones posibles. La instrucción switch no permite que la variable o expresión sea del tipo float o double.
Funcionamiento de la instrucción switch:
- Primero se evalúa la expresión y salta al case cuyo valor coincida con el valor de la expresión.
- Se ejecutan las instrucciones que contiene el case seleccionado hasta que se encuentra un break o hasta el final del switch.
- Si el valor de la expresión no coincide con ningún case se ejecuta el bloque default.
Distribuido
Java está muy orientado al trabajo en red, soportando protocolos como TCP/IP, UDP, HTTP y FTP. Java dispone de librerías que proporcionan una colección de clases para su uso en aplicaciones de red, que permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes remotos, facilitando al programador las tareas del tratamiento de la información a través de redes para la creación de aplicaciones distribuidas.
Declaración de clase
public class Main {
En Java todo el código debe ser colocado dentro de una declaración de clase.
- public: indica que la clase es de acceso público, es decir, accesibl desde otras clases de otros paquetes (los paquetes son colecciones de clases)
- class: palabra reservada de Java que indica que se trata de una clase.
- Main: nombre que será el identificador de la clase. Los nombres de clases empiezan en mayúscula.
- {: indica el inicio de un bloque (puede ir en la misma línea o en la siguient).
Seguro
La seguridad está garantizada, ya que las aplicaciones Java no acceden a zonas delicadas de memoria o de sistema. Java incorpora mecanismos específicos para garantizar la seguridad del sistema. Por una parte, todo el código se ejecuta dentro de la máquina virtual y por otra, cuando se cargan los bytecodes existe un proceso de verificaicón de los mismos antes de que se ejecuten.
Ejemplos de tipos de datos
tipo de dato: número decimal
tipo de dato: palabra
3,1
2,4
1,5
8,6
gato
casa
pez
árbol
tipo de dato: letra
tipo de dato: número entero
Estructura condicional
Es una de las estructuras que permiten modificar el orden de ejecución de las instrucciones del programa.Una estructura condicional determina si se ejecutan unas acciones u otras según se cumpla o no una determinada condición.La condición que se comprueba para decidir si unas instrucciones se ejecutan o no debe ser una expresión booleana es decir debe dar como resultado un valor booleano true ó false.
- Instrucción if:
- condición simple: if
- condición doble: if... else ...
- condición múltiple o if anidados: if... else if ...
- Instrucción switch (condición múltiple)
- Operador condicional ?: (ya visto en operadores)
En java la estructura condicional se implementa mediante:
Declaración del método main
public static void main(String[] args)
El método main() es el punto de inicio de un programa Java y es necesario colocar toda la declaración exactamente:
- public: palabra reservada de Java que indica que es de acceso público, accesible fuera de la clase
- static: palabra reservada de Java que indica que se puede ejecutar sin una instancia de la clase
- void: palabra reservada de Java que indica que el método main() no devuelve ningún valor
- main(): nombre del método que indica que se trata del punto de entrada para la ejecución del programa.
- String args[]: almacena los parámetros que se le pasan al programa, es decir, los parámetros de entrada que pueden ser números enteros, caracteres, etc. aunque siempre se pasan como String y debe realizarse la conversión de tipo dentro del programa.
- {: indica el inicio de un bloque, puede ir en la misma línea o en la siguiente. En este caso las sentencias de las que se compone el método main();
Tipos primitivos en Java
Son los tipos de datos elementales de un lenguaje de programación, los más simples. Con estos tipos de datos se pueden crear otros tipos más complejos, pero esto lo veremos más adelante.
Lenguaje sencillo
Java es un lenguaje sencillo de aprender. Su sintaxis es la de C++ "simplificada". Los creadores de Java partieron de la sintaxis de C++ y trataron de eliminar de este todo lo que resultase complicado o fuente de errores en este lenguaje: la herencia múltiple, la aritmética de punteros, o la gestión de memoria . El "Recolector de Basura" o "Garbage collector" es una herramienta incluida en la plataforma Java que comprueba que memoria puede liberarse y la libera automáticamente sin necesidad de realizarlo el programador explícitamente.
Precedencia de operadores
El orden de precedencia de los operadores determina la secuencia en que deben realizarse las operaciones cuando en una expresión intervienen operadores de distinto tipo. Las reglas de precedencia de operadores que utiliza Java coinciden con las reglas de las expresiones del álgebra convencional. En la tabla se muestra el orden de precedencia de mayor a menor.
Bibliotecas de clases
Java dispone de numerosas librerías o bibliotecas de clases Java que proporcionan al programador de paquetes de clases últiles para la realización de múltiples tareas dentro de un progama facilitando el desarrollo. Las bibliotecas de clases están organizadas en paquetes lógicos donde cada paquete contiene un conjunto de clases relacionadas semánticamente. Estas clases contienen métodos que son últiles para los programadores. Hay bibliotecas que forman parte de la API de Java distribuidas gratuitamente junto con la JDK (Java Develpment Kit) y bibliotecas desarrolladas por terceros.
Operadores de relación
Los operadores relacionales se utilizan para comparar datos de tipo primitivo (numérico, carácter y booleano). Estas expresiones en Java dan siempre como resultado un valor booleano true o false.
Instrucción de salto continue
Esta instrucción provoca la ejecución de la siguiente iteración en el bucle, es decir, se salta las instrucciones que quedan hasta el final del bucle, y vuelve al inicio del mismo. Si se trata de un bucle for vuelve a la zona de incremento/decremento.Un buen programador deberá evitar el uso de esta instrucción.
En este ejemplo, el programa muestra los números desde el 1 hasta el 50 excepto los que sean múltiplos de 3 y de 5.
Robusto
Java fue diseñado para crear software altamente fiable. Para ello proporciona numerosas comprobaciones en compilación y en tiempo de ejecución. Sus características de memoria liberan a los programadores de una familia entera de errores (la aritmética de punteros), ya que se ha prescindido por completo de los punteros, y la recolección de basura elimina la necesidad de liberación explícita de memoria.
Estructura secuencial
Las sentencias de un programa se ejecutan por defecto en orden secuencial. Esto significa que las instrucciones se ejecutan en secuencia, una a continuación de la otra, en el orden en que aparecen escritas dentro del programa (de izquierda a derecha y de arriba abajo).
El nombre de la variable
Buenas prácticas según la convención de nombres de Java
- deben ser cortos y describir el propósito del contenido que van a almacenar
- el primer caracter debe ser una letra minúscula
- no puede contener espacios; si está compuesto de varias palabras, irán en minúsculas con la primera letra de cada palabra en mayúscula exceptuando la primera
- no deben empezar con caracteres como subrayado "_" o "$"
- hay una serie de palabras reservadas que no pueden ser usadas como identificadores.
Ver la lista de palabras reservadas de Java
Estructura repetitiva for
for(inicialización; condición; incremento/decremento) { instrucciones;} //fin for
Un for hace que una instrucción o bloque de instrucciones se repitan un número determinado de veces mientras se cumpla la condición. Los bucles for son los más adecuados cuando se conoce el número de veces que se van a repetir las instrucciones.
- La expresión de inicialización solo se ejecuta una vez, cuando empieza el bucle.
- La condición se evalúa en cada iteración y cuando es false el bucle termina.
- La expresión de incremento/decremento se ejecuta en cada iteración y aumenta o disminuye el valor que se evalúa en la condición
Estructura repititiva o iterativa
Esta estructura de control permite ejecutar de forma repetida una instrucción o un bloque de instrucciones.Las instrucciones se repiten mientras que se cumpla una determinada condición.Esta condición se conoce como condición de salida del bucle.
- bucle while
- bucle do ... while
- bucle for
En java la estructura condicional se implementa mediante:
Lenguaje fuertemente tipado
Java es un lenguaje fuertemente tipado o tipificado. Esto quiere decir que es necesario especificar el tipo de dato para cada una de las variables que se vayan a utilizar en un programa El tipo de dato limita el valor de la variable o expresión, las operaciones que se pueden hacer sobre esos valores, y el significado de esas operaciones. La comprobación del tipo de dato de una variable se realiza en tiempo de compilación por lo que permite detectar errores antes de su ejecución. Por ejemplo, cuando se intenta asignar un valor de un tipo a una variable de otro tipo el compilador mostrará un mensaje de error. Sin embargo, en Java, puede haber conversión entre ciertos tipos de datos, como veremos posteriormente.
Estructuras de control de flujo
Las instrucciones se ejecutan generalmente una a continuación de la otra según la secuencia en la que el programador ha escrito el código. Sin embargo, hay ocasiones en las que es necesario romper esta secuencia de ejecución para hacer que una serie de instrucciones se ejecuten o no dependiendo de una determinada condición o hacer que una serie de instrucciones se repitan un número determinado de veces.Las estructuras de control permiten modificar el orden natural de ejecución de un programa.
Comentarios de documentación en Java (javadoc)
/** comentario */
Los comentarios no forman parte del programa y se utilizan para documentar el código. Los comentarios de documentación son comentarios especiales para generar la documentación del código Java (javadoc). Todo el texto dentro de /** y */ es un comentario javadoc. Existe un conjunto de indicadores que javadoc reconoce como especiales y empiezan por @, por ejemplo:
- @author: nombre del desarrollador
- @return: describe el valro devuelto de un método
- @version: versión del método o clase
La sintaxis para generar el javadoc es la siguiente:
javadoc [ opcións ] [ fichero.java ]
Estructura repetitiva while
Las instrucciones se repiten mientras la condición sea evaluada a true.
while (condicion) { sentencia; }
En un ciclo while la condición se comprueba al principio del bucle por lo que las instrucciones que lo forman se ejecutan 0 ó más veces. Si la condición nunca cambia tendremos un bucle infinito y el programa nunca terminará por lo que lo normal es modificar la expresión de la condición dentro del bloque while en algún momento para salir del bucle.
¿Que sucede si inicializamos la variable contador en la línea 7 con el valor 11?
Importar librerías o bibliotecas
import java.util.*;
Al inicio de un fichero Java importamos las librearías a usar. En este caso se está importando la librería estándar de Java: java.util. En concreto, al usar el * estamos importando todas las clases dentro del paquete java.util. Por ejemplo:
- List<E>: listas de datos de tipo E
- Map<K,V>: colección de valores en modo clave(de tipo K)-valor(de tipo V)
- Calendar: clase que representa una fecha y proporciona operaciones útiles con fechas
Estructura Condicional simple
La usaremos para decidir si una instrucción o bloque de instrucciones se ejecuta o no dependiendo de una condición.
if (condicion) { sentencia; }
Se evalúa la condición y si se cumple se ejecuta. Si no se cumple la condición, se salta dicho grupo de instrucciones y pasa a la siguiente instrucción.
- Introduce una letra en la pestaña Entrada y ejecuta el código, ¿cual es el resultado en la pestaña Salida?
- Introduce un número en la pestaña Entrada y ejecuta el código, ¿cual es el resultado en la pestaña Salida?
Operadores lógicos
Los operadores lógicos realizan operaciones sobre valores booleanos, o resultados de expresiones relacionales, dando como resultado un valor booleano.Existen ciertos casos en los que el segundo operando de una expresión lógica no se evalúa para ahorrar tiempo de ejecución, porque con el primero ya es suficiente para saber cuál va a ser el resultado de la expresión. Es el caso de los operadores && y ||.