Para realizar las actividades en Java utilizamos el programa NetBeans IDE 8.1 (instalación, no heredes, activa Java y nos descargamos un paquete para facilitar el trabajo)
Lenguaje de programación Java
Características:
- Independencia de la
plataforma.
- Alto rendimiento .
- Fácil de aprender.
- Basado en estándares.
- Uso a nivel mundial.
- Entornos de ejecución consistentes.
- Optimizado para el control de dispositivos embebidos.
- Recolector de basura.
Aunque usamos entornos de desarrollo integrados para
facilitarnos el trabajo de creación de código fuente, compilación y posterior
ejecución, podemos comprobar nuestros ficheros Java a partir aplicaciones de
consola. El JDK incluye herramientas tales como javac.exe para compilación del
código fuente, java.exe que permite la ejecución de ficheros Java ya compilados
o javadoc.exe que permite la generación de documentación.
Cuando estamos realizando una aplicación en Java, el fichero
que contiene el código fuente posee la extensión .java mientras que una vez se
ha compilado, el fichero de código intermedio o bytecode posee la extensión
.class. Este último fichero será el que debamos usar para ejecutar nuestro
programa en cualquier sistema, siempre que disponga de la máquina virtual que
sea capaz de procesarlo.
Comparación de C# con Java:
usos de ficheros externos:
using --> import
Identificación del paquete o espacio de trabajo
namespace --> package
Método para la salida de datos por el dispositivo estándar:
Console.WriteLine()
--> System.out.println()
Lectura de información a partir del dispositivo de entrada
estándar
Console.ReadLine()
--> BufferedReader (teclado) teclado.readLine()
Conversión de tipos:
int.Parse() --> Intenger.parseInt()
Identificadores en Java
Un identificador en Java se distingue por las siguientes
características:
- Debe comenzar por una letra, el símbolo $ o subrayado (_).
- Esta constituido por una combinación de letras y números.
- Existe distinción entre mayúsculas y minúsculas.
Comentarios en Java
//Comentario de una sola línea
/*Comentario de más
de una línea*/
Comentario de documentación
Un comentario de documentación se utiliza en la generación
de documentación automática. Java dispone de una herramienta llamada
javadoc.exe que genera un documento que resume las características de los
componentes de nuestra aplicación.
/**Comentario de documentación*/
Ejemplo: Desarrolla la documentación para el siguiente código.
package ejemplo1;
import
java.io.*;
public
class ejemplo1
{
/**
* Función suma --
Realiza la suma de los operandos incluidos como parámetros.
* @param n1 --
Primer operando, debe ser entero.
* @param n2 --
Segundo operando, debe ser entero.
* @return --
Resultado de sumar n1 y n2.
*/
public static int suma (int n1, int n2)
{
int
resultado=0;
resultado=n1+n2;
return resultado;
}
public static void main(String[] args)
{
int num1;
int num2;
System.out.println("Introduce los
valores:");
try
{
BufferedReader teclado=
new BufferedReader(new
InputStreamReader (System.in));
num1=Integer.parseInt(teclado.readLine());
num2=Integer.parseInt(teclado.readLine());
System.out.println(suma(num1,num2));
}
//captura de
errores
catch
(IOException ex)
{
System.out.println("Error de E/S");
}
}
}
.
Tipos de datos en Java
datos primitivos o incluidos en el lenguaje:
- Boolean: Equivalente al tipo de dato bool en C#. Acepta
los valores true o false.
- Char: Abarca todos los caracteres, dígitos y símbolos
según el formato UNICODE.
- Tipos numéricos: Son aquellos que representan números.
- tipo
enteros: byte, short, int y long.
- tipos
reales: float y double.
los datos de referencia son aquellos que generan variables
que apuntaban a una dirección de memoria en lugar del dato concreto. Entre
estos encontramos los objetos de Java que hayan sido creados por el usuario o
propios del lenguaje, además de los tipos de datos compuestos como arrays.
Literales en Java
Literales enteros:
Por defecto cualquier número entero en una sentencia es tomado como tipo
int. Si queremos que sea tenido en cuenta como long agregas al número la letra
L o l.
Literales reales: Cualquier numero decimal es tratado como
double. Se puede modificar esta característica agregando la letra F o f al
número, y así es interpretado como float.
Literales lógicos: Son para dar valor a variables booleanas:
true o false.
Literales carácter: Se representan mediante el uso de
comillas simples (').
Literales cadenas de caracteres: son representadas con comillas
dobles(").
Literal nulo: es representado con null.
Declaración en variables en Java
tipo_dato nombre_variable;
tipo_dato nombre_variable=literal;
tipo_dato var1, var2, var3;
Constantes en Java
final tipo_dato nombre_variable=identificador;
Ejemplo constantes
Los operadores en Java no varían.
Realiza un pequeño programa que tenga una variable entera a la que se le asignará el valor 10 por defecto. La aplicación debe comprobar si este número es par o impar y en función de esta condición debe mostrar el mensaje "El número es par" o "El número es impar".
operadores instanceof
El operador instanceof permite realizar una comprobación
entre objetos, interfaces o arrays de forma que devuelve verdadero si el
operando de la izquierda es exactamente igual al operador de la derecha. Este
operador presenta utilidad cuando trabajamos con clases que heredan unas de
otras.
clase instanceof Objeto(instancia)
Ejemplo instanceof
package
pkginstanceof;
import
java.io.*;
public class Instanceof
{
//throws
IOException significa que no tratamos los errores de excepción.
public static void main(String[] args) throws
IOException
{
//Creamos un
arrays de objetos
Object []
numeros=new Object[5];
/*El objetivo
de la aplicación es obtener la media aritmética de todos
los números
enteros y reales insertados en el array a partir de objetos
Intenger o
Double.*/
double
mediaEnteros=0.0;
int
totalEnteros=0;
double
mediaReales=0.0;
int totalReales=0;
/*Incialización del array. Al ser un array de objetos, cada casilla
debe ser
inicializada a partir del operador new. */
numeros[0]=new Integer(10);
numeros[1]=new Double(2.4);
numeros[2]=new Integer(15);
numeros[3]=new Double(3.4);
numeros[4]=new Character('a');
//El bucle se
encargará de recorrer el array y analizar cada casilla.
for (int
i=0;i<5;i++)
{
/* Para
cada casilla comprobamos si el objeto almacenado es de
tipo
Integer, si es asi usamos su valor para almacenar
en
mediaEntero*/
if(numeros[i] instanceof Integer)
{
mediaEnteros+=Integer.parseInt(numeros[i].toString());
totalEnteros++;
}
/* Para
cada casilla comprobamos si el objeto almacenado es de
tipo
Double, si es asi usamos su valor para almacenar
en mediaReales*/
else if (numeros[i] instanceof
Double)
{
mediaReales+=Double.parseDouble(numeros[i].toString());
totalReales++;
}
}
System.out.println("La media de los números enteros es:"
+mediaEnteros/totalEnteros);
System.out.println("La media de los números reales es:"
+mediaReales/totalReales);
}
}
Operadores de entrada/salida de datos en Java
entrada: System.in
Solo podremos usar el metodo read() que recoge el número
entero equivalente al código ASCII del
carácter que se haya pulsado en el teclado.
Los objetos InputStreamReader y BufferedReader permiten
identificar el flujo de información de entrada e incluir métodos para procesar
este flujo.
InputStreamReader está diseñado para encargarse de tratar un
flujo de entrada de datos que solo va a ser leído.
Para poder recoger información de teclado de forma más cómoda,
usaremos el objeto BufferedReader. Este usara el flujo de entrada definido por
el objeto.
InputStreamReader
flujoEntrada=new InputStreamReader(Sustem.in);
BufferedReader
teclado=new BufferedReader (flujoEntrada);
ó
BufferedReader
teclado=new BufferedReader (new InputStreamReader(system.in));
salida: System.out
El método printf("formato", valores) es similar a
Console.WriteLine("formato", valores) de C#
System.out.println("Los números son:%d-%d", num1,
num2);
A la hora de generar cadena de formato, se debe especificar
con el símbolo adecuado, el valor concreto que se va a referenciar. Por
ejemplo, si en la cadena de control escribimos %d la variable o literal que
debe encontrarse en la posición adecuada debe ser entera, en caso contrario se
produce un error de ejecución, ya que los tipos de datos no serían los mismos.
1. Realiza un pequeño programa de consola que pida al usuario el valor del lado de un cuadrado y muestre como resultado el área del mismo.
2. Realiza un pequeño programa que pida al usuario una letra y muestre por pantalla el carácter siguiente especificado.
2. Realiza un pequeño programa que pida al usuario una letra y muestre por pantalla el carácter siguiente especificado.
Sentencias alternativas en Java
Las sentencias de control en Java son en sintaxis iguales a
las vistas en C#.
package
pkg3.pkg8a3.pkg11java;
import
java.io.*;
public
class Main
{
public static void main(String[] args)
throws IOException
{
String diaSemana;
BufferedReader teclado =
new BufferedReader (new
InputStreamReader(System.in));
System.out.println("Introduzca
el día de la semana");
diaSemana=teclado.readLine();
switch(diaSemana)
{
case
"lunes":
System.out.println("Hoy
realizará la actividad psicomotricidad");
break;
case
"martes":
System.out.println("Hoy realizará la actividad natación");
break;
case
"miercoles":
System.out.println("Hoy realizará la actividad música");
break;
case
"jueves":
System.out.println("Hoy realizará la actividad natación");
break;
case "viernes":
System.out.println("Hoy
descanso");
break;
case "sabado":
case
"domingo":
System.out.println("Día sin actividades");
break;
default:
System.out.println("Día
erróneo");
break;
}
}
}
Realiza un programa que pida al usuario y devuelva la suma de todos sus dígitos.
Funciones y procedimientos en java
En Java las funciones y
procedimientos se declaran de forma similar a C# aunque existen algunas
diferencias en relación al paso por parametros, ya que siempre son pasados por
valor.
package pkg4.pkg1al4.pkg4java;
import java.io.*;
public class Main
{
static int CalculaPotencia() throws IOException
{
int base;
int exponente;
int resultado;
int x;
BufferedReader teclado=
new BufferedReader (new InputStreamReader (System.in));
System.out.println("Introduzca la base de la potencia");
base=Integer.parseInt(teclado.readLine());
resultado=base;
System.out.println("Introduzca el exponente de la potencia");
exponente=Integer.parseInt(teclado.readLine());
for(x=exponente-2;x>=0; x--)
{
resultado=resultado*base;
}
return resultado;
}
public static void main(String[] args) throws IOException
{
int resultado;
System.out.println("Este programa calcula el resultado de un potencia");
resultado=CalculaPotencia();
System.out.printf("El area es %d \n", resultado);
}
}
Arrays y Matrices
La sintaxis de declaración y
creación de un array y matrices en Java es similar a la vista con anterioridad
en C#.
ejemplo --> juego del ahorcado
Imagina que tienes que realizar una aplicación para una tienda de forma que esta necesita almacenar sus productos en categorías.
La primera cadena de caracteres representa el nombre de la categoría y los demás casillas los nombres exactos de productos. Como se observa no tendremos la misma cantidad de productos en cada categoría. La aplicación debe permitir realizar las siguientes operaciones:
- Inicializar la matriz
- Ordenar cada categoría
- Contar los productos de una categoría.
- Añadir, modificar y eliminar un producto.
Antes de continuar debo terminar la teoría del tema 5 :(
La primera cadena de caracteres representa el nombre de la categoría y los demás casillas los nombres exactos de productos. Como se observa no tendremos la misma cantidad de productos en cada categoría. La aplicación debe permitir realizar las siguientes operaciones:
- Inicializar la matriz
- Ordenar cada categoría
- Contar los productos de una categoría.
- Añadir, modificar y eliminar un producto.
0 comentarios:
Publicar un comentario