01 fundamentos-java

29
LENGUAJE DE PROGRAMACIÓN II Dr. Rafael Rojas Bujaico Introducción a Java UNIVERSIDAD NACIONAL DE HUANCAVELICA FACULTAD INGENIERIA ELECTRONICA-SISTEMAS

Transcript of 01 fundamentos-java

Page 1: 01 fundamentos-java

LENGUAJE DE PROGRAMACIÓN II

Dr. Rafael Rojas Bujaico

Introducción a Java

UNIVERSIDAD NACIONAL DE HUANCAVELICA

FACULTADINGENIERIA ELECTRONICA-SISTEMAS

Page 2: 01 fundamentos-java

INTRODUCCION

Java surgió en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de diseñar un nuevo lenguaje de programación destinado a electrodomésticos basado en un proyecto orientado en los dispositivos electrónicos para uso doméstico llamado GREEN elaborado en Lenguaje C++, pero este nombre de proyecto ya existía, por lo que la gente de SUN en su visita a una cafetería local se idearon asignar el nombre de JAVA.

Java generó interés inmediato en la comunidad de negocios, debido al fenomenal interés en World Wide Web basado en su contenido dinámico y animaciones en las páginas web especialmente los dispositivos domésticos (celulares, radio localizadores, asistentes digitales, etc…)

Page 3: 01 fundamentos-java

Entorno de Desarrollo Java

• La compañía Sun, creadora de Java, distribuye gratuitamente el Java Development Kit (JDK).

• Se trata de un conjunto de programas y librerías que permiten desarrollar, compilar y ejecutar programas en Java.

Page 4: 01 fundamentos-java

El Compilador Java

• Se trata de una de las herramientas de desarrollo incluidas en el JDK. Realiza un análisis de sintaxis del código escrito en los ficheros fuente de Java (con extensión *.java). Si no encuentra errores en el código genera los ficheros compilados (con extensión *.class).

Page 5: 01 fundamentos-java

El Compilador Java

Código FuenteExtensión *. java

Proceso de Compiladocon JDK

Archivo CompiladoExtensión *. class

Page 6: 01 fundamentos-java

Java Virtual Machine

• La JVM es el intérprete de Java. Ejecuta los “bytecodes” (ficheros compilados con extensión *.class) creados por el compilador de Java (javac.exe).

• Tiene numerosas opciones entre las que destaca la posibilidad de utilizar el denominado JIT (Just-In-Time Compiler), que puede mejorar entre 10 y 20 veces la velocidad de ejecución de un programa.

Page 7: 01 fundamentos-java

Bibliotecas de clases de JavaLos programas de Java constan de varias piezas llamadas CLASES.Estas clases incluyen piezas llamadas METODOS, los cuales realizan tareas y devuelven información cuando completan esas tareas.

Se puede crear varias piezas de programas que se necesita y luego juntarlas para formar un programa en JAVA.

Fundamentos para conocer JAVA

Primero.- Poder programar nuestras propias clases.

Segundo.- Uso de las clases incluidas en las bibliotecas de clases de JAVA.

Ventajas.- Cuando se crea nuestras propias clases y métodos sabemos exactamente cómo funcionan y cómo es su código.

Desventajas.- Toman mucho tiempo y requiere de un gran esfuerzo diseñar y desarrollar nuevas clases y métodos.

Page 8: 01 fundamentos-java

Fundamentos de un Entorno Típico en JavaDefine los pasos típicos para crear y ejecutar un programa en Java, utilizando el entorno de desarrollo Java, que generalmente consiste en 5 fases:

Page 9: 01 fundamentos-java

// Programa para Imprimir Texto

public class Bienvenido {

// El método main empieza la ejecución de la aplicación en Java

public static void main(String args[])

{

sytem.out.println(“¡Bienvenido a la Programación en Java!”);

} // fin del método main

} // fin de la clase Bienvenido¡Bienvenido a la programación en Java!

Page 10: 01 fundamentos-java

public class Bienvenido {

Todo programa en Java consiste de, cuando menos, una declaración de clase que se debe definir (clases definidas por el usuario)

Todo nombre de clase comienza con una letra mayúscula:

EjemploDeNombreDeClase

Nombre de Clase se le conoce como IDENTIFICADOR

Java es sensible a mayúsculas y minúsculas; es decir se toma como identificadores diferentes (a1 es diferente a A1)

Cuando se guarda la declaración de clase public en un archivo, el nombre de éste debe ser el nombre de la clase, seguido de la extensión “.java”

Page 11: 01 fundamentos-java

public static void main(String args[])

Es el punto de inicio de toda aplicación en Java, los paréntesis después de main indica que éste es un bloque de construcción del programa, al cual se llama METODO.

Las declaraciones de clases en Java generalmente contienen uno o más métodos.

En una aplicación Java solo uno de los métodos debe llamarse main y debe definirse tan igual líneas arriba

La palabra clave void indica que este método realizará una tarea.

Page 12: 01 fundamentos-java

La palabra clave void indica que este método realizara una tarea, pero no devolverá ningún tipo de información cuando complete su tarea

Los paréntesis después del identificador main indican que este es un bloque de construcción del programa, al cual se le llama método. Las declaraciones de clases en Java generalmentecontienen uno o mas métodos. En una aplicación en Java, solo uno de esos métodos debe llamarse main

Mi primer programa en Java

//Bienvenido1.java//Programa para imprimir texto.public class Bienvenido1{

// el método main empieza la ejecución de la aplicación en Javapublic static void main( String args[] ){

System.out.println( "Bienvenido a la programación en Java!" );} // fin del método main

} // fin de la clase Bienvenido1

Clases definidas por el programador

o por el usuario

Page 13: 01 fundamentos-java

Cómo mostrar varias líneas de texto con una sola instrucciónUna sola instruccion puede mostrar varias lineas, utilizando caracteres de nueva línea, los cuales indican a los métodos print y println de System.out cuando deben colocar el cursor de salida al inicio de la siguiente línea en la ventana de comandos

Page 14: 01 fundamentos-java

sytem.out.println( “¡Bienvenido\na\nla programación\nen Java!”);

¡Bienvenidoa

la programaciónen Java!

La barra diagonal inversa (\) se conoce como carácter de escape. El carácter indica a los métodos print y println de System.out que se va a imprimir un carácter especial

La secuencia de escape \n representa el carácter de Nueva Línea

sytem.out.println(“¡Bienvenido a la Programación en Java!”);

sytem.out se conoce como el OBJETO de SALIDA estándar.

sytem.out.println muestra o imprime una línea de texto en la ventana de comandos

Argumento del Método

Page 15: 01 fundamentos-java

Suma de enteros

// Fig. 2.7: Suma.java// Programa que muestra la suma de dos enteros.import java.util.Scanner; // el programa usa la clase Scannerpublic class Suma{

// el método main empieza la ejecución de la aplicación en Javapublic static void main( String args[] ){

// crea objeto Scanner para obtener la entrada de la ventana de comandosScanner entrada = new Scanner( System.in );int numero1; // primer número a sumarint numero2; // segundo número a sumarint suma; // suma de numero1 y numero2System.out.print( "Escriba el primer entero: " ); // indicadornumero1 = entrada.nextInt(); // lee el primer número del usuarioSystem.out.print( "Escriba el segundo entero: " ); // indicadornumero2 = entrada.nextInt(); // lee el segundo número del usuariosuma = numero1 + numero2; // suma los númerosSystem.out.printf( "La suma es %d\n", suma ); // muestra la suma

} // fin del método main} // fin de la clase Suma

Page 16: 01 fundamentos-java

Aritmética

La mayoría de los programas realizan cálculos aritméticos.Los operadores aritméticos se sintetizan en el cuadro siguiente. El asterisco (*) indica la multiplicación, y el signo de porcentaje (%) es el operador residuo (conocido como módulo en algunos lenguajes). Los operadores aritméticos son binarios, ya que funcionan con dos operandos. Por ejemplo, la expresión f + 7 contiene el operador binario + y los dos operandos f y 7.La división de enteros produce un cociente entero: por ejemplo, la expresión 7 / 4 da como resultado 1, y la expresión 17 / 5 da como resultado 3. Cualquier parte fraccionaria en una división de enteros simplemente se descarta (es decir, se trunca); no ocurre un redondeo. Java proporciona el operador residuo, %, el cual produce el residuo después de la división. La expresión x % y produce el residuo después de que x se divide entre y. Por lo tanto, 7 % 4 produce 3, y 17 % 5 produce 2. Por lo general, este operador se utiliza mas con operando enteros, pero también puede usarse con otros tipos aritméticos.

Page 17: 01 fundamentos-java

Tabla de operandos aritméticos

Reglas de precedencia de operadoresJava aplica los operadores en expresiones aritméticas en una secuencia precisa, determinada por las siguientes reglas de precedencia de operadores, que generalmente son las mismas que las que se utilizan en álgebra1. Las operaciones de multiplicación, división y residuo se aplican primero. Si una expresión

contiene varias de esas operaciones, los operadores se aplican de izquierda a derecha. Los operadores de multiplicación, división y residuo tienen el mismo nivel de precedencia.

2. Las operaciones de suma y resta se aplican a continuación. Si una expresión contiene varias de esas operaciones, los operadores se aplican de izquierda a derecha. Los operadores de suma y resta tienen el mismo nivel de precedencia.

Page 18: 01 fundamentos-java

Reglas de precedencia de operadores

Estas reglas permiten a Java aplicar los operadores en el orden correcto. Cuando decimos que los operadores se aplican de izquierda a derecha, nos referimos a su asociatividad; veremos que algunos se asocian de derecha a izquierda.

Álgebra: z = pr%q + w/x – y

Java: z = p * r % q + w / x – y;

Page 19: 01 fundamentos-java

Toma de decisiones: Operadores de Igualdad y Relacionales

Una condición es una expresion que puede ser verdadera (true) o falsa (false). La instrucción if de Java permite que un programa tome una decisión, con base en el valor de una condición.Por ejemplo, la condición “calificación es mayor o igual que 10” determina si un estudiante paso o no una prueba.Si la condición en una instrucción if es verdadera, el cuerpo de la instrucción if se ejecuta. Si la condición es falsa, el cuerpo no se ejecuta. Veremos un ejemplo en breve.Las condiciones en las instrucciones if pueden formarse utilizando los operadores de igualdad (== y !=) y los operadores relacionales (>, <, >= y <=) que se sintetizan en el cuadro siguiente. Ambos operadores de igualdad tienen el mismo nivel de precedencia, que es menor que la precedencia de los operadores relacionales.

Page 20: 01 fundamentos-java

Toma de decisiones: Operadores de Igualdad y Relacionales

Page 21: 01 fundamentos-java

//Comparacion.java compara enteros utilizando instrucciones if, operadores relacionales y de igualdad.import java.util.Scanner; // el programa utiliza la clase Scannerpublic class Comparacion{

// el método main empieza la ejecución de la aplicación en Javapublic static void main( String args[] ){

// crea objeto Scanner para obtener la entrada de la ventana de comandosScanner entrada = new Scanner( System.in );int numero1; // primer número a compararint numero2; // segundo número a compararSystem.out.print( "Escriba el primer entero: " ); // indicadornumero1 = entrada.nextInt(); // lee el primer número del usuarioSystem.out.print( “Escriba el segundo entero: “ ); // indicadornumero2 = entrada.nextInt(); // lee el segundo número del usuarioif ( numero1 == numero2 )

System.out.printf( “%d == %d\n”, numero1, numero2 );if ( numero1 != numero2 )

System.out.printf( “%d != %d\n”, numero1, numero2 );if ( numero1 < numero2 )

System.out.printf( “%d < %d\n”, numero1, numero2 );if ( numero1 > numero2 )

System.out.printf( “%d > %d\n”, numero1, numero2 );if ( numero1 <= numero2 )

System.out.printf( “%d <= %d\n”, numero1, numero2 );if ( numero1 >= numero2 )

System.out.printf( “%d >= %d\n”, numero1, numero2 );} // fin del método main

} // fin de la clase Comparacion

Page 22: 01 fundamentos-java

Errores comunes

Observe que no hay punto y coma (;) al final de la primera línea de cada instrucción if. Dicho punto y coma produciría un error lógico en tiempo de compilacion. Por ejemplo, if ( numero1 == numero2 ); // error lógico

System.out.printf( "%d == %d\n", numero1, numero2 );seria interpretada por Java de la siguiente manera:if ( numero1 == numero2 )

; // instrucción vacíaSystem.out.printf( "%d == %d\n", numero1, numero2 );

en donde el punto y coma que aparece por si solo en una línea (que se conoce como instrucción vacía o nula) es la instrucción que se va a ejecutar si la condición en la instrucción if es verdadera. Al ejecutarse la instrucción vacía, no se lleva a cabo ninguna tarea en el programa.

Page 23: 01 fundamentos-java

Precedencia y asociatividad de los operadores

Page 24: 01 fundamentos-java

TEXTO EN UN CUADRO DE TEXTO

jOptionPaneclase

Cuadros de dialogo previamente empaquetados

Ventanas que contengan mensajes para los usuarios

Las clases predefinidas en Java se agrupan en categorías de clases relacionadas. paquetes

conocidas como Biblioteca

de clases de Java

API (Programación de Aplicaciones en Java)

PaquetesBásicos

PaquetesOpcionales

Page 25: 01 fundamentos-java

Ejemplo:package Bienvenido4;

import javax.swing.JOptionPane;

public class Bienvenido4 { public static void main(String[] args) { JOptionPane.showMessageDialog(null,"¡Bienvendio \na\nla Programación \nen Java!"); System.exit(0); }}

Declaración para identificar las clases predefinidas que se utilizan en Java.

Especifica, dónde se va a colocar el cuadro de dialogo

PSEUDOCODIGO Lenguaje formal que ayuda a los programadores a desarrollar algoritmos sin tener que preocuparse de la sintaxis del Lenguaje

Organizar un programa antes de escribirlo en un Lenguaje

Describe solo las instrucciones ejecutables (las declaraciones no son instrucciones ejecutables)

Page 26: 01 fundamentos-java

package Suma;import javax.swing.JOptionPane;public class Suma{ public static void main(String[] args) { String PrimerNumero; String SegundoNumero; int numero1; int numero2; int suma; PrimerNumero =JOptionPane.showInputDialog("Escriba el Primer Número"); SegundoNumero=JOptionPane.showInputDialog("Ingrese el Segundo Número"); numero1=Integer.parseInt(PrimerNumero); numero2=Integer.parseInt(SegundoNumero); suma=numero1+numero2; JOptionPane.showMessageDialog(null,"La suma es "+suma,"Resultado",JOptionPane.PLAIN_MESSAGE); System.exit(0); }}

Page 27: 01 fundamentos-java

INSTRUCCIONES DE DECISION EN JAVA

ESCRIBIR PROGRAMA

SOLUCION A PROBLEMA¿?

Comprensión detallada del

Problema

Algoritmo

Resolverse ejecutando una

serie de acciones en un orden específico

Acciones a EjecutarOrden en el que se ejecutan las ordenes

1. Levantarse 2. Quitarse Pijama3. Bañarse4. Vestirse5. Desayunar6. Transportarse

Page 28: 01 fundamentos-java

Resolver1. Escriba una aplicación que pida al usuario que escriba dos números, que

obtenga los números del usuario e imprima la suma, producto, diferencia y cociente (división) de los números.

2. Escriba una aplicación que pida al usuario que escriba dos enteros, que obtenga los números del usuario y muestre el numero mas grande, seguido de las palabras "es más grande". Si los números son iguales, imprima el mensaje "Estos números son iguales".

3. Escriba una aplicación que reciba tres enteros del usuario y muestre la suma, promedio, producto, menor y mayor de esos números. [Nota: el calculo del promedio en este ejercicio debe resultar en una representación entera del promedio. Por lo tanto, si la suma de los valores es 7, el promedio debe ser 2 y no 2.3333...].

4. Escriba una aplicación que muestre un cuadro, un ovalo, una flecha y un diamante usando asteriscos (*), como se muestra a continuación:

Page 29: 01 fundamentos-java

Resolver

5. Escriba una aplicación que lea cinco enteros y que determine e imprima los enteros mayor y menor en el grupo. Use solamente las técnicas de programación que aprendió en este tema.

6. Escriba una aplicación que lea un entero y que determine e imprima si es impar o par. [Sugerencia: use el operador residuo. Un numero par es un múltiplo de 2. Cualquier múltiplo de 2 deja un residuo de 0 cuando se divide entre 2].

7. Escriba una aplicación que lea dos enteros, determine si el primero es un múltiplo del segundo e imprima el resultado. [Sugerencia: use el operador residuo].

8. Utilizando solo las técnicas de programación que aprendió en clase, escriba una aplicación que calcule los cuadrados y cubos de los números del 0 al 10, y que imprima los valores resultantes en formato de tabla, como se muestra a continuación. [Nota: Este programa no requiere de ningún tipo de entrada por parte del usuario].

9. Escriba un programa que reciba cinco números, y que determine e imprima la cantidad de números negativos, positivos, y la cantidad de ceros recibidos.

10. Escriba una aplicación que muestre un patrón de tablero de damas, como se muestra a continuación: