0 оценок0% нашли этот документ полезным (0 голосов)
39 просмотров20 страниц
El documento introduce el lenguaje de programación Java. Explica que Java fue desarrollado originalmente por Sun Microsystems como un lenguaje orientado a objetos e independiente de plataforma que puede ejecutarse en cualquier máquina virtual Java. También describe algunos conceptos clave de Java como su enfoque de programación orientada a objetos, la compilación a bytecode que permite la portabilidad, y el recolector de basura automático que previene fugas de memoria.
El documento introduce el lenguaje de programación Java. Explica que Java fue desarrollado originalmente por Sun Microsystems como un lenguaje orientado a objetos e independiente de plataforma que puede ejecutarse en cualquier máquina virtual Java. También describe algunos conceptos clave de Java como su enfoque de programación orientada a objetos, la compilación a bytecode que permite la portabilidad, y el recolector de basura automático que previene fugas de memoria.
El documento introduce el lenguaje de programación Java. Explica que Java fue desarrollado originalmente por Sun Microsystems como un lenguaje orientado a objetos e independiente de plataforma que puede ejecutarse en cualquier máquina virtual Java. También describe algunos conceptos clave de Java como su enfoque de programación orientada a objetos, la compilación a bytecode que permite la portabilidad, y el recolector de basura automático que previene fugas de memoria.
CICLO: / GUI A DE LABORATORI O #1 Nombre de la Practica: Introduccin al desarrollo de aplicaciones en JAVA Lugar de Ejecucin:
Tiempo Estimado:
MATERIA: Programacin Orientada a Objetos DOCENTE: Miguel Eduardo Garca Orellana
I. OBJETIVOS.
Introducir al alumno en el desarrollo de aplicaciones en JAVA. Que el alumno conozca los principios bsicos de la programacin estructurada a partir de los siguientes conceptos: Tipos primitivos de datos Variables. Asignacin. Operadores aritmticos Expresiones Estructuras de flujo de control if, switch.
II. INTRODUCCIN.
Java y la programacin orientada a objetos.
Qu es Java?
El lenguaje de programacin Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compaa Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier mquina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente.
Es un lenguaje de programacin de propsito general, concurrente, orientado a objetos y basado en clases que fue diseado especficamente para tener tan pocas dependencias de implementacin como fuera posible. Su intencin es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en ingls como WORA, o "write once, run anywhere"), lo que quiere decir que el cdigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java
es, a partir de 2012, uno de los lenguajes de programacin ms populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados
Orientado a objetos La primera caracterstica, orientado a objetos (OO), se refiere a un mtodo de programacin y al diseo del lenguaje. Aunque hay muchas interpretaciones para OO, una primera idea es disear el software de forma que los distintos tipos de datos que usen estn unidos a sus operaciones. As, los datos y el cdigo (funciones o mtodos) se combinan en entidades llamadas objetos. Un objeto puede verse como un paquete que contiene el comportamiento (el cdigo) y el estado (datos). El principio es separar aquello que cambia de las cosas que permanecen inalterables. Frecuentemente, cambiar una estructura de datos implica un cambio en el cdigo que opera sobre los mismos, o viceversa. Esta separacin en objetos coherentes e independientes ofrece una base ms estable para el diseo de un sistema software. El objetivo es hacer que grandes proyectos sean fciles de gestionar y manejar, mejorando como consecuencia su calidad y reduciendo el nmero de proyectos fallidos. Otra de las grandes promesas de la programacin orientada a objetos es la creacin de entidades ms genricas (objetos) que permitan la reutilizacin del software entre proyectos, una de las premisas fundamentales de la Ingeniera del Software. Un objeto genrico cliente, por ejemplo, debera en teora tener el mismo conjunto de comportamiento en diferentes proyectos, sobre todo cuando estos coinciden en cierta medida, algo que suele suceder en las grandes organizaciones. En este sentido, los objetos podran verse como piezas reutilizables que pueden emplearse en mltiples proyectos distintos, posibilitando as a la industria del software a construir proyectos de envergadura empleando componentes ya existentes y de comprobada calidad; conduciendo esto finalmente a una reduccin drstica del tiempo de desarrollo. Podemos usar como ejemplo de objeto el aluminio. Una vez definidos datos (peso, maleabilidad, etc.), y su comportamiento (soldar dos piezas, etc.), el objeto aluminio puede ser reutilizado en el campo de la construccin, del automvil, de la aviacin, etc.
Independencia de la plataforma
La segunda caracterstica, la independencia de la plataforma, significa que programas escritos en el lenguaje Java pueden ejecutarse igualmente en cualquier tipo de hardware. Este es el significado de ser capaz de escribir un programa una vez y que pueda ejecutarse en cualquier dispositivo, tal como reza el axioma de Java, "write once, run anywhere".
Para ello, se compila el cdigo fuente escrito en lenguaje Java, para generar un cdigo conocido como bytecode (especficamente Java bytecode)instrucciones mquina simplificadas especficas de la plataforma Java. Esta pieza est a medio camino entre el cdigo fuente y el cdigo mquina que entiende el dispositivo destino. El bytecode es ejecutado entonces en la mquina virtual (JVM), un programa escrito en cdigo nativo de la plataforma destino (que es el que entiende su hardware), que interpreta y ejecuta el cdigo. Adems, se suministran bibliotecas adicionales para acceder a las caractersticas de cada dispositivo (como los grficos, ejecucin mediante hebras o threads, la interfaz de red) de forma unificada. Se debe tener presente que, aunque hay una etapa explcita de compilacin, el bytecode generado es interpretado o convertido a instrucciones mquina del cdigo nativo por el compilador JIT (Just In Time).
Hay implementaciones del compilador de Java que convierten el cdigo fuente directamente en cdigo objeto nativo, como GCJ. Esto elimina la etapa intermedia donde se genera el bytecode, pero la salida de este tipo de compiladores slo puede ejecutarse en un tipo de arquitectura.
La licencia sobre Java de Sun insiste que todas las implementaciones sean compatibles. Esto dio lugar a una disputa legal entre Microsoft y Sun, cuando ste ltimo aleg que la implementacin de Microsoft no daba soporte a las interfaces RMI y JNI adems de haber aadido caractersticas dependientes de su plataforma. Sun demand a Microsoft y gan por daos y perjuicios (unos 20 millones de dlares) as como una orden judicial forzando la acatacin de la licencia de Sun. Como respuesta, Microsoft no ofrece Java con su versin de sistema operativo, y en recientes versiones de Windows, su navegador Internet Explorer no admite la ejecucin de applets sin un conector (o plugin) aparte. Sin embargo, Sun y otras fuentes ofrecen versiones gratuitas para distintas versiones de Windows.
Las primeras implementaciones del lenguaje usaban una mquina virtual interpretada para conseguir la portabilidad. Sin embargo, el resultado eran programas que se ejecutaban comparativamente ms lentos que aquellos escritos en C o C++. Esto hizo que Java se ganase una reputacin de lento en rendimiento. Las implementaciones recientes de la JVM dan lugar a programas que se ejecutan considerablemente ms rpido que las versiones antiguas, empleando diversas tcnicas, aunque sigue siendo mucho ms lento que otros lenguajes.
La primera de estas tcnicas es simplemente compilar directamente en cdigo nativo como hacen los compiladores tradicionales, eliminando la etapa del bytecode. Esto da lugar a un gran rendimiento en la ejecucin, pero tapa el camino a la portabilidad. Otra tcnica, conocida como compilacin JIT (Just In Time, o "compilacin al vuelo"), convierte el bytecode a cdigo nativo cuando se ejecuta la aplicacin. Otras mquinas virtuales ms sofisticadas usan una "recompilacin dinmica" en la que la VM es capaz de analizar el comportamiento del programa en ejecucin y recompila y optimiza las partes crticas. La recompilacin dinmica puede lograr mayor grado de optimizacin que la compilacin tradicional (o esttica), ya que puede basar su trabajo en el conocimiento que de primera mano tiene sobre el entorno de ejecucin y el conjunto de clases cargadas en memoria. La compilacin JIT y la recompilacin dinmica permiten a los programas Java aprovechar la velocidad de ejecucin del cdigo nativo sin por ello perder la ventaja de la portabilidad en ambos.
La portabilidad es tcnicamente difcil de lograr, y el xito de Java en ese campo ha sido dispar. Aunque es de hecho posible escribir programas para la plataforma Java que acten de forma correcta en mltiples plataformas de distinta arquitectura, el gran nmero de estas con pequeos errores o inconsistencias llevan a que a veces se parodie el eslogan de Sun, "Write once, run anywhere" como "Write once, debug everywhere" (o Escrbelo una vez, ejectalo en cualquier parte por Escrbelo una vez, depralo en todas partes).
El concepto de independencia de la plataforma de Java cuenta, sin embargo, con un gran xito en las aplicaciones en el entorno del servidor, como los Servicios Web, los Servlets, los Java Beans, as como en sistemas empotrados basados en OSGi, usando entornos Java empotrados.
El recolector de basura
En Java el problema fugas de memoria se evita en gran medida gracias a la recoleccin de basura (o automatic garbage collector). El programador determina cundo se crean los objetos y el entorno en tiempo de ejecucin de Java (Java runtime) es el responsable de gestionar el ciclo de vida de los objetos. El programa, u otros objetos pueden tener localizado un objeto mediante una referencia a ste. Cuando no quedan referencias a un objeto, el recolector de basura de Java borra el objeto, liberando as la memoria que ocupaba previniendo posibles fugas (ejemplo: un objeto creado y nicamente usado dentro de un mtodo slo tiene entidad dentro de ste; al salir del mtodo el objeto es eliminado). Aun as, es posible que se produzcan fugas de memoria si el cdigo almacena referencias a objetos que ya no son necesarioses decir, pueden an ocurrir, pero en un nivel conceptual superior. En definitiva, el recolector de basura de Java permite una fcil creacin y eliminacin de objetos y mayor seguridad.
Tipos primitivos de datos
Los primeros lenguajes de programacin no usaban objetos, solo variables. Una variable podramos decir que es un espacio de la memoria del ordenador a la que asignamos un contenido que puede ser un valor numrico (slo nmeros, con su valor de clculo) o de tipo carcter o cadena de caracteres (valor alfanumrico que constar slo de texto o de texto mezclado con nmeros)
TIPOS DE DATOS EN JAVA
NOMBRE TIPO OCUPA RANGO APROXIMADO TIPOS PRIMITIVOS (sin mtodos; no son objetos; no necesitan una invocacin para ser creados) byte Entero 1 byte -128 a 127 short Entero 2 bytes -32768 a 32767 int Entero 4 bytes 2*10 9
long Entero 8 bytes Muy grande float Decimal simple 4 bytes Muy grande double Decimal doble 8 bytes Muy grande char Carcter simple 2 bytes --- boolean Valor true o false 1 byte ---
Tipos de Objetos
TIPOS DE DATOS EN JAVA TIPOS OBJETO (con mtodos, necesitan una invocacin para ser creados) Tipos de la biblioteca estndar de Java String (cadenas de texto) Muchos otros (p.ej. Scanner, TreeSet, ArrayList) Tipos definidos por el programador / usuario Cualquiera que se nos ocurra, por ejemplo Taxi, Autobus, Tranvia arrays Serie de elementos o formacin tipo vector o matriz. Lo consideraremos un objeto especial que carece de mtodos. Tipos envoltorio o wrapper (Equivalentes a los tipos primitivos pero como objetos.) Byte Short Integer Long Float Double Character Boolean
III. Material y equipo necesario.
Para la realizacin de la gua de prctica se requerir lo siguiente: No. Requerimiento Cantidad 1 Gua de Laboratorio #1 de POO1 1 2 Computadora con Eclipse IDE 1
III. Procedimiento.
Ejemplo 1: Hola Mundo en java.
package sv.edu.udb.www.guia1;
public class Ejemplo { public static void main(String[ ] arg) { System.out.println("Hola Java"); //Usamos esta sintaxis para mostrar mensajes por pantalla } }
Ejemplo 2:
Declaracin e inicializacin de variables.
package sv.edu.udb.www.guia1;
public class Ejemplo2 {
public static void main (String[] args){ /*ESTE ES UN * COMENTARIO * DE VARIAS LINEAS */
//DECLARACIN DE VARIABLES
int cantidad_alumnos; // Las instrucciones y declaraciones finalizan con ;
String profesor; String aula;
boolean funciona; boolean esVisible;
float diametro;
double peso; short edad; long masa; char letra1;
//INICIALIZACION DE VARIABLES cantidad_alumnos = 42; // Entero tipo int
profesor = "Andreas Pirlo"; // Tipo String aula = "B33"; // Tipo String
funciona = true; // Tipo boolean esVisible = false; // Tipo boolean diametro = 34.25f; // Tipo float. Una f o F final indica que es float. peso = 88.77; // Tipo double. Un nmero con punto decimal se interpreta normalmente como double. edad = 19; // Entero tipo short
masa = 178823411L; // Entero tipo long. Una l o L final indica que es long. letra1 = 'h'; // Tipo char (carcter). Se escribe entre comillas simples.
System.out.println("El profesor " + profesor + " da " + "clasees en el aula " + aula );
System.out.println("La materia de POO de mviles tiene " + cantidad_alumnos + " alumnos inscritos");
}//cierre del mtodo Main
} // cierre de clase
Ejemplo 3:
Operaciones aritmticas en Java
OPERADOR DESCRIPCIN + Suma Resta * Multiplicacin / Divisin % Resto de una divisin entre enteros (en otros lenguajes denominado mod)
package sv.edu.udb.www.guia1;
import java.util.Scanner;
public class Ejemplo3 {
public static void main(String[] args) { // TODO Auto-generated method stub Scanner reader = new Scanner(System.in); //Reader es un objeto que permite la lectura de texto //ingresado en consola
double a , b; //Declaramos 2 variables.
System.out.print("Ingrese el valor de a: "); a=Double.parseDouble(reader.nextLine()); //Las lecturas de consola se interpretan como Strings. //Es necesario convertirla a Entero System.out.print("Ingrese el valor de b: "); b=Integer.parseInt(reader.nextLine());
System.out.println("La operacion de suma a+b es: " + suma);
System.out.println("La operacion de resta a-b es: " + resta); System.out.println("La operacion de multiplicacion a*b es: " + multiplicacion); System.out.println("La operacion de division a/b es: " + division); System.out.println("La operacion de modulo a%b es: " + modulo);
}
}
Parntesis para agrupar subexpresiones Los parntesis se utilizan para agrupar trminos en las expresiones en Java, de la misma manera que en las expresiones algebraicas. Por ejemplo, para multiplicar a por la cantidad b + c, escribimos a * ( b + c ). Si una expresin contiene parntesis anidados, como ( ( a + b ) * c ) se evala primero la expresin en el conjunto ms interno de parntesis (a + b en este caso). Reglas de precedencia de operadores Java aplica los operadores en expresiones aritmticas en una secuencia precisa, determinada por las siguientes reglas de precedencia de operadores, que casi siempre son las mismas que las que se utilizan en lgebra: 1. Las operaciones de multiplicacin, divisin y residuo se aplican primero. Si una expresin contiene varias de esas operaciones, los operadores se aplican de izquierda a derecha. Los operadores de multiplicacin, divisin y residuo tienen el mismo nivel de precedencia. 2. Las operaciones de suma y resta se aplican a continuacin. Si una expresin 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. Estas reglas permiten a Java aplicar los operadores en el orden correcto.1 Cuando decimos que los operadores se aplican de izquierda a derecha, nos referimos a su asociatividad. Algunos se asocian de derecha a izquierda. El cuadro siguiente sintetiza estas reglas de precedencia de operadores.
Ejemplo 4: Expresiones algebraicas
package sv.edu.udb.www.guia1;
import java.util.Scanner;
public class Ejemplo4 {
public static void main(String[] args) { // TODO Auto-generated method stub Scanner reader = new Scanner(System.in); int a, b,c; System.out.println("********************************"); System.out.println("CALCULO DE FORMULA CUADRATICA"); System.out.println("********************************");
System.out.print("Ingrese el valor de a: "); a=Integer.parseInt(reader.nextLine()); System.out.print("Ingrese el valor de b: "); b=Integer.parseInt(reader.nextLine()); System.out.print("Ingrese el valor de c: "); c=Integer.parseInt(reader.nextLine());
//En algunas ocasiones es mejor separar los parntesis para evitar //confusin double x2= ( ( -b - Math.sqrt( (b*b)-(4*a*c) ) ) /(2*a) );
reader.close(); System.out.print("El valor de x1 es: "); System.out.println(x1); System.out.print("El valor de x2 es: "); System.out.println(x2); } }
Debe obtener un resultado como el que sigue: 4x 2 + 15x + 9 = 0 x = -3 y x= -3/4
Toma de decisiones: operadores de igualdad y relacinales
Una condicin es una expresin que puede ser verdadera (true) o falsa (false). Esta seccin presenta la instruccin if de Java, la cual permite que un programa tome una decisin, con base en el valor de una condicin. Por ejemplo, la condicin calificacin es mayor o igual que 60 determina si un estudiante pas o no una prueba. Si la condicin en una instruccin if es verdadera, el cuerpo de la instruccin if se ejecuta. Si la condicin 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 relacinales (>, <, >= y <=). Ambos operadores de igualdad tienen el mismo nivel de precedencia, que es menor que la precedencia de los operadores relacinales. Los operadores de igualdad se asocian de izquierda a derecha. Todos los operadores relacinales tienen el mismo nivel de precedencia y tambin se asocian de izquierda a derecha.
La estructura de seleccin simple en Java se realiza mediante la sentencia if (si, en ingles). La sintaxis es la siguiente:
if (condicin) sentencia;
La condicin es una expresin booleana. La sentencia se ejecuta solamente si la expresin booleana es verdadera. Qu ocurre si la condicin no se cumple? En este caso nada. Podemos agregar una serie de instrucciones que se ejecutarn solo si la condicin no se cumple. Para esto tendremos que agregar la sentencia else. La estructura de seleccin quedar as: if (condicin) sentencia 1; else sentencia 2; Si la condicin es verdadera se ejecuta la sentencia 1 en caso contrario se ejecuta la sentencia 2. Ambas sentencias nunca se ejecutarn al mismo tiempo, son excluyentes.
Tambin vemos que hay cierta relacin entre conectores lgicos y la estructura. Conjuncin if (condicin1 && condicin2){ sentecia1; } else { sentencia2; }
/** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here String primernumero; String segundonumero;
int edad;
String edadString = JOptionPane.showInputDialog("Digite su edad");
edad = Integer.parseInt(edadString);
if(edad > 0 && edad < 18 )
JOptionPane.showMessageDialog(null,"Usted es menor de edad","Su edad",JOptionPane.PLAIN_MESSAGE);
else if(edad> 18 && edad < 120)
JOptionPane.showMessageDialog(null,"Usted es mayor de edad","Su edad",JOptionPane.PLAIN_MESSAGE);
else
JOptionPane.showMessageDialog(null,"Esa no parece ser una edad real","Su edad",JOptionPane.PLAIN_MESSAGE);
System.exit(0); } }
Ejemplo6: Uso de if Comparacin de 2 nmeros
package sv.edu.udb.www.guia1;
import java.util.Scanner;
public class Ejercicio6 {
public static void main(String[] args) { Scanner entrada = new Scanner(System.in );
int numero1; // primer nmero a comparar int numero2; // segundo nmero a comparar
System.out.print("Escriba el primer entero:"); numero1 = entrada.nextInt();
System.out.print("Escriba el segundo entero:"); numero2 = entrada.nextInt();
La sentencia switch se encarga de estructurar una seleccin mltiple. Al contrario del enunciado if-else que slo podemos indicar dos alternativas, maneja un nmero finito de posibilidades. La estructura general del enunciado switch es la siguiente: switch( expresin ) { case constante1: sentencia1; ... break; ... case constanteN: sentenciaN; ... break; default: sentencia; ... break }
Ejemplo 7: Uso de switch
package sv.edu.udb.www.guia1;
import java.util.Scanner;
public class Ejemplo7 {
public static void main( String [] args){ double a = 0; double b = 0; Scanner entrada = new Scanner(System.in );
System.out.print("Ingrese el primer numero: "); a = entrada.nextDouble();
System.out.print("Ingrese el segundo numero: "); b = entrada.nextDouble();
String op = entrada.next(); System.out.print("El resultado es : ");
switch ( op ) { case "+": System.out.println( a + b ); break; case "-": System.out.println( a - b ); break; case "*": System.out.println( a * b ); break; case "/": System.out.println( a / b ); break; default: System.out.println("error" ); break; }
} }
Ejemplo 8: Uso de if y el mtodo equals para Strings package sv.edu.udb.www.guia1;
import javax.swing.JOptionPane;
public class Ejemplo8 {
public static void main(String[] args) { // TODO Auto-generated method stub
1) Realice un programa que divida 2 nmero y evite la divisin por 0 (cero) Es decir: 20/2 = 10 20/0= error. 0/15=0 Utilice estructura de control if 2) Realice un programa que permita hacer deducciones sobre un sueldo neto. Las deducciones que se aplican son isss (3%), afp (6.25%), renta (7.1%). El resultado debe aparecer como se muestra a continuacin. Sueldo: 450 Renta: 31.95 AFP: 28.125 Isss: 13.5 Total a pagar: 376.425 3) Realice un programa que solicite la entrada de un nmero y lo traduzca a letras de 0 al 10. Ejemplo: 0: cero 1: uno 2: dos Etc Utilice la estructura de control switch 4) Realice un programa que permita encontrar los valores de f(x) si se tiene la siguiente ecuacin: f(x)=(x 2 + 1)/(x 1 ) Usted debe ingresar el valor de x Ejemplo: Nota: No podr ingresar 1 Ingresa 2 f(x)= (2 2 + 1)/(2 1 )=5 Ingresa 3 f(x)= (3 2 + 1)/(3 1 )=5 Ingresa 4 f(x)= (3 2 + 1)/(3 1 )= 5.66666667
5) Realice un programa que permita encontrar los valores de f(x) si se tiene la siguiente ecuacin: f(x)=(x 2 +2x+1)/2 Usted debe ingresar el valor de x Ingresa 1 f(x)=(1 2 +2(1)+1)/2=2 Ingresa 2 f(x)=(2 2 +2(2)+1)/2=4.5 Ingresa 3 f(x)=((3) 2 +2(3)+1)/2=8
6) Realice un programa que consulte el pas de origen a travs de un JOptionPane.showInputDialog y muestre un JOptionPane.showMessageDialog su respectivo gentilicio, para al menos 10 nacionalidades. Por ejemplo: