20/7/2018
Universidad Central Del Ecuador
Universidad Central Del Ecuador
Universidad Central Del Ecuador
FACULTAD DE FILOSOFÍA, LETRAS Y CIENCIA DE LA EDUCACIÓN PSICOLOGÍA DE DESARROLLO
Portafolio de Programación
Elaborado por: Gabriela Guadir PARALELO: 2° Semestre “C” Carrera: Pedagogía De Las Ciencias Experimentales (Informática)
DOCENTE: M.Sc. Víctor Zapata
PERÍODO: 2018 – 2018
QUITO – ECUADOR
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
1/51
20/7/2018
Universidad Central Del Ecuador
Silabos
Ficheros adjuntos Silabo PROGRAMACION ESTRUCTURADA 2018.pdf (Ventana nueva)
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
2/51
20/7/2018
Universidad Central Del Ecuador
Primer Hemisemestre Estructura de un objeto Java Recuerde que un objeto es una entidad diferenciada que contiene atributos y comportamiento. Eso significa que tiene un límite nítido y un estado y puede realizar actividades cuando se lo piden correctamente. Cada lenguaje de orientación a objetos tiene reglas sobre cómo definir un objeto. En el lenguaje Java, los objetos se definen como se demuestra en el Listado 1 Listado 1. Definición de objeto
1 package packageName; 2 import ClassNameToImport; 3 accessSpecifier class ClassName { 4
accessSpecifier dataType variableName [= initialValue];
5
accessSpecifier ClassName([argumentList]) {
6
constructorStatement(s)
7
}
8
accessSpecifier returnType methodName([argumentList]) {
9
methodStatement(s)
10 } 11 // This is a comment 12 /* This is a comment too */ 13 /* This is a 14
multiline
15
comment */
16 }
El Listado 1 contiene diversos tipos de construcciones, que he diferenciado con formato de fuente. Las construcciones que se muestran en negrita (que encontrará en la lista de palabras reservadas) son literales. En cualquier definición de objeto, deben ser exactamente lo que son aquí. Los nombres que le he dado a las otras construcciones describen los conceptos que representan. Explicaré todas las construcciones en detalle en el resto de esta sección. Nota: En el Listado 1 y algunos otros ejemplos de códigos en esta sección, los corchetes indican que las construcciones dentro de ellos no se requieren. Los corchetes en sí (a diferencia de { y }) no son parte de la sintaxis Java. Comentarios en el código Observe que el Listado 1 también incluye algunas líneas de comentarios:
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
3/51
20/7/2018
Universidad Central Del Ecuador
1 // Este es un comentario 2 /* Este también es un comentario */ 3 /* Este es un 4
comentario
5
múltiple */
Casi todos los lenguajes de programación le permiten al programador agregar comentarios para ayudar a documentar el código. La sintaxis Java permite tanto comentarios de una sola línea como comentarios múltiples. Un comentario de una sola línea debe ocupar una línea, aunque puede usar comentarios de una sola línea adyacentes para formar un bloque. Un comentario de líneas múltiples comienza con /*, debe terminar con */ y puede distribuirse en cualquier cantidad de líneas.
Aprenderá más sobre los comentarios cuando llegue a la sección Writing good Java code de este tutorial. Empaquetado de objetos El lenguaje Java le permite elegir los nombres de sus objetos, tales como Account, Person o LizardMan. En ocasiones, puede que termine usando el mismo nombre para expresar dos conceptos ligeramente diferentes. Esto se llama una colisión de nombres y sucede con frecuencia. El lenguaje Java usa paquetes para resolver estos conflictos. Un paquete Java es un mecanismo para proporcionar un espacio de nombres: un área encapsulada en donde los nombres son únicos pero, fuera de esa área, puede que no lo sean. Para identificar una construcción de manera única, debe calificarla totalmente al incluir su espacio de nombres. Los paquetes también le dan una buena forma para construir aplicaciones más complejas en unidades diferenciadas de funcionalidad. Definición de paquete Para definir un paquete, use la palabra clave paquete seguida por un nombre de paquete legal y termina con un punto y coma. A menudo, los nombres de los paquetes se separan con puntos y siguen este plan de facto:
1 package orgType.orgName.appName.compName;
Esta definición de paquete se divide de la siguiente manera: orgType es el tipo de organización, tales como com, org o net. orgName es el nombre del ámbito de la organización, tales como makotogroup, sun o ibm. appName es el nombre de la aplicación, abreviado. compName es el nombre del componente. El lenguaje Java no lo obliga a seguir este convenio de paquetes. De hecho, usted no necesita especificar ningún paquete, en cuyo caso todos sus objetos deben tener nombres de clases únicos y residirán en el paquete predeterminado. Como una práctica mejor, recomiendo que defina todas sus clases Java en paquetes. Usted seguirá ese convenio durante este tutorial. Sentencias de importación A continuación en la definición de objeto (retomando el Listado 1) se encuentra la sentencia de importación. Una sentencia de importación le comunica al compilador Java dónde encontrar las clases a las que usted hace http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
4/51
20/7/2018
Universidad Central Del Ecuador
referencia dentro de su código. Cualquier objeto no trivial usa otros objetos para alguna funcionalidad y la sentencia de importación es cómo usted le comunica al compilador Java sobre ellos. Una sentencia de importación normalmente luce así:
1 import ClassNameToImport;
Especifique la palabra clave importación seguida de la clase que quiere importar seguida de un punto y coma. El nombre de la clase debería estar completamente calificado, es decir, debería incluir su paquete. Para importar todas las clases dentro de un paquete, puede poner .* después del nombre del paquete. Por ejemplo, esta sentencia importa cada clase en el paquete com.makotogroup:
1 import com.makotogroup.*;
Sin embargo, importar todo un paquete puede hacer que su código sea menos legible, por lo tanto recomiendo que importe solo las clases que necesite. Eclipse simplifica las importaciones Cuando escribe el código en el editor de Eclipse, puede escribir el nombre de una clase que usted quiera usar, seguido por Ctrl+Shift+O. Eclipse resuelve cuáles son las importaciones que usted necesita y las agrega automáticamente. Si Eclipse encuentra dos clases con el mismo nombre, visualiza un recuadro de diálogo que le pregunta para cuál de las clases quiere agregar importaciones. Declaración de clase Para definir un objeto en el lenguaje Java, debe declarar una clase. Considere a una clase como una plantilla para un objeto, como un molde de galletas. La clase define la estructura básica del objeto y, al momento de la ejecución, su aplicación crea una instancia del objeto. La palabra objeto a menudo se usa como sinónimo de la palabra clase. En sentido estricto, una clase define la estructura de algo de lo cual el objeto es una instancia. El Listado 1 incluye esta declaración de clase:
1 accessSpecifier class ClassName { 2 accessSpecifier dataType variableName [= initialValue]; 3 accessSpecifier ClassName([argumentList]) { 4
constructorStatement(s)
5 } 6 accessSpecifier returnType methodName([argumentList]) { 7
methodStatement(s)
8 } 9}
Un accessSpecifier de una clase podría tener varios valores pero, por lo general, es público. Observará otros valores deaccessSpecifier pronto. Convenios de denominación de clases http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
5/51
20/7/2018
Universidad Central Del Ecuador
Puede denominar a las clases prácticamente como quiera pero el convenio es usar bicapitalización: comenzar con una letra en mayúscula, usar mayúscula en la primera letra de cada palabra concatenada y dejar todas las otras letras en minúscula. Los nombres de las clases deberían contener solo letras y números. Adherirse a estas guías asegurará que su código sea más accesible para otros desarrolladores que siguen los mismos convenios. Las clases pueden tener dos tipos de miembros: variables y métodos. Variables Los valores de las variables de una clase dada distinguen cada instancia de esa clase y define su estado. A estos valores a menudo se los denomina variables de instancia. Una variable tiene: Un accessSpecifier Un dataType Un variableName Opcionalmente, un initialValue Lo posibles valores de accessSpecifier son: Variables públicas Nunca es una buena idea usar variables públicas pero, en casos extremadamente raros, podría ser necesario, así que existe la opción. La plataforma Java no restringe sus casos de uso. Por lo tanto, depende de usted ser disciplinado al usar buenos convenios de codificación, incluso si se siente tentado para hacer lo contrario. público: Cualquier objeto en cualquier paquete puede ver la variable. (Nunca use este valor). protegido: Cualquier objeto definido en el mismo paquete, o una subclase (definida en cualquier paquete), puede ver la variable. Ningún especificador (también llamado acceso amigable o privado al paquete): Solo los objetos cuyas clases se definen en el mismo paquete pueden ver la variable. privado: Solo la clase que contiene la variable puede verla El dataType de una variable depende de lo que la variable sea, — podría ser un tipo primitivo u otro tipo de clase (repito, profundizaremos sobre esto más adelante). El variableName depende de usted pero, por convenio, los nombres de las variables usan el convenio de bicapitalización que describí anteriormente, con la excepción de que comienzan con una letra minúscula. (A este estilo a veces se lo llama lowerCamelCase). No se preocupe por el initialValue por ahora; solo sepa que puede inicializar una variable de instancia cuando la declara. (De otro modo, el compilador genera una predeterminación por usted que se establecerá cuando se cree una instancia de la clase). Ejemplo: Definición de clase de Person Antes de seguir con los métodos, aquí hay un ejemplo que resume lo que ha aprendido hasta ahora. El Listado 2 es una definición de clase de Person: Listado 2. Definición de clase básica de Person
1 package com.makotogroup.intro; 2 3 public class Person { 4
private String name;
5
private int age;
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
6/51
20/7/2018
Universidad Central Del Ecuador
6
private int height;
7
private int weight;
8
private String eyeColor;
9
private String gender;
10 }
La definición de clase básica de Person no es muy útil en este momento porque define solo sus atributos (y los privados). Para ser más interesante, la clase de Person necesita comportamiento, — y eso significa métodos. Métodos Los métodos de una clase definen su comportamiento. A veces, este comportamiento no es nada más que devolver el valor actual de un atributo. Otras veces, el comportamiento puede ser bastante complejo. Hay esencialmente dos categorías de métodos: constructores y todos los otros métodos, — de los cuales existen muchos tipos. Un método constructor se usa solo para crear una instancia de una clase. Otros tipos de métodos pueden usarse para prácticamente cualquier comportamiento de aplicación. Al mirar hacia atrás al Listado 1, muestra el modo para definir la estructura de un método, que incluye aspectos como: accessSpecifier returnType methodName argumentList La combinación de estos elementos estructurales en la definición de un método se llama su firma. A continuación, verá en más detalle dos tipos de métodos, comenzando con los constructores. Métodos constructores Los constructores le permiten especificar cómo crear una instancia de una clase. El Listado 1 muestra la sintaxis de la declaración del constructor en una forma abstracta. Aquí está de nuevo en el Listado 3: Listado 3. Sintaxis de la declaración del constructor
1 accessSpecifier ClassName([argumentList]) { 2 constructorStatement(s) 3}
Los constructores son opcionales Si usted no proporciona un constructor, el compilador proporcionará uno por usted, denominado el constructor predeterminado (o sin argumento). Si usted proporciona un constructor que no sea un constructor sin argumento (o no-arg), el compilador no generará uno por usted. El accessSpecifier de un constructor es el mismo que el de las variables. El nombre del constructor debe coincidir con el nombre de la clase. Por lo tanto, si llama a su clase Person, entonces el nombre del constructor también debe ser Person. http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
7/51
20/7/2018
Universidad Central Del Ecuador
Para cualquier constructor que no sea el constructor predeterminado, usted pasa unaargumentList, que es una o más de:
1 argumentType argumentName
Los argumentos en una argumentList se separan con comas y dos argumentos no pueden tener el mismo nombre. El argumentType es un tipo primitivo u otro tipo de clase (lo mismo que sucede con los tipos de variables). Definición de clase con un constructor Ahora verá lo que sucede cuando agrega la capacidad de crear un objeto Person de dos modos: al usar un constructor sin argumento y al inicializar una lista parcial de atributos. El Listado 4 muestra cómo crear constructores y también cómo usar la argumentList: Listado 4. Definición de clase de Person con un constructor
1 package com.makotogroup.intro; 2 public class Person { 3
private String name;
4
private int age;
5
private int height;
6
private int weight;
7
private String eyeColor;
8
private String gender;
9
public Person() {
10
// Nothing to do...
11 } 12 13 public Person(String name, int age, int height, String eyeColor, String gender) { 14
this.name = name;
15
this.age = age;
16
this.height = height;
17
this.weight = weight;
18
this.eyeColor = eyeColor;
19
this.gender = gender;
20 } 21 }
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
8/51
20/7/2018
Universidad Central Del Ecuador
Observe el uso de la palabra clave this al hacer las asignaciones de variables en el Listado 4. Esto es una taquigrafía de Java para "this object" y debe usarse cuando se haga referencia a dos variables con el mismo nombre (como en este caso en el que la edad, por ejemplo, es tanto un parámetro constructor como una variable de clase) y le ayuda al compilador a desambiguar la referencia. El objeto Person se está haciendo más interesante pero necesita más comportamiento. Y para eso, usted necesita más métodos. Otros métodos Un constructor es un tipo particular de método con una función particular. De forma similar, muchos otros tipos de métodos desempeñan funciones particulares en los programas Java. La exploración de otros métodos comienza en esta sección y continúa durante todo el tutorial.
En el Listado 1, le mostré cómo declarar un método:
1 accessSpecifier returnType methodName([argumentList]) { 2 methodStatement(s) 3}
Otros métodos se parecen bastante a los constructores, con un par de excepciones. En primer lugar, usted puede denominar a otros métodos cómo usted quiera (aunque, por supuesto, hay reglas). Recomiendo los siguientes convenios: Comenzar con una letra minúscula. Evitar números, a menos que sean absolutamente necesarios. Usar solo caracteres alfabéticos. En segundo lugar, a diferencia de los constructores, otros métodos tienen un tipo de retorno opcional. Otros métodos de Person Con esta información básica de su lado, usted puede ver en el Listado 5 lo que sucede cuando agrega algunos métodos más al objeto Person. (He omitido los constructores para ser breve). Listado 5. Person con algunos métodos nuevos
1 package com.makotogroup.intro; 2 3 public class Person { 4
private String name;
5
private int age;
6
private int height;
7
private int weight;
8
private String eyeColor;
9
private String gender;
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
9/51
20/7/2018
Universidad Central Del Ecuador
10 11 public String getName() { return name; } 12 public void setName(String value) { name = value; } 13 // Other getter/setter combinations... 14 }
Observe el comentario en el Listado 5 sobre "combinaciones getter/setter". Usted trabajará más con getters y setters más adelante en el tutorial. Por ahora, todo lo que necesita saber es que un getter es un método para recuperar el valor de un atributo y un setter es un método para modificar ese valor. Solo le he mostrado una combinación getter/setter (para el atributo de Nombre) pero usted podría definir más de manera similar. Observe en el Listado 5 que si un método no devuelve un valor, debe comunicárselo al compilador especificando el tipo de devolución inválido en su firma. Métodos estáticos y de instancia Hay generalmente dos tipos de métodos (no constructores): los métodos de instancia y los métodos estáticos. Los métodos de instancia dependen del estado de una instancia de objeto específico por sus comportamientos. Los métodos estáticos también se denominan a veces métodos de clase porque sus comportamientos no dependen del estado de ningún objeto en particular. El comportamiento de un método estático sucede al nivel de la clase. Los métodos estáticos se usan en gran medida por utilidad; puede considerarlos como un modo de tener métodos globales (à la C) mientras mantiene el código mismo agrupado con la clase que lo necesita. Por ejemplo, en todo este tutorial usará la clase de Logger JDK para enviar información a la consola. Para crear una instancia de clase de Logger, no cree una instancia de clase de Logger; en cambio, invoque un método estático llamadogetLogger(). La sintaxis para invocar un método estático es diferente de la sintaxis usada para invocar un método para una instancia de objeto. También use el nombre de la clase que contiene el método estático, como se muestra en esta invocación:
1 Logger l = Logger.getLogger("NewLogger");
Por lo cual, para invocar un método estático, no necesita una instancia de objeto, solo el nombre de la clase. Su primer objeto Java Es tiempo de reunir lo que ha aprendido en las secciones previas y comenzar a escribir algunos códigos. Esta sección lo guía por la declaración de una clase y la adición de variables y métodos a ella para usar el Eclipse Package Explorer. Aprenderá cómo usar la clase de Logger para mantener en vista al comportamiento de su aplicación y también cómo usar un método main() como un banco de pruebas. Creación de un paquete Si todavía no está allí, vaya a la perspectiva Package Explorer en Eclipse. Se lo va a preparar para crear su primera clase Java. El primer paso es crear un lugar para que la clase viva. Los paquetes son construcciones de espacio de nombres pero también se correlacionan convenientemente de forma directa con la estructura del directorio del sistema de archivos. En lugar de usar el paquete predeterminado (casi siempre una mal idea), creará uno específicamente para el código que estará escribiendo. Haga clic en File > New > Package para acceder al asistente del Paquete Java, que se muestra en la Ilustración 4: http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
10/51
20/7/2018
Universidad Central Del Ecuador
Ilustración 4. El asistente del Paquete Java de Eclipse Escriba com.makotogroup.intro en el recuadro de texto del Nombre y haga clic en Finish. Verá el nuevo paquete creado en el Package Explorer. Declaración de la clase Hay más de un modo para crear una clase desde el Package Explorer pero el modo más fácil es hacer clic derecho en el paquete que acaba de crear y elegir New > Class.... Verá el recuadro de diálogo New Class (Clase nueva). En el recuadro de texto de Name escriba Person. Bajo ¿Qué resguardos de métodos le gustaría crear?, marque public static void main(String[] args). (Pronto verá por qué). Luego, haga clic en Finish. La clase nueva aparece en su ventana de edición. Recomiendo cerrar algunas de las vistas de su aspecto predeterminado para que sea más fácil ver su código de origen, como se muestra en la Ilustración 5: Ilustración 5. Un espacio de trabajo bien ordenado Eclipse genera una clase de shell para usted e incluye la sentencia del paquete en la parte superior, junto con el método main() que usted pidió y los comentarios que ve. Ahora, solo necesita precisar la clase. Puede configurar cómo Eclipse genera clases nuevas por medio de Window > Preferences > Java > Code Style > Code Templates. Para simplificar, usted optará por la generación de código simple de instalar de Eclipse. En la Ilustración 5, observe el asterisco (*) junto al nuevo archivo de código de origen, que indica que he hecho una modificación. Y observe que el código no está guardado. Luego, observe que he cometido un error cuando declaré el atribut Name: Declaré que el tipo de Name era Strin. El compilador no pudo encontrar una referencia para tal clase y la distinguió como un error de compilación (esa es la línea roja ondulada debajo de Strin). Por supuesto, puedo corregir mi error al agregar una g al final de Strin. Esto es solo una pequeña demostración del poder de un IDE sobre el uso de herramientas de líneas de comandos para el desarrollo de software. Adición de variables de clases En el Listado 4, usted comienza a precisar la clase de Person pero no expliqué mucho sobre la sintaxis. Ahora formalmente definiré cómo agregar variables de clases. Recuerde que una variable tiene un accessSpecifier, un dataType, un variableName y, opcionalmente, un initialValue. Anteriormente, observó brevemente cómo definir el accessSpecifier y variableName. Ahora verá el dataType que una variable puede tener. Un dataType puede ser un tipo primitivo o una referencia a otro objeto. Por ejemplo, observe que Age es un int (un tipo primitivo) y Name es una String (un objeto). El JDK viene empaquetado lleno de clases útiles como java.lang.String y aquellos en el paquete java.lang no necesitan ser importados (una cortesía taquigráfica del compilador Java). Pero ya sea que el dataType sea una clase JDK como String o una clase definida por el usuario, la sintaxis es esencialmente la misma. La Tabla 1 muestra los ocho tipos de datos primitivos que es probable que usted vea regularmente, incluidos los valores predeterminados que los primitivos adquieren si usted no inicializa explícitamente el valor de una variable miembro: Tabla 1. Tipos de datos primitivos
Tipo
Tamaño
Valor predeterminado
Rango de valores
booleano
n/d
falso
verdadero o falso
byte
8 bits
0
-128 a 127
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
11/51
20/7/2018
Universidad Central Del Ecuador
Tipo
Tamaño
Valor predeterminado
Rango de valores
caract.
16 bits
(sin firmar)
\u0000' \u0000' a \uffff' o 0 a 65535
corto
16 bits
0
-32768 a 32767
int
32 bits
0
-2147483648 a 2147483647
largo
64 bits
0
-9223372036854775808 a 9223372036854775807
flotante
32 bits
0,0
1.17549435e-38 a 3.4028235e+38
doble
64 bits
0,0
4.9e-324 a 1.7976931348623157e+308
Registro incorporado Antes de avanzar más en la codificación, necesita saber cómo sus programas le dicen lo que están haciendo. La plataforma Java incluye el paquete java.util.logging, un mecanismo de registro incorporado para juntar información de programa en una forma legible. Los registradores son entidades con nombres que usted crea por medio de una llamada de método estático a la clase Logger, como la siguiente:
1 import java.util.logging.Logger; 2 //. . . 3 Logger l = Logger.getLogger(getClass().getName());
Cuando se llama al método getLogger(), usted pase una String. Por ahora, solo acostúmbrese a pasar al nombre de la clase el código en el que su escritura se encuentra. Desde cualquier método regular (es decir, no estático), el código anterior siempre hará referencia al nombre de la clase y lo pasará al Logger. Si usted está haciendo una llamada de Logger dentro de un método estático, solo haga referencia al nombre de la clase en la que se encuentre:
1 Logger l = Logger.getLogger(Person.class.getName());
En este ejemplo, el código en el que usted se encuentra es la clase de Person, por lo tanto haga referencia a un literal especial denominado clase que recupera el objeto Class (profundizaremos sobre esto más adelante) y obtiene su atributoName. La sección Writing good Java code de este tutorial incluye un consejo sobre cómo no hacer un registro.
A pesar de que Windows 10 es uno de los sistemas operativos más completos y más funcionales que existe, seguramente muchos usuarios necesiten instalar otros complementos o herramientas para ser más funcional como una suite ofimática o las últimas actualizaciones de seguridad.
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
12/51
20/7/2018
Universidad Central Del Ecuador
Uno de los complementos que se ha convertido en indispensable después de la instalación de Windows es Java. Java es un lenguaje de programación multiplataforma que a través de sus programas permite la ejecución de programas indistintamente de la plataforma que utilicemos. Java fue utilizado y llevado a muchos navegadores lo que lo convirtió en un gran complemento para la Web que permitía utilización de software propio o salas de chat por mencionar algunos ejemplos. La instalación de este software es sencillo pero para un usuario novato puede complicarse. Uno de los problemas que existen es la web de descarga. Muchas webs ofrecen la posibilidad de descargar java acompañado de malware. Todo por no saber la web original. Este software se puede conseguir en este enlace, es la web original del proyecto que pertenece a Oracle.
Una vez que hemos accedido a ello, pulsamos el botón de Descarga y aparecerá una pantalla donde se nos dice que tenemos que aceptar los términos si descargamos el programa. Lo hacemos y descargamos el programa. Una vez que hemos descargado el programa, lo ejecutamos y aparecerá el siguiente asistentes de instalación:
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
13/51
20/7/2018
Universidad Central Del Ecuador
Lo dejamos tal cual la imagen y pulsamos “siguiente”. Esto descargará todos los archivos necesarios para la futura instalación. Los últimos paquetes de instalación de Java son a través de Internet, por lo que necesitamos tener Internet. Sino hemos de descargarnos el paquete completo que ocupa unos 55 megas y que se encuentra disponible en paquetes de instalación alternativos. Cuando hemos terminado de descargar todos los paquetes de la instalación, nos aparecerá la pantalla de instalación,
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
14/51
20/7/2018
Universidad Central Del Ecuador
pero antes nos preguntará si queremos instalar software alternativo. Lo desmarcamos y pulsamos el botón siguiente.
Ahora comenzará la verdadera instalación de Java. Cuando termine, Java mirará si hemos tenido alguna instalación de Java antigua, si lo hemos tenido aparecerá la siguiente ventana:
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
15/51
20/7/2018
Universidad Central Del Ecuador
Si no lo hemos tenido pasarรก a la ventana final:
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
16/51
20/7/2018
Universidad Central Del Ecuador
Una vez que hemos terminado podemos ver si realmente funciona o no. Para ello Java ha creado una web que te indica si Java está funcionando o no en tu ordenador, un buen método de comprobación para saber si lo hemos instalado correctamente o no. Java también ha sido y es objeto de ataques, es por ello que suele actualizarse continuamente, así que aparecerá un botón naranja con el logotipo de Java de vez en cuando, cuando ocurra eso pulsar sobre el botón y actualizar el programa, merecerá la pena. Cómo podéis ver es un sistema sencillo y simple que a cambio nos asegurará que programas como JDownloader o como algunos puedan funcionar en nuestro Windows 10.
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
17/51
20/7/2018
Universidad Central Del Ecuador
try, catch try catch finally. Gestión de excepciones en Java. Captura con bloques try catch finally.
INTRODUCCIÓN: GESTIÓN EXCEPCIONES EN JAVA A continuación vamos a ver como el lenguaje Java implementa su propio sistema de gestión de excepciones, o como hemos mencionado anteriormente, también llamado sistema de tratamiento de errores. También veremos los primeros ejemplos sencillos sobre la gestión de excepciones.
Ficheros adjuntos (Ventana nueva)
import java.util.Scanner;
public class deber1 {
public static void main(String[] args) { // TODO Auto-generated method stub int lado=0; int altura=0; int base=0; int areac,areat=0;
Scanner progra=new Scanner(System.in); try {
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
18/51
20/7/2018
Universidad Central Del Ecuador
System.out.println("Ingrese un lado del cuadrado"); lado=progra.nextInt(); System.out.println("Ingrese la altura del triangulo"); altura=progra.nextInt(); System.out.println("Ingrese la base del triangulo"); base=progra.nextInt();
areac=lado*lado; System.out.println("El Area del Cuadrado es:/n "+areac); areat=base*altura/2; System.out.println("El Area del Triangulo es:/n "+areat);
} catch(Exception e){ //e.printStackTrace(); System.out.println("Se presento un error"); }
} }
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
19/51
20/7/2018
Universidad Central Del Ecuador
CONSTRUCTORES JAVA package newpackage; package newpackage; class secundaria { public void saluda(){ System.out.println("saludo desde "); } } este primero en una clase public class clases_de_oscar { public static void main(String[] args) { secundaria s=new secundaria(); s.saluda(); saluda(); } public static void saluda(){ System.out.println("Saluda desde <principal>"); } }
Constructores progra_1.pptx (Ventana nueva)
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
20/51
20/7/2018
Universidad Central Del Ecuador
MĂŠtodos de la Clase String paquete java.lang //importamos el paquete de la clase Scanner import java.util.Scanner; public class ejemplo { //Constructor General public ejemplo(){ } public static void main (String [] argumentos) { int condicion = 0; System.out.println("Inicio del programa Calcula Letras"); System.out.println("Ingresa cadena de caracteres"); String ingresoCaracteres = ""; String primera = "a"; String primerA = "A"; //Lectura del teclado Scanner ingresoTeclado = new Scanner(System.in); //el objeto ingresoCaracteres recibe los valores ingresoCaracteres = ingresoTeclado.nextLine(); //Condicional 1 si la cadena tiene menos de 5 caracteres if(ingresoCaracteres.length()< 5 ){ System.out.print("La cadena introducida tiene menos de 5 caracteres"); //el programa evalua si el primer caracter inicia con a o A if( ingresoCaracteres.substring(0).startsWith(primera) || ingresoCaracteres.substring(0).startsWith(primerA)){ System.out.println(" y la primera letra es a o es A"); } //Condicional 2 si la cadena tiene entre 5 y 15 caracteres }else if(ingresoCaracteres.length()>=5 && ingresoCaracteres.length() <=15){ System.out.print("La cadena introducida tiene entre 5 y 15 caracteres"); //el programa evalua si el primer caracter inicia con a o A if( ingresoCaracteres.substring(0).startsWith(primera) || ingresoCaracteres.substring(0).startsWith(primerA)){ System.out.println(" y la primera letra es a o es A"); } //Condicional 3 si la cadena tiene mas de 15 caracteres }else if(ingresoCaracteres.length()>15){ System.out.print("La cadena introducida tiene mas de 15 caracteres"); //el programa evalua si el primer caracter inicia con a o A if( ingresoCaracteres.substring(0).startsWith(primera) || ingresoCaracteres.substring(0).startsWith(primerA)){ System.out.println(" y la primera letra es a o es A"); } }
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
21/51
20/7/2018
Universidad Central Del Ecuador
} }
clases String Presentaciรณn2 (1).pdf (Ventana nueva)
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
22/51
20/7/2018
Universidad Central Del Ecuador
Segundo Hemisemestre BUCLES FOR, WHILE Y DO WHILE EN JAVA Java 24 mayo, 2014 2 Comments Iván Salas
En Java hay 3 tipos de sentencias de control (for, while y do while) para ejecutar un código un número determinado de veces y aunque sabiendo usar un solo tipo te las puedes arreglar para hacer cualquier cosa siempre hay un tipo de bucle más apropiado para cada situación, si no solo habría uno ¿no?
BUCLE WHILE EN JAVA El bucle while es tan sencillo como decir mientras se cumpla la condición se ejecuta el código que haya dentro del bucle, y en el momento que ya no se cumpla esa condición se sale del bucle. while (condicion) { ... }
Por lo tanto este tipo de bucle es el idóneo cuando necesitamos que un fragmento de código se repita un número de veces variable.
EJEMPLO DE USO DEL BUCLE WHILE Un ejemplo claro de un bucle que no sabemos cuantas veces se va a ejecutar es cuando le pedimos al usuario que introduzca algo por teclado, porque se puede equivocar o introducirlo mal porque le apetezca.
public int leerNumero() { Scanner sc = new Scanner(System.in); int numero = -1; while (numero <= 0) { System.out.println("Introduce un numero positivo: "); numero = sc.nextInt(); }
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
23/51
20/7/2018
Universidad Central Del Ecuador sc.close(); return numero;
}
En este ejemplo no se hace control de excepciones por lo que si el usuario mete algo que no se un número el programa fallaría.
BUCLE DO WHILE EN JAVA El bucle do while es prácticamente igual al while, pero con la diferencia de que el código del bucle se ejecutara al menos una vez ya que la comprobación se hace después de cada iteración y no antes como en el caso del while. do { ... } while (condicion)
Este tipo de bucle es el idóneo cuando necesitamos que un fragmento de código se ejecute al menos una vez y dependiendo de las circunstancias puede ser que se vuelva a repetir un número indeterminado de veces o ninguna.
EJEMPLO DE USO DEL BUCLE DO WHILE Un ejemplo claro de bucle do while puede ser el siguiente, en el que necesitamos obtener un número par aleatorio menor que el que nosotros le digamos. public void numeroPar(int numero) { System.out.println("Numero par menor que: " + numero); int n; do { n = (int) (Math.random() * numero); System.out.println(n); } while (n % 2 != 0); System.out.println("Y el numero par elegido es: " + n); }
Esta claro que al menos se tiene que ejecutar una vez para tener un número aleatorio y si el número aleatorio no es par pues tendrá que repetirse hasta que si que lo sea.
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
24/51
20/7/2018
Universidad Central Del Ecuador
While Y Do While
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
25/51
20/7/2018
Universidad Central Del Ecuador
Switch Sentencia switch en Java. Como la sentencia if, esta sentencia nos permite modificar la línea de ejecucion. En vez de usar una expresión boolean, usa una expresión byte, short, char, int o un tipo enumerado. A partir de la versión de java 1.7, también se puede usar String.
Formato de la sentencia Switch switch (<expresión>) { case <valor>: <lista de sentencias separadas por punto y coma>; case <valor>: <lista de sentencias separadas por punto y coma>; … default: <lista de sentencias separadas por punto y coma>; }
El tipo de la <expresión> y el <valor> debe coincidir. La cláusula default es opcional. Puede haber tantas cláusulas case como queramos. El <valor> no puede ser una expresión, sólo puede ser un literal.
Funcionamiento de la sentencia switch Cuando se alcanza la sentencia switch, se evalúa la expresión. El resultado se compara con cada <valor> consecutivamente, hasta encontrar uno que coincida. Cuando coincide un <valor>, se ejecutan las instrucciones de esa cláusula y todas las de las cláusulas que le siguen. Si queremos que sólo se ejecuten las instrucciones de una sola cláusula, se suele poner un “break” como última instrucción de <lista de sentencias separadas por punto y coma>, lo que hace que se termine la ejecución de la sentencia switch.
Formato de la sentencia Switch con break
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
26/51
20/7/2018
Universidad Central Del Ecuador
switch (<expresión>) { case <valor>: <lista de sentencias separadas por punto y coma>; break; case <valor>: <lista de sentencias separadas por punto y coma>; break; … default: <lista de sentencias separadas por punto y coma>; }
Ejemplo sin break; “Dias de la semana que quedan” En este ejemplo, ingresamos un día de la semana en inglés y nos enumeran los días de la semana que nos quedan para terminar esa semana. package com.edu4java.javatutorials; import javax.swing.JOptionPane; public class SwitchExample { public static void main(String[] args) { String daysLeft = ""; String weekDay = JOptionPane.showInputDialog("Ingresar el día de la semana (en ingles)"); switch (weekDay.toUpperCase()) { case "SUNDAY": daysLeft = daysLeft + "Sunday "; case "MONDAY": daysLeft = daysLeft + "Monday "; case "TUESDAY": daysLeft = daysLeft + "Tuesday "; case "WEDNESDAY": daysLeft = daysLeft + "Wednesday "; case "THURSDAY": daysLeft = daysLeft + "Thursday "; case "FRIDAY": daysLeft = daysLeft + "Friday "; case "SATURDAY": daysLeft = daysLeft + "Saturday "; } JOptionPane.showMessageDialog(null, "Quedan \"" + daysLeft + "\" para terminar la semana"); } }
No utilizamos la cláusula optativa default. El método weekDay.toUpperCase() convierte todas las letras minúsculas presentes en el objeto String a mayúsculas, para que la comparación funcione aunque ingresen el dia de la semana en minúscula.
Ejemplo usando break “Menú de opciones” Este es un caso típico donde nuestro programa tiene que hacer elegir al usuario entre varias opciones: package com.edu4java.javatutorials; import javax.swing.JOptionPane; public class SwitchExample2 { public static void main(String[] args) { String menu = new String("Elija una opción: 1, 2, 3 o 4 \n"); for (int i = 1; i <= 4; i++) { menu = menu + " opción " + i + "\n";
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
27/51
20/7/2018
Universidad Central Del Ecuador } String option = JOptionPane.showInputDialog(menu.toString()); switch (option) { case "1": JOptionPane.showMessageDialog(null, "Felicitaciones, ha elegido break; case "2": JOptionPane.showMessageDialog(null, "Felicitaciones, ha elegido break; case "3": JOptionPane.showMessageDialog(null, "Felicitaciones, ha elegido break; case "4": JOptionPane.showMessageDialog(null, "Felicitaciones, ha elegido break; default: JOptionPane.showMessageDialog(null, option + " no es una opción break; }
la opción 1");
la opción 2");
la opción 3");
la opción 4");
válida");
} }
En este caso usamos break en cada cláusula case y podemos ver como se ejecuta sólo una opción. También usamos la cláusula default para indicar si la opción seleccionada no corresponde con ninguna opción válida.
Críticas al uso de sentencia Switch El uso de la sentencia switch en diferentes lenguajes ha sido criticado por llevar a un código fuente que atenta contra el paradigma de programación estructurada. En programación orientada a objetos se refuerza esta crítica ya que existen patrones de diseño orientados a objetos que reemplazan la función que ofrece switch. Los patrones de diseño son recomendaciones de prácticas que mejoran la calidad de los programas orientados a objetos.
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
28/51
20/7/2018
Universidad Central Del Ecuador
Switch Ejercicio public static void main(String[] args) { // TODO Auto-generated method stub String a=""; String b=JOptionPane.showInputDialog("Ingrese el dia de la semana"); switch (b.toUpperCase()) { case "DOMINGO": a=a+"Domingo"; case "LUNES": a=a+"Lunes"; case "MARTES": a=a+"Martes"; case "MIERCOLES": a=a+"Miercoles"; case "JUEVES": a=a+"Jueves"; case "VIERNES": a=a+"Vierenes"; case "SABADO": a=a+"Sabado"; } JOptionPane.showMessageDialog(null,"Queda\""+a+"\" para terminar la semana"); } } PROGRAMA QUE PERMITA SIMULAR UN CAJERO AUTOMATICO, MEDIANTE CUADROS DE DIALOGO
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
29/51
20/7/2018
Universidad Central Del Ecuador
For
BUCLE FOR EN JAVA El bucle for sirve para ejecutar un código un número conocido de veces, por ejemplo recorrer un array o cualquier otro tipo de colección o simplemente ejecutar el código un número concreto de veces. En java hay dos posibles tipos de bucle for: El más habitual es en el que se establece el numero desde el que va a empezar el bucle, hasta cuando se va a seguir ejecutando el bucle y finalmente el modo en el que se actualiza el contador del bucle, que aunque habitualmente lo que se hace es incrementar en una unidad el contador esto no tiene que ser obligatoriamente así. for (inicializacion; condicion; actualizacion) { ... }
El otro formato de bucle for es el ideal para recorrer colecciones de objetos sean del tipo que sean (arrays, ArrayList, HashMap, ...) y en este caso hay que definir un iterador que nos devolverá un elemento de la colección en cada iteración y la colección que se quiere recorrer. for (iteredor; coleccion) { ... }
EJEMPLOS DE USO DEL BUCLE FOR Este es un ejemplo muy sencillo de bucle for en el que lo único que hacemos es imprimir por pantalla los números entre 1 el numero que nosotros queramos y como puedes ver en este caso al contrario que como ocurre en los bucles while y do while sabemos con certeza el numero de veces que se va a ejecutar el bucle. public void contarHasta(int numero) { System.out.println("Cuenta hasta: " + numero); for (int i = 1; i <= numero; i++) { System.out.println(i); } }
Visto lo sencillo del ejemplo anterior vamos a ver lo sencillo que es recorrer una colección de objetos si usamos el otro modelo de bucle for. public void verDiasSemana() { String[] dias = {"Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo"}; System.out.println("Los dias de la semana son:"); for (String d: dias) { System.out.println(d); } }
En este caso lo que estamos recorriendo es un array que también se podría recorrer de forma sencilla con la otra forma de bucle for aunque como podrás ver nos obliga a escribir algo más de código, por lo que para recorrer cualquier tipo de colección normalmente usaremos la opción anterior. public void verDiasSemanaV2() { String[] dias = {"Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo"};
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
30/51
20/7/2018
Universidad Central Del Ecuador System.out.println("Los dias de la semana son:"); for (int i = 0; i < dias.length; i++) { System.out.println(dias[i]); }
}
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
31/51
20/7/2018
Universidad Central Del Ecuador
Formularios con JAVA 1. AWT - SWING Para la creación de formularios para el desarrollo de aplicaciones desktop del estilo cliente/servidor, java dispone de un conjunto de clases e interfaces que están agrupadas en una especificación que se le conoce con el nombre JFC, la cual especifica un conjunto de características para escribir aplicaciones GUI y añadir fundiconalidades ricas e interactivas a las aplicaciones Java. Entre las características que tiene JFC están las siguientes:
·Componentes GUI.- Incluye una gran cantidad de componentes que van desde campos de texto a elementos complejos tales como tablas, split, paneles mixtos. ·Look and Feel.- Se refiere a los diferentes Skins que se pueden utilizar en los componentes GUI. ·Accesibilidad al API.- Permite utilizar tecnologías afines para interactuar con los componentes GUI como, por ejemplo periféricos usb, pantallas táctiles etc. ·Java 2D API.- Permite incorporar gráficos 2D, texto e imágenes de alta calidad. ·Drag and Drop.- Provee la habilidad de realizar operaciones de drag and drop entre aplicaciones Java. ·Internacionalización.- Permite manejar y/o administrar la aplicación en varios idiomas.
1.1 ¿ Qué es un AWT? AWT representa un conjunto de componentes GUI y eventos que fueron la primera versión para crear aplicaciones desktop en la versión 1.2 de Java. Estos fueron posteriormente reemplazados por Swing debido a que los componentes de AWT tienen dependencia de los componentes nativos del Sistema Operativo. Si hablamos de visualización,hay diferencia de un sistema a otro. Actualmente AWT se utiliza para proveer los eventos GUI, la interfaz entre el sistema de ventanas nativo y aplicaciones Java; asi como la interfaz para los dispositivos de entrada tales como el ratón y el teclado. 1.2 ¿ Qué es un SWING? Swing representa la evolución a AWT. Tiene un conjunto de componentes GUI escritos 100% en Java, con lo cual se garantiza la independencia del sistema operativo. Todos los componentes GUI se encuentran en el paquete javax.swing y comienzan con la letra J, por ejemplo: JButton, JTextField. 1.3 Propiedades Componentes Cada componente gráfico tiene un conjunto de características (revisar API Swing), las cuales pueden ser accedidas y modificadas por los métodos getters y setters respectivos de cada clase. Por ejemplo, para registrar el titulo de un JFrame, utilizamos el método setTitle("titulo"); para obtener el valor escrito en un componente de texto como JTextField, utilizamos el método getText() y asi sucesivamente. 2. Contenedores
Para construir un formulario el primer paso es crear un componente general llamado contenedor, que es el componente gráfico que contiene o agrupa a los demás componentes GUI; permite renderizarlos y manejar sus eventos. Swing maneja tres tipos de contenedores los cuales sonJFrame, JDialog y JApplet. 2.1 JFrame Es el componente gráfico principal en la creación de una interfaz de usuario; es decir, representa la ventana principal que tiene decoraciones como título, bordes, y botones para minimizar, maximizar o cerrar la http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
32/51
20/7/2018
Universidad Central Del Ecuador
ventana. Una aplicación GUI debe tener al menos un JFrame. A continuación se muestra un ejemplo de un JFrame.
2.2 JDialog Es el componente gráfico utilizado para mostrar mensajes informativos de una aplicación GUI. Los mensajes pueden ser de información, confirmación e, inclusive, de ingreso de datos simple. Cada diálogo es dependiente de un JFrame. Existen diálogos modales (JOptionPane) y no modales. A continuación se muestran ejemplos de los diferentes diálogos que se pueden crear con Swing.
2.3 JApplet Un Applet es una aplicación GUI que funciona de modo embebido en una página html dentro de un browser. Cuando se requiere utilizar componentes gráficos SWING, se debe utilizar el componente gráfico JApplet que representa un applet en Swing. 3.1 Etiqueta Para el manejo de etiquetas en un formulario, Swing utiliza la clase JLabel, que es un componente que permite desplegar texto e imágenes o ambos. La limitación principal de este componente es que no es interactivo. 3.2 Texto Swing dispone de algunos componentes que permiten que un usuario ingrese información en forma de texto, la cual puede ser ingresada en un campo simple de una sola linea (JTextField), varias líneas (JTextArea), validar caracteres que el usuario ingresa (JFormattedTextField) e información oculta (JPasswordField).
3.3 Botones Para manejar los diferentes eventos en un aplicación GUI, Swing dispone de dos componentes interactivos: el uno llamado JButton que, al igual que la etiqueta (JLabel), puede contener texto, imagen o ambos; y el otro llamado JToggleButton que, a diferencia del JButton, maneja dos estados: habilitado/deshabilitado. 3.4 Selección Muchas veces se necesita seleccionar un valor o varios de un conjunto de opciones, para lo cual Swing utiliza componentes de selección múltiple o simple; estos son JCheckBox y JRadioButton, respectivamente. Cabe destacar que para trabajar con la selección simple en el componenteJRadioButton, se debe agruparlo en un componente llamado ButtonGroup. Los componentes JComboBox y JList, que tambien representan componentes de selección, serán tratados en una sección posterior ya que manejan un modelo especial de datos. 3.5 Menús Para el manejo de los menús junto y sus elementos, submenus y tipos, Swing maneja las siguientes jerárquias: comienza con el elemento JMenuBar que representa la barra que contiene todos los menus denotados por la clase JMenu. Para las diferentes opciones de un menú en particular, se utiliza la clase JMenuItem la cual tiene tres versiones: la clase propiamente , una opción tipo checkbox representada por la clase JCheckBoxMenuItem y otra opción tipo radio button representada por la clase JRadioButtonMenuitem . Cabe destacar que un JMenu puede tener otro JMenu; es decir, es una jerarquía recursiva a nivel de este elemento que se utiliza para generar submenus.
4. Layouts http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
33/51
20/7/2018
Universidad Central Del Ecuador
El posicionamiento y tamaño de los diferentes componentes gráficos dentro de un contenedor específico o general es conocido con el nombre de Layout. Swing maneja algunos tipos de layout, entre los cuales tenemos los siguientes: 4.1 Border Layout Este tipo de Layout coloca los componentes en cinco áreas, dependiendo del lugar donde queramos establecerlas. Estas áreas son: arriba, abajo, izquierda, derecha y centro. A continuación se muestra un pantalla que hace uso de este layout.
4.2 Box Layout Este tipo de Layout coloca los componentes en una simple fila o columna, respetando el tamaño máximo de los componentes y permitiendo su alineación. A continuación se muestra un pantalla aplicado este layout.
4.3 Card Layout Este tipo de Layout maneja generalmente dos o más componentes que comparten el mismo espacio de trabajo. Conceptualmente cada componente que un CardLayout maneja es como una carta de juego la cual sola es visible una a la vez. A continuación se muestra un pantalla aplicado este layout.
Configuración ·Para configurar y trabajar con JDBC, el primer requisito es descargar la libreria java (archivo. jar) del motor elegido. Esta librería contiene todas las clases e interfaces necesarias para realizar las diferentes operaciones SQL. ·Para la descarga de la librería adecuada es importante considerar la versión del motor de base de datos ya que la librería puede variar; por ejemplo, para MySQL en su versión 5.0, la librería puede ser descargada de la siguiente dirección http://dev.mysql.com/downloads/connector/j/
·Una vez descargada la librería se debe copiar en el CLASSPATH del proyecto, el cual es el directorio donde están todas las librerías.
Figura 2.1: Ubicación Libreria JDBC
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
34/51
20/7/2018
Universidad Central Del Ecuador
·El siguiente paso es utilizar las clases e interfaces de JDBC. Para ello es necesario conocer dos atributos que se utilizarán en la configuración de la base de datos y que son los siguientes: oCadena de Conexión.- Se refiere al conjunto de parámetros necesarios para conectarse a una base de datos como son: servidor, puerto, credenciales usuario base, nombre de la base de datos etc., los cuales están asociados en un String y varian de motor a motor. Por ejemplo, la cadena de conexión para MySQL es la siguiente: jdbc:mysql://[host][:port]/[database] oDriver.- Representa una clase java dentro de la librería de del motor, esta clase esta identificada por su FQCN (Fully Qualified Name) o nombre de Clase incluido el paquete. Éstá se encuentra dentro de la librería descargada, la misma que contiene las configuraciones iniciales para conectarse con la base de datos. Por ejemplo para MySQL el driver o clase Java es la siguiente: com.mysql.jdbc.Driver
Para Recordar. Cada motor de base de datos tiene su propio jar para la conexión desde Java, así como su cadena de conexión particular. Es muy común referirse al jar de conexión como "el driver" del motor de base de datos.
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
35/51
20/7/2018
Universidad Central Del Ecuador
Ejercicio Formulario con JAVA
Vector Par e Impares con formulario package fer;
import java.awt.BorderLayout; import java.awt.EventQueue;
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent;
public class vector_de_par_e_impares extends JFrame {
private JPanel contentPane; private JTextField textField; private JTextField textField_1;
/** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
36/51
20/7/2018
Universidad Central Del Ecuador
try { vector_de_par_e_impares frame = new vector_de_par_e_impares(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); }
/** * Create the frame. */ public vector_de_par_e_impares() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null);
JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(54, 49, 183, 169); contentPane.add(scrollPane);
JTextArea textArea = new JTextArea(); scrollPane.setViewportView(textArea);
textField = new JTextField(); textField.setBounds(274, 124, 86, 20); contentPane.add(textField); textField.setColumns(10); http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
37/51
20/7/2018
Universidad Central Del Ecuador
textField_1 = new JTextField(); textField_1.setBounds(274, 181, 86, 20); contentPane.add(textField_1); textField_1.setColumns(10);
JLabel lblNmerosPares = new JLabel("N\u00FAmeros Pares"); lblNmerosPares.setBounds(281, 106, 101, 14); contentPane.add(lblNmerosPares);
JLabel lblNmeroImpares = new JLabel("N\u00FAmero Impares"); lblNmeroImpares.setBounds(274, 156, 86, 14); contentPane.add(lblNmeroImpares);
JButton btnSalir = new JButton("Salir"); btnSalir.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { dispose(); }
}); btnSalir.setBounds(335, 227, 89, 23); contentPane.add(btnSalir);
JButton btnEjecutal = new JButton("Ejecutal"); btnEjecutal.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String num = JOptionPane.showInputDialog("Ingrese el tamaño de vector"); int par=0,imp=0,a; a=Integer.parseInt(num); int [] vec=new int [a];
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
38/51
20/7/2018
Universidad Central Del Ecuador
for(int i=0;i<a;i++) { String num1 = JOptionPane.showInputDialog("Ingrese el tamaño de vector"); textArea.append(num1+"\n"); vec[i]=Integer.parseInt(num1); if(vec[i]%2==0) { par++; }else { imp++; } } textField.setText(Integer.toString(par)); textField_1.setText(Integer.toString(imp)); } }); btnEjecutal.setBounds(274, 36, 89, 23); contentPane.add(btnEjecutal); } }
Galería de imágenes
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
39/51
20/7/2018
Universidad Central Del Ecuador
Ejercicio Suma de Vector
Galería de imágenes No hay imágenes cargadas
Suma Vector package fer;
import java.awt.BorderLayout; import java.awt.EventQueue;
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JTextField; import javax.swing.JTextArea; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent;
public class prueba29_06_2018 extends JFrame {
private JPanel contentPane; private JTextField textField_1;
/** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
40/51
20/7/2018
Universidad Central Del Ecuador
public void run() { try { prueba29_06_2018 frame = new prueba29_06_2018(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); }
/** * Create the frame. */ public prueba29_06_2018() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null);
textField_1 = new JTextField(); textField_1.setBounds(39, 174, 133, 76); contentPane.add(textField_1); textField_1.setColumns(10);
JTextArea textArea = new JTextArea(); textArea.setBounds(39, 57, 119, 90); contentPane.add(textArea);
JTextArea textArea_1 = new JTextArea();
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
41/51
20/7/2018
Universidad Central Del Ecuador
textArea_1.setBounds(197, 57, 99, 90); contentPane.add(textArea_1);
JLabel lblVecto = new JLabel("Vecto 1"); lblVecto.setBounds(73, 34, 46, 14); contentPane.add(lblVecto);
JLabel lblVector = new JLabel("vector 2"); lblVector.setBounds(205, 34, 46, 14); contentPane.add(lblVector);
JLabel lblSumaDeVectore = new JLabel("suma de vectore"); lblSumaDeVectore.setBounds(73, 158, 99, 14); contentPane.add(lblSumaDeVectore);
JButton btnVector = new JButton("Vector"); btnVector.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String num = JOptionPane.showInputDialog("Ingrese el tamaño de vector 1"); int a; a=Integer.parseInt(num); int [] vec=new int [a];
for(int i=0;i<a;i++) { String num1 = JOptionPane.showInputDialog("Ingrese el numero de vector"); textArea_1.append(num1+"\n"); vec[i]=Integer.parseInt(num1); } // segundo vector String num1 = JOptionPane.showInputDialog("Ingrese el tamaño de vector 2"); a=Integer.parseInt(num); http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
42/51
20/7/2018
Universidad Central Del Ecuador
int [] vec2=new int [a];
for(int i=0;i<a;i++) { String num2 = JOptionPane.showInputDialog("Ingrese los numero de vector"); textArea.append(num2+"\n"); vec2[i]=Integer.parseInt(num1);
} int[]vec3= new int[a]; for(int i=0;i<a;i++) { vec3[i]=vec[i]+vec2[i]; textField_1.setText(vec3[i]+"\n"); }
} }); btnVector.setBounds(313, 30, 89, 23); contentPane.add(btnVector);
JButton btnSuma = new JButton("suma"); btnSuma.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
}
}); btnSuma.setBounds(313, 82, 89, 23); contentPane.add(btnSuma);
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
43/51
20/7/2018
Universidad Central Del Ecuador
JButton btnSalir = new JButton("salir"); btnSalir.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }); btnSalir.setBounds(313, 149, 89, 23); contentPane.add(btnSalir); }
}
Galería de imágenes
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
44/51
20/7/2018
Universidad Central Del Ecuador
Ejercicio de Multiplicaciรณn se Matriz con Formulario
Multiplicaciรณn de Matrices package fer;
import java.awt.BorderLayout; import java.awt.EventQueue;
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JLabel; import javax.swing.JOptionPane;
public class matr extends JFrame {
private JPanel contentPane; private JTextField textField; private JTextField textField_1; private JTextField textField_2; private JTextField textField_3;
/** * Launch the application. */ public static void main(String[] args) { http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
45/51
20/7/2018
Universidad Central Del Ecuador
EventQueue.invokeLater(new Runnable() { public void run() { try { matr frame = new matr(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); }
/** * Create the frame. */ public matr() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null);
JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(40, 31, 98, 117); contentPane.add(scrollPane);
JTextArea textArea = new JTextArea(); scrollPane.setViewportView(textArea);
JScrollPane scrollPane_1 = new JScrollPane(); scrollPane_1.setBounds(195, 31, 98, 117);
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
46/51
20/7/2018
Universidad Central Del Ecuador
contentPane.add(scrollPane_1);
JTextArea textArea_1 = new JTextArea(); scrollPane_1.setViewportView(textArea_1);
JScrollPane scrollPane_2 = new JScrollPane(); scrollPane_2.setBounds(320, 31, 89, 120); contentPane.add(scrollPane_2);
JTextArea textArea_2 = new JTextArea(); scrollPane_2.setViewportView(textArea_2);
textField = new JTextField(); textField.setBounds(50, 169, 86, 20); contentPane.add(textField); textField.setColumns(10);
textField_1 = new JTextField(); textField_1.setBounds(50, 212, 86, 20); contentPane.add(textField_1); textField_1.setColumns(10);
textField_2 = new JTextField(); textField_2.setBounds(176, 169, 86, 20); contentPane.add(textField_2); textField_2.setColumns(10);
textField_3 = new JTextField(); textField_3.setBounds(176, 212, 86, 20); contentPane.add(textField_3); textField_3.setColumns(10);
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
47/51
20/7/2018
Universidad Central Del Ecuador
JButton btnNewButton = new JButton("ejecutar"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int f1,f2,c1,c2; f1=Integer.parseInt(textField.getText()); f2=Integer.parseInt(textField_1.getText()); c1=Integer.parseInt(textField_2.getText()); c2=Integer.parseInt(textField_3.getText());
if (c1==f2) { int [][]matriz1 = new int [f1][c1]; int [][]matriz2 = new int [f2][c2]; int [][]matriz3 = new int [f1][c2];
JOptionPane.showMessageDialog(null, "Existe producto"); for(int i=0;i<f1;i++) { for(int j=0;j<f2;j++) { String m1=JOptionPane.showInputDialog("Ingrese un numero"); textArea.append(m1+" ");
matriz1[i][j]=Integer.parseInt(m1); } textArea.append("\n");
} for(int i=0;i<f1;i++) { for(int j=0;j<f2;j++) { String m2=JOptionPane.showInputDialog("Ingrese un numero"); textArea_1.append(m2+" ");
matriz2[i][j]=Integer.parseInt(m2);
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
48/51
20/7/2018
Universidad Central Del Ecuador
} textArea_1.append("\n");
} for(int i=0;i<f1;i++) { for(int j=0;j<c2;j++) { for(int k=0;k<f1;k++ ) {
matriz3[i][j]+=matriz3[i][k]+matriz1[i] [k]*matriz2[k][j];
textArea_2.append(Integer.toString(matriz3[i][j])+" "); } } textArea_2.append("\n");
} }else { JOptionPane.showMessageDialog(null, "no Existe producto"); }
} }); btnNewButton.setBounds(293, 193, 89, 23); contentPane.add(btnNewButton);
JLabel lblFila = new JLabel("fila"); lblFila.setBounds(0, 172, 46, 14); contentPane.add(lblFila);
JLabel lblColunmas = new JLabel("colunmas"); lblColunmas.setBounds(0, 215, 46, 14);
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
49/51
20/7/2018
Universidad Central Del Ecuador
contentPane.add(lblColunmas);
JLabel lblMatriz = new JLabel("matriz 1"); lblMatriz.setBounds(69, 159, 46, 14); contentPane.add(lblMatriz);
JLabel lblMatriz_1 = new JLabel("matriz 2"); lblMatriz_1.setBounds(190, 159, 46, 14); contentPane.add(lblMatriz_1); } }
Galería de imágenes
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
50/51
20/7/2018
Universidad Central Del Ecuador
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0
http://localhost:51236/temp_print_dirs/eXeTempPrintDir_8sz1za/gaby/
51/51