daw_u1
DESCRIPTION
DAW_U1TRANSCRIPT
-
UNIVERSIDAD PRIVADA TELESUP
-
UNIVERSIDAD PRIVADA TELESUP
Introduccin
a) Presentacin y contextualizacin
Java es la base para prcticamente todos los tipos de aplicaciones de red,
adems del estndar global para desarrollar y distribuir aplicaciones mviles y
embebidas, juegos, contenido basado en web y software de empresa. Con ms de
9 millones de desarrolladores en todo el mundo, Java le permite desarrollar,
implementar y utilizar de forma eficaz interesantes aplicaciones y servicios.
b) Competencia
Implementar pginas web dinmicas, con accesos a bases de datos, utilizando
XML, con cualquier tipo de conexin de red entre cualquier sistema.
c) Capacidades
1. Conoce los principales fundamentos y funciones de POO en Java.
2. Reconoce las utilidades adecuadas de la herencia y polimorfismo.
3. Describe objetivamente las estructuras de datos dinmicos.
4. Analiza el manejo y uso adecuado de las sesiones.
d) Actitudes
Pone en prctica cada uno de los procesos recomendados por Java.
Incentiva el cumplimiento de las estructuras de los datos dinmicos.
e) Presentacin de Ideas bsicas y contenido esenciales de la Unidad:
La Unidad de Aprendizaje 01: Fundamentos de la Tecnologa Java, comprende el
desarrollo de los siguientes temas:
TEMA 01: Fundamentos de POO en JAVA
TEMA 02: Herencia y Polimorfismo
TEMA 03: Estructuras de Datos Dinmicas
(JAVA COLLECTION FRAMEWORK).
TEMA 04: Manejo y Uso de Sesiones
-
UNIVERSIDAD PRIVADA TELESUP
TEMA 1
Conocer los principales fundamentos y funciones de POO en Java.
Competencia:
Fundamentos de POO en
JAVA
-
UNIVERSIDAD PRIVADA TELESUP
Desarrollo de los Temas
Tema 01: Fundamentos de POO en Java
CONCEPTOS BASICOS DE LA PROGRAMACION ORIENTADA A OBJETOS:
Clase
La clase es una plantilla o patrn a partir de la
cual se crean muchos otros objetos similares,
tambin se podra definir a una clase como la
agrupacin de objetos que poseen
caractersticas comunes.
Ejemplos:
Si Ud. tuviera que dibujar 30 mapas del Per Cmo los podra hacer de un
modo muy rpido? Tendra que conseguir un molde o plantilla y a partir de ste
podra crear los 30 mapas de un modo fcil y rpido. En este ejemplo el Molde o
Patrn sera la Clase y cada uno de los mapas reproducidos vendran ser los
Objetos instanciados.
Qu clases puedes distinguir dentro de tu aula? En el aula existe la clase
Alumnos, cada alumno vendra ser un objeto que se origina de esta clase. Otras
clases podran ser: Carpetas, tiles, etc.
Como podemos darnos cuenta, los conceptos de la POO estn en la vida diaria, y son
estos conceptos los que se aplican al momento de programar aplicaciones
informticas.
Propiedades de la clase
Las propiedades o atributos son las caractersticas
descriptivas de una clase. Cuando definimos una
propiedad especificamos su nombre y su tipo de dato.
-
UNIVERSIDAD PRIVADA TELESUP
Ejemplos:
Propiedades de la clase Alumnos
Apellidos (Tipo de dato String)
Nombres (Tipo de dato String)
Edad (Tipo de dato int)
Talla (Tipo de dato double)
Mtodos en las clases
Son las funcionalidades, acciones o habilidades de la clase. Los mtodos son
funciones que estn asociadas a un objeto. Los mtodos responden a la pregunta:
Qu es lo que es capaz de hacer la clase?
Los nombres de los mtodos generalmente estn asociados a una accin o verbos. Al
final del nombre de los mtodos siempre se utilizarn parntesis dentro de los cuales
muchas veces es necesario enviar algunos datos, para que puedan realizarse los
procesos.
Ejemplos:
La clase Alumnos contiene los siguientes mtodos:
Estudiar ()
Hablar ()
DecirSuEdad( )
La clase plumones contiene los siguientes mtodos:
pintar()
escribir()
La clase calculadora contiene los siguientes mtodos:
Sumar(4,5)
Restar(3,2)
Multiplicar(4,3)
Multiplicar(4,2)
-
UNIVERSIDAD PRIVADA TELESUP
Nota:
- Algunos mtodos reciben entre los parntesis: datos, los cuales sirven al mtodo
para realizar su tarea. Estos datos son conocidos como argumentos del mtodo.
- Algunos mtodos retornan un dato como resultado de la accin, por ejemplo el
mtodo sumar(4,5) de la clase Calculadora, luego de realizar su accin devolver
un dato de respuesta el cual es el resultado de la suma: 9.
Objeto instanciado
Los objetos instanciados son objetos creados a partir de
una clase. Los objetos instanciados son copias de una
clase. Esta accin de crear un objeto a partir de una clase
se llama instanciar. Todo objeto instanciado hereda
automticamente las propiedades y mtodos de su clase base.
Estados en objetos
Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando
tenemos una Fraccin, la propiedad numerador tomar un valor en concreto, como por
ejemplo 1 y la propiedad denominador puede tomar el valor de 3. El valor concreto
de una propiedad de un objeto se llama estado.
Para acceder a una propiedad o mtodo, debemos especificar el objeto instanciado,
luego colocaremos un punto y posteriormente el nombre de la propiedad o mtodo que
se ha heredado de su clase base. Ejemplo:
obj.apellidos=Torres;
obj.nombres=Edwin;
Ejemplos prcticos
A continuacin, mostraremos algunos ejemplos de clases con sus respectivas
propiedades y mtodos.
-
UNIVERSIDAD PRIVADA TELESUP
Clase reloj
Propiedades: Marca, Modelo, Precio, Tipo
Mtodos: mostrarlaHora(), mostrarlaFecha(), fijarAlarma(),
iniciarCronometro()
Clase triangulo
Propiedades: Color, TipodeBorde, TipodeTriangulo
Mtodos: calcularArea(), calcularSemiPermetro()
Clase BoletadeNota
Propiedades: NroBoleta, FechadeEmision, Apellidos, Nombres
Mtodos: calcularPromedioporAsignatura(), calcularPromedioPonderado().
Con el siguiente grfico, puedes tener un resumen de lo tratado en la presente unidad:
-
UNIVERSIDAD PRIVADA TELESUP
Programacin orientada a objetos en java
Creacin de una clase en Java:
Click Derecho sobre el paquete: New / Java Class
public class Calculadora {
public static void main(String args[])
{
}
} //Fin de la clase
Atributos o propiedades de la clase
Se debern crear a nivel de la clase (debajo de public class) y cada una corresponder
a un tipo de dato.
Ejemplo: La clase con sus propiedades
public class Calculadora {
// DEFINICION DE PROPIEDADES
public String marca;
public double precio;
public String modelo;
} //Fin de la clase
-
UNIVERSIDAD PRIVADA TELESUP
Mtodos de la clase
Se debern crear dentro de la clase, cada mtodo devuelve un tipo de dato como
resultado final (el cual puede ser int, double, String, boolean, etc), de no ser as el tipo
de dato devuelto es void. Los mtodos usan parntesis para recibir algunos datos
(argumentos) desde el exterior.
Ejemplo:
public double sumar(double a, double b)
{ double r;
r=a+b;
return r;
}
Ejemplo: La clase con sus Propiedades y mtodos:
public class Calculadora {
// DEFINICION DE PROPIEDADES
public String marca;
public double precio; public String modelo;
public double sumar(double a, double b) { double r;
r=a+b; return r; //Retorna el resultado }
public double restar(double a, double b)
{ double r; r=a-b; return r;
}
Argumentos de Entrada Dato que devuelve
Nombre del mtodo
-
UNIVERSIDAD PRIVADA TELESUP
public double multiplicar(double a, double b) { double r;
r=a*b; return r; }
public double dividir(double a, double b) {double r;
if(b!=0) { r=a/b; }
else {System.out.println("Resultado no determinado en N"); }
return r; }
public double dimetuprecio() { return precio; }
} //Fin de la clase
Mtodos constructores
Un mtodo constructor es un mtodo especial dentro de la clase, que lleva el nombre
de la misma clase. Pueden existir uno o varios mtodos constructores. Su funcin es
de permitir el instanciamiento de objetos y al mismo tiempo introducir estados (datos) a
todas o a algunas las propiedades del objeto instanciado.
Ejemplo: La misma clase anterior con 3 Mtodos Constructores
Nota: Si una clase posee varios mtodos constructores, significa que tiene varias
formas de instanciar un objeto.
public class Calculadora {
// DEFINICION DE PROPIEDADES
public String marca;
public double precio;
public String modelo;
public double sumar(double a, double b) { double r;
r=a+b; return r; //Retorna el resultado }
-
UNIVERSIDAD PRIVADA TELESUP
public double restar(double a, double b) { double r;
r=a-b; return r; }
public double multiplicar(double a, double b) { double r; r=a*b;
return r; }
public double dividir(double a, double b) { double r;
if(b!=0) { r=a/b; }
else { System.out.println("Resultado no determinado en N"); }
return r; }
public double dimetuprecio() { return precio; }
// EL METODO CONSTRUCTOR 1 // Permite el instanciamiento con el ingreso de los estados solo a 2 de
// las propiedades del objeto instanciado public Calculadora(String ma, double p) { marca=ma;
precio=p; }
// EL METODO CONSTRUCTOR 2 - Permite el instanciamiento con el ingreso de los // estados solo a 3 de las propiedades del objeto
// instanciado public Calculadora(String ma, double p, String mo) {
marca=ma; precio=p; modelo=mo;
}
// EL METODO CONSTRUCTOR 3 - Permite solo el instanciamiento
public Calculadora() {
}
} //Fin de la clase
-
UNIVERSIDAD PRIVADA TELESUP
El mtodo esttico main
Este mtodo es el Mtodo principal de la clase, es aquel que es invocado cuando
ejecutamos la clase, si una clase no cuenta con el mtodo main, es imposible ejecutar
la clase.
Instanciamiento de la clase
Tal como vimos durante la semana anterior, instanciar significar crear un objeto a partir
de una clase base, recordemos tambin que al instanciar un objeto, este hereda
automticamente propiedades y mtodos de su clase.
public class Calculadora {
// DEFINICION DE PROPIEDADES
public String marca; public double precio;
public String modelo; public double sumar(double a, double b)
{ double r; r=a+b; return r; //Retorna el resultado
}
public double restar(double a, double b) { double r; r=a-b;
return r; }
public double multiplicar(double a, double b) { double r; r=a*b;
return r; }
public double dividir(double a, double b) {double r=0;
if(b!=0) { r=a/b; } else
{System.out.println("Resultado no determinado en N"); }
return r; }
-
UNIVERSIDAD PRIVADA TELESUP
public double dimetuprecio()
{ return precio; }
// EL METODO CONSTRUCTOR 1
// Permite el ingreso de los estados solo a 2 de
// las propiedades del objeto instanciado
public Calculadora(String ma,double p) {
marca=ma;
precio=p;
}
// EL METODO CONSTRUCTOR 2 - Permite el ingreso de los
// estados solo a 3 de las propiedades del objeto
// instanciado
public Calculadora(String ma,double p, String mo) {
marca=ma;
precio=p;
modelo=mo;
}
// EL METODO CONSTRUCTOR 3 - Permite solo el
// instanciamiento
public Calculadora() {
}
public static void main(String args[])
{
//Creacin de diferentes objetos instanciados
//Se utilizar para cada instanciamiento a un mtodo constructor diferente
//Puede utilizarse cualquier mtodo constructor para la instancia
Calculadora c1=new Calculadora("CASIO",25.45); //Usa el constructor 1
Calculadora c2=new Calculadora("CITIZEN",32.99,"RS23"); //Usa el constructor 2
Calculadora c3=new Calculadora();
//Usa el constructor 3
//Usando la propiedades y mtodos del 1er. obj. instanciado
System.out.println("La marca de la calculadora 1 es : "+ c1.marca);
System.out.println("La calculadora 1 suma 12+34 : "+ c1.sumar(12,34));
System.out.println("La calculadora 1 resta 12-34 : "+ c1.restar(12,34));
System.out.println("La calculadora 1 multiplica 12*34 : "+ c1.multiplicar(12,34));
System.out.println("La calculadora 1 divide 12/34 : "+ c1.dividir(12,34));
-
UNIVERSIDAD PRIVADA TELESUP
//Usando la propiedades y mtodos del 2do. obj. instanciado
System.out.println("Accedemos al precio de la calculadora 2 : "+ c2.precio);
System.out.println("La calculadora 2 suma 2+-5 : "+ c2.sumar(2,-5));
System.out.println("La calculadora 2 nos dice su precio : "+ c2.dimetuprecio());
//Usando la propiedades y mtodos del 3er. obj. instanciado
c3.marca="Panasonic";
c3.precio=29.99;
c3.modelo="RX123";
System.out.println("Accedemos al precio de la calculadora 3 : "+ c3.precio);
System.out.println("La calculadora 3 suma 10+32 : "+ c3.sumar(10,32));
System.out.println("La calculadora 3 nos dice su precio : "+ c3.dimetuprecio());
}
} //Fin de la clase
Invocacin de una clase desde otros paquetes
Qu es una Paquete? Es una carpeta de java, dentro del cual podemos almacenar
muchas clases, los paquetes en Java sirven para organizar nuestras clases, cada IDE
tiene una forma distinta de crear paquetes.
Cuando una clase es creada dentro de un paquete, debe llevar en la primera lnea: el
nombre del paquete.
package Ejemplo1; //Nombre del paquete
public class Calculadora {
.
.
.
}
Paquete 2
Paquete 1
Proyecto Aqu tenemos dos paquetes,
dentro de cada paquete
tenemos una clase.
Aqu va el contenido de la
clase Calculadora
-
UNIVERSIDAD PRIVADA TELESUP
Clase Anexo, creada en otro paquete
package Ejemplo2; //Nombre del paquete donde
se encuentra la clase
import Ejemplo1.Calculadora; //Debe importarse la clase
que est en otro paquete para que sea reconocida
public class Anexo {
public static void main(String args[])
{
//Creacin de los objetos instanciados
Calculadora c5=new Calculadora("SANSUNG",25.45); //Usa el constructor 1
System.out.println("Multiplicando en la Calculadora 5: "+ c5.multiplicar(4,9));
}
}
Creacin de variables y mtodos estticos
Variables Estticas: Son aquellas variables que se declaran a nivel de la clase, se
diferencian de las propiedades, porque para acceder a ellas no se requiere de una
instancia, se puede acceder a estas variables directamente a travs del nombre de la
clase. Las variables estticas conservan un mismo valor para toda la clase y no
cuentan con estados (datos) diferentes en cada objeto instanciado.
Ejemplo del uso de variables estticas en la Clase
Calculadora: En este ejemplo se estn creando dos
variables estticas: total: Variable utilizada para
acumular el precio de cada uno de los objetos
instanciados
cuenta : Variable utilizada para contar la cantidad de
objetos instanciados
Se usan las variables estticas en cada una de los mtodos constructores, para que
de esta forma se acumule o cuente, cada vez que se produce una instancia.
package Ejemplo1; //Nombre del paquete
public class Calculadora {
-
UNIVERSIDAD PRIVADA TELESUP
// DEFINICION DE PROPIEDADES
public String marca;
public double precio;
public String modelo;
//DECLARACION DE VARIABLES ESTATICAS : mbito en toda la clase
// comparten el mismo valor para todos los obj. Instanciados
//son como si fueran variables globales
public static double total;
public static double cuenta;
public double sumar(double a, double b)
{ double r;
r=a+b;
return r; //Retorna el resultado
}
public double restar(double a, double b)
{ double r;
r=a-b;
return r;
}
public double multiplicar(double a, double b)
{ double r;
r=a*b;
return r;
}
public double dividir(double a, double b)
{double r=0;
if(b!=0)
{ r=a/b; }
else
{System.out.println("Resultado no determinado en N");
}
return r;
}
public double dimetuprecio()
{ return precio; }
-
UNIVERSIDAD PRIVADA TELESUP
// EL METODO CONSTRUCTOR 1
// Permite el ingreso de los estados solo a 2 de
// las propiedades del objeto instanciado
//Este mtodo ocurrir al mtodo de la instancia
public Calculadora(String ma,double p) {
marca=ma;
precio=p;
total+=precio; // Es un acumulador, (es variable esttica, su valor se mantiene en toda la clase)
cuenta++; // Es un contador, (es variable esttica, su valor se mantiene en toda la clase)
}
// EL METODO CONSTRUCTOR 2 - Permite el ingreso de
los
// estados solo a 3 de las propiedades del objeto
// instanciado
//Este mtodo ocurrir al mtodo de la instancia
public Calculadora(String ma,double p, String mo) {
marca=ma;
precio=p;
modelo=mo;
total+=precio; // Es un acumulador, (es variable esttica, su valor se mantiene en toda la clase)
cuenta++; // Es un contador, (es variable esttica, su valor se mantiene en toda la clase)
}
// EL METODO CONSTRUCTOR 3 - Permite solo el
// instanciamiento
//Este mtodo ocurrir al mtodo de la instancia
public Calculadora() {
total+=precio; // Es un acumulador, (es variable esttica, su valor se mantiene en toda la clase)
cuenta++; // Es un contador, (es variable esttica, su valor se mantiene en toda la clase)
}
public static void main(String args[])
{
-
UNIVERSIDAD PRIVADA TELESUP
//Creacin de los objetos instanciados
//En cada instancia est invocndose a los mtodos constructores
Calculadora c1=new Calculadora("CASIO",25.45); //Usa el constructor 1
Calculadora c2=new Calculadora("CITIZEN",32.99,"RS23"); //Usa el constructor 2
Calculadora c3=new Calculadora(); //Usa el constructor 3
//Mostramos el valor guardado en cada una de las variables estticas
System.out.println("Totall de los 3 precios de las calculadoras : "+ Calculadora.total);
System.out.println("Cantidad de calculadoras : "+ Calculadora.cuenta);
}
} //Fin de la clase
Mtodos Estticos: Son aquellos mtodos que pertenecen directamente a la clase y
que para acceder a ellos no se requiere de una instancia, se puede acceder a estos
mtodos directamente a travs del nombre de la clase.
Ejemplo del uso de mtodos estticos en la Clase Calculadora:
En este ejemplo se estn creando dos mtodos estticos:
totalizar() : Mtodo utilizado para devolver la cantidad acumulada de todos los precios
promediar() : Mtodo utilizado para promediar todos los precios de los objetos
instanciados
package Ejemplo1; //Nombre del paquete
public class Calculadora {
// DEFINICION DE PROPIEDADES
public String marca;
public double precio;
public String modelo;
//DECLARACION DE VARIABLES ESTATICAS : mbito en toda la clase
// comparten el mismo valor para todos los obj. instanciados
public static double total;
public static double cuenta;
-
UNIVERSIDAD PRIVADA TELESUP
//CREACIN DEL METODO ESTATICO
public static double totalizar() {
return total;
}
//CREACIN DEL METODO ESTATICO
public static double promediar() {
double p;
p=total/cuenta;
return p;
}
public double sumar(double a, double b)
{ double r;
r=a+b;
return r; //Retorna el resultado
}
public double restar(double a, double b)
{ double r;
r=a-b;
return r;
}
public double multiplicar(double a, double b)
{ double r;
r=a*b;
return r;
}
-
UNIVERSIDAD PRIVADA TELESUP
public double dividir(double a, double b)
{double r=0;
if(b!=0)
{ r=a/b; }
else
{System.out.println("Resultado no determinado en N");
}
return r;
}
public double dimetuprecio()
{ return precio; }
// EL METODO CONSTRUCTOR 1
// Permite el ingreso de los estados solo a 2 de
// las propiedades del objeto instanciado
public Calculadora(String ma,double p) {
marca=ma;
precio=p;
total+=precio; // Es un acumulador, es igual que decir total=precio+tota l
cuenta++; / / Es un contador, es igual que decir cuenta=cuenta+1
}
// EL METODO CONSTRUCTOR 2 - Permite el ingreso de los
// estados solo a 3 de las propiedades del objeto
// instanciado
public Calculadora(String ma,double p, String mo) {
marca=ma;
precio=p;
modelo=mo;
total+=precio; // Es un acumulador, es igual que decir total=precio+tota l
cuenta++; / / Es un contador, es igual que decir cuenta=cuenta+1
}
-
UNIVERSIDAD PRIVADA TELESUP
// EL METODO CONSTRUCTOR 3 - Permite solo el
// instanciamiento
public Calculadora() {
total+=precio; // Es un acumulador, es igual que decir total=precio+total
cuenta++; // Es un contador, es igual que decir cuenta=cuenta+1
}
public static void main(String args[])
{
//Creacin de los objetos instanciados
Calculadora c1=new Calculadora("CASIO",25.45); //Usa el constructor 1
Calculadora c2=new Calculadora("CITIZEN",32.99,"RS23"); //Usa el constructor 2
Calculadora c3=new Calculadora(); //Usa el constructor 3
//INVOCACION DE LOS METODOS ESTATICOS
System.out.println("El total del costo de las tres calculadoras es : " + Calculadora.totalizar());
System.out.println("El promedio del costo de las tres calculadoras es : " + Calculadora.promediar());
}
} //Fin de la clase
Uso de constantes:
Las constantes son tambin variables estticas que al ser declaradas reciben un valor,
y luego de esto, no permiten que dicho valor sea modificado en tiempo de ejecucin.
Ejemplo:
public static final double IGV=0.19;
public static final String RAZONSOCIAL=TecniSystem SRL;
-
UNIVERSIDAD PRIVADA TELESUP
Aplicando la POO en JAVA
A continuacin explicaremos a travs de ejemplos 5 maneras diferentes de
plantear un mismo caso en la programacin orientada a objetos.
a. Primera Forma: Usando mtodos con argumentos de
entrada
b. Segunda Forma: Usando mtodos sin
argumentos de entrada
c. Tercera Forma: Usando mtodos sin retorno
d. Cuarta Forma: Usando un solo mtodo en la clase.
e. Quinta Forma: Usando mtodos estticos
f. Sexta Forma: Usando mtodos y variables estticas
Desarrollo de una caso prctico
Enunciado: Calcular el promedio de un alumno y determinar su situacin acadmica.
1RA FORMA: Usando mtodos con argumentos de entrada.
Lgica de Negocios Paquete model
package model;
public class Alumno {
//Propiedades de la clase
public String nombres;
public String apellidos;
public String direccion;
//Metodos de la clase : Usamos argumentos de entrada para el proceso
public double calcularPromedio(double pc1,
double ep, double pc2, double ptp, double ef){
return (pc1+2*ep+2*pc2+2*ptp+3*ef)/10;
}
public String determinarSituacionAcad(double p){
String sa="";
if (p>=10.5) {
sa="Aprobado";
} else {
sa="Desaprobado";
}
return sa;
}
//Mtodo constructor
public Alumno(){
}
}
-
UNIVERSIDAD PRIVADA TELESUP
Lgica de Presentacin Carpeta View
Demo 1
Demo 1
2da forma: Usando mtodos sin argumentos de entrada
Lgica de Negocios Paquete model
package model;
public class Alumno {
//Propiedades de la clase
public String nombres;
public String apellidos;
public String direccion;
//Propiedades de entrada de datos
public double pc1,ep,pc2,ptp,ef;
public double p;
//Mtodos de la clase, ya no usamos argumentos de entrada, en su lugar
-
UNIVERSIDAD PRIVADA TELESUP
//hemos creado propiedades de entrada
public double calcularPromedio(){ return (pc1+2*ep+2*pc2+2*ptp+3*ef)/10; }
public String determinarSituacionAcad(){
String sa=""; if (p>=10.5) { sa="Aprobado";
} else { sa="Desaprobado";
} return sa; }
//Metodo constructor public Alumno(){
}
}
Lgica de Presentacin Carpeta View
Demo 2 Demo2
-
UNIVERSIDAD PRIVADA TELESUP
3ra forma: Usando mtodos sin valor de retorno
Lgica de Negocios Paquete model
package model; public class Alumno { //Propiedades de la clase public String nombres; public String apellidos; public String direccion; //Propiedades de entrada de datos public double pc1,ep,pc2,ptp,ef; //propiedad de entrada y salida public double p; //Propiedades de salida public String sa;
//Mtodos sin retorno de respta La respta la guardamos en una propiedad
public void calcularPromedio(){ this.p=(pc1+2*ep+2*pc2+2*ptp+3*ef)/10; } public void determinarSituacionAcad(){ if (this.p>=10.5) { this.sa="Aprobado"; } else { this.sa="Desaprobado"; } } //Metodo constructor public Alumno(){ } }
Lgica de Presentacin Carpeta View
Demo 3
Demo3
-
UNIVERSIDAD PRIVADA TELESUP
//Entrada de datos (Directo a las propiedades)
obj1.pc1=5;
obj1.ep=12;
obj1.pc2=14;
obj1.ptp=8;
obj1.ef=7;
//Invocacin a los mtodos
obj1.calcularPromedio();//La rpta se guarda internamente en una propiedad
obj1.determinarSituacionAcad();
//Mostrar resultados
out.println("Promedio final "+obj1.p+""); //Mostramos la propiedad
out.println("Situacion academica "+obj1.sa);
%>
4ta forma: Usando un solo mtodo en la clase. Fusionamos todos los mtodos. Las
diversas respuestas se guardan en propiedades.
Lgica de Negocios Paquete model
package model; public class Alumno {
//Propiedades de la clase public String nombres; public String apellidos; public String direccion;
//Propiedades de entrada de datos
public double pc1,ep,pc2,ptp,ef; //propiedad de entrada y salida
public double p; //Propiedades de salida
public String sa;
//Metodos de la clase public void procesar(){
this.p=(pc1+2*ep+2*pc2+2*ptp+3*ef)/10;
if (this.p>=10.5) { this.sa="Aprobado";
} else { this.sa="Desaprobado";
} }
//Metodo constructor public Alumno(){
} }
-
UNIVERSIDAD PRIVADA TELESUP
Lgica de Presentacin Carpeta View
Demo 3
Demo3
5ta forma: usando mtodos estticos.
Mtodo Esttico: Es un mtodo que se declara a nivel de la clase, no requiere de una
instancia para ser invocado, los mtodos estticos pueden ser invocados a partir del
nombre de la clase.
.
Lgica de Negocios Paquete model
package model;
public class Alumno {
//Propiedades de la clase
public String nombres;
public String apellidos;
public String direccion;
-
UNIVERSIDAD PRIVADA TELESUP
//Metodos de la clase
public static double calcularPromedio(double pc1,
double ep,double pc2,
double ptp,double ef){
return (pc1+2*ep+2*pc2+2*ptp+3*ef)/10;
}
public static String determinarSituacionAcad(double p){
String sa="";
if (p>=10.5) {
sa="Aprobado";
} else {
sa="Desaprobado";
}
return sa;
}
//Metodo constructor
public Alumno(){
}
}
Lgica de Presentacin Carpeta View
Demo 5
Demo5
-
UNIVERSIDAD PRIVADA TELESUP
double pc2=14;
double ptp=8;
double ef=7;
//Invocacin a los mtodos Desde el nombre de la clase
//No se requiere instancia
double p=Alumno.calcularPromedio(pc1,ep,pc2,ptp,ef);
String sa=Alumno.determinarSituacionAcad(p);
//Mostrar resultados
out.println("Promedio final "+p+"");
out.println("Situacion academica "+sa);
%>
6ta forma: usando mtodos y variables estticos.
Variable Esttica: Este tipo de variables son variables declaradas a nivel de una
clase, el valor de esta se mantiene a nivel de la clase, a diferencia de una propiedad
cuyo valor est asociado a un objeto instanciado, en cada objeto instanciado, la misma
propiedad tiene valores diferentes.
Lgica de Negocios Paquete model
package model;
public class Alumno {
//Propiedades de la clase
public String nombres;
public String apellidos;
public String direccion;
//variables estaticas de entrada
public static double pc1,ep,pc2,ptp,ef;
public static double p;
//Metodos de la clase
public static double calcularPromedio(){
return (pc1+2*ep+2*pc2+2*ptp+3*ef)/10;
}
public static String determinarSituacionAcad(){
-
UNIVERSIDAD PRIVADA TELESUP
String sa="";
if (p>=10.5) {
sa="Aprobado";
} else {
sa="Desaprobado";
}
return sa;
}
//Metodo constructor
public Alumno(){
}
}
Lgica de Presentacin Carpeta View
Demo 6
Demo6
-
UNIVERSIDAD PRIVADA TELESUP
TEMA 2
Reconocer las utilidades adecuadas de la herencia y polimorfismo.
Competencia:
Herencia y
Polimorfismo
-
UNIVERSIDAD PRIVADA TELESUP
Tema 02: Herencia y Polimorfismo
HERENCIA DE CLASES
La herencia permite que se pueda definir nuevas clases basadas en clases existentes,
lo cual facilita re-utilizar cdigo previamente
desarrollado. Si una clase deriva de otra (extends),
sta hereda todas sus propiedades y mtodos. La
clase derivada puede aadir nuevas variables y
mtodos y/o redefinir las variables y mtodos
heredados.
Java permite mltiples niveles de herencia, No obstante, no permite que una clase
derive de varias (no es posible la herencia mltiple). Se pueden crear tantas clases
derivadas de una misma clase como se quiera. Resumen: Creamos una nueva clase a
partir de la Clase Padre. La Clase Hijo hereda mtodos y Atributos de la Clase Padre.
Adicionalmente Podemos aadir otros mtodos o atributos a la clase hijo.
PPaaddrree
La Clase Hijo Extiende de la
Clase Padre
HHiijjoo
-
UNIVERSIDAD PRIVADA TELESUP
Para indicar que una clase deriva de otra se utiliza
la palabra extends, como por ejemplo:
public class Alumno extends Persona
{ ... }
En el ejemplo anterior, se est creando la clase Alumno la
cual extiende (hereda) de la clase Persona. Por tanto la
clase Alumno habr heredado las propiedades y mtodos de
la clase Persona.
Todas las clases de Java creadas por el programador tienen una super-clase.
Cuando no se indica explcitamente una super-clase con la palabra extends, la clase
deriva de java.lang.Object, que es la clase raz de toda la jerarqua de clases de
Java. Como consecuencia, todas las clases tienen algunos mtodos que han
heredado de Object.
Ventajas y precaucaciones de su uso La principal ventaja del uso de herencia de clases es la reutilizacin de los mtodos de
clases base, lo cual impide que se repita el mismo cdigo muchas veces dentro del
desarrollo de una aplicacin, y por otro lado favorece el mantenimiento de los
programas, porque cualquier cambio que se realice en una clase base inmediatamente
replica para todas las subclases que extienden de esta, lo cual ahorra el tiempo a la
labor de la programacin.
Al disear nuestras clases es fundamental
que primero se disee adecuadamente un
modelo inicial, utilizando metodologas
basadas en el anlisis y diseo de sistemas
orientado a objetos, de no ser as nuestro
diseo de clases con sus respectivas
herencias podra ser inconsistente e
inarticulado.
-
UNIVERSIDAD PRIVADA TELESUP
Ejercicio Prctico:
Crear un conjunto de clases que represente los procesos en el sistema de personal,
luego instancie la clase Alumno presencial e invoque los mtodos y muestre las
respuestas conseguidas
El siguiente diagrama ilustra el modelo de clases que desarrollaremos en la lgica de
negocios.
Lgica de negocios
mbitos de Alcance
Es el mecanismo que permite definir el tipo de nivel de acceso a la informacin de los
objetos, (clases, mtodos y propiedades).
En Java los niveles de encapsulamiento estn dados de la siguiente forma:
public, private, protected y package. De esta forma se puede controlar el acceso
hacia las clases, mtodos y propiedades y evitar un uso inadecuado.
-
UNIVERSIDAD PRIVADA TELESUP
Veamos cmo funcionan estos diversos
niveles de acceso en el siguiente caso
prctico:
1. Creamos dos paquetes: Paquete m y paquete n
2. Dentro del paquete m, tenemos dos clases; La
clase A y la Clase B y
3. En el paquete n, tenemos tambin dos clases: La
clase C (es una clase que extiende de la clase B), y la clase D.
Ahora, ubiqumonos en la clase B, y veamos en el siguiente cuadro, los
diferentes tipos de acceso de esta clase hacia las dems clases del
mismo paquete y de los dems.
Concepto y niveles de acceso en java:
-
UNIVERSIDAD PRIVADA TELESUP
Explicacin:
Si el nivel de encapsulamiento para la clase B es
public, esta clase ser accesible a todas las
clases de su propio paquete y de los dems.
Si el nivel de encapsulamiento para la clase B es
private, esta clase no ser accesible para ninguna
otra clase, ni del mismo paquete, ni de otros. Si el
nivel de encapsulamiento para la clase B es
protected, esta clase ser accesible a todas las clases de su propio paquete y
solo a las clases heredadas de otros paquetes.
Si el nivel de encapsulamiento para la clase B es package o default, esta clase
ser accesible a todas las clases de su propio paquete nicamente.
POLIMORFISMO:
Las interfaces
En Java una interfaz es un prototipo de clase que define la funcionalidad de un objeto
pero no lo implementa.
Caractersticas de una interfaz:
Los mtodos de una interfaz deben ser
abstractos.
No representa a un objeto sino a un Grupo de
Objetos. Por lo tanto no usan constructores, ni
mtodos estticos, ni atributos de Objeto.
(Excepto variables constantes de tipo FINAL)
En este nivel no podemos garantizar como lo
hace, pero si sabemos qu hace.
Interfaz en Java
Se debe reemplazar la palabra class por interface.
-
UNIVERSIDAD PRIVADA TELESUP
Ejemplo: A continuacin estamos creando una interfaz de nombre Reproducible.
public interface Reproducible
{
// Aqu deben indicarse los mtodos abstractos
// con los que se trabajarn
}
Mtodos abstractos
Son utilizados dentro de una interfaz, solo muestran la funcionalidad del objeto, pero
no incluyen la lgica del procedimiento (no hacen nada por ellos mismos).
Ejemplo:
public void play();
Herencia en interfaces
Para darle un uso prctico a la interfaz: Debemos crear una clase que herede de
dicha interfaz, en la cual se detallar la funcionalidad de los mtodos declarados en
la interfaz.
Cmo realizar dicha herencia?
public class MP3 implements Reproducible
{
// Aqu debe implementarse el mtodo play, al cual
// se hizo mencin de manera abstracta en la
interfaz
}
Este es un mtodo abstracto, no usa llaves
(No tiene implementacin)
No tienen definido el Cmo, pero si el Qu
-
UNIVERSIDAD PRIVADA TELESUP
Ventaja del uso de las interfaces
Se utiliza las interfaces cuando en el desarrollo de una aplicacin, an no
sabemos la lgica de los mtodos, pero si conocemos cuales sern las
funcionalidades importantes.
Nos permite ocultar el cdigo fuente de los mtodos de nuestras clases, puesto
que solo al cliente tendramos que suministrarle la interfaz y su ejecutable,
mientras que la lgica de nuestros mtodos lo almacenaramos en un servidor de
acceso restringido.
Una clase puede implementar ms de
una interface, representando una forma
alternativa de la herencia mltiple. A su
vez, una interface puede derivar de otra
o incluso de varias interfaces, en cuyo
caso incorpora todos los mtodos de las
interfaces de las que deriva.
-
UNIVERSIDAD PRIVADA TELESUP
TEMA 3
Describir objetivamente las estructuras de datos dinmicos.
Competencia:
Estructuras de Datos
Dinmicas
-
UNIVERSIDAD PRIVADA TELESUP
Tema 03: Estructuras de Datos Dinmicas (Java Collection Framework).
DEFINICIN Y CARACTERSTICAS
Resumiendo, son aquellas cuyo tamao
(longitud, nmero de elementos...) vara en
tiempo de ejecucin. Las ms famosas son:
Listas simplemente enlazadas (con y sin
cabecera), Listas doblemente enlazadas (con
y sin cabecera), Pilas, Colas, rboles y
Grafos.
Su tamao y forma es variable (o puede serlo) a lo largo de un programa, por lo que se
crean y destruyen en tiempo de ejecucin. Esto permite dimensionar la estructura de
datos de una forma precisa: se va asignando memoria en tiempo de ejecucin segn
se va necesitando.
En java tenemos muchas clases que manejan diferentes estructuras dinmicas,
entre las que podemos mencionar:
Vector
Enumeration
HashTable
Stack
Set
List
ArrayList
Dictonary
Collection
SortedSet
LinkedList
-
UNIVERSIDAD PRIVADA TELESUP
HashTables
Es una estructura de datos dinmica que almacena un
grupo de objetos, cada elemento almacenado en el
HashTable debe contar un key (Cdigo nico que
identifique de manera singular a dicho elemento dentro
de la estructura). Esta estructura es de tipo LIFO (Last
Input First Output), es decir el ltimo en entrar es el
primero en salir, al momento de almacenarse dentro de
la estructura.
Crear un HashTable:
HashTable lista1=new HashTable(); //Crea una HashTable con longitud 0
HashTable lista2=new HashTable(10); //Crea un HashTable con longitud inicial 10
HashTable lista3=new HashTable(100);//Crea un Hashtable con longitud inicial 100
Mtodos de la clase HashTable:
-
UNIVERSIDAD PRIVADA TELESUP
Nota: Para trabajar con la estructura Hashtable es necesario importar lo siguiente:
Caso Practico 1
Realizar un programa demostrativo en consola en muestre como crear y
visualizar un Hashtable.
package dinamicas2;
import java.util.*;
public class Demo {
public static void main(String[] args) {
//Crear un hashTable
Hashtable lista=new Hashtable();
//Almacenar datos dentro del Hashtable, se debe colocar un key (llave)
lista.put(1,20.0);
lista.put(2,12.5);
lista.put(3,10.0);
lista.put(4,14.3);
//recorrer los elementos
Enumeration e=lista.elements();
Double dato=null;
while(e.hasMoreElements()){
dato=(Double) e.nextElement();
System.out.println(dato.doubleValue());
}
//Crear un hashTable con datos de tipo Character
Hashtable lista2=new Hashtable();
lista2.put(1,'c');
lista2.put(2,'a');
lista2.put(3,'s');
lista2.put(4,'a');
//recorrer los elementos
Enumeration e2=lista2.elements();
Character dato2=null;
while(e2.hasMoreElements()){
dato2=(Character) e2.nextElement();
System.out.println(dato2.charValue());
}
-
UNIVERSIDAD PRIVADA TELESUP
//Crear un hashTable con distintos tipos de datos
Integer sueldo=new Integer(600);
String apellidos="Alva";
Double descuento=new Double(58.25);
Hashtable lista3=new Hashtable();
lista3.put("1",apellidos); lista3.put("2",sueldo);
lista3.put("3",descuento);
Enumeration e3=lista3.element s();
Object obj=null;
while(e3.hasMoreElements()){
obj=e3.nextElement();
System.out.println(obj.toString());
}
}
}
Caso Prctico 2: Realizar una aplicacin visual que nos permita realizar
operaciones de edicin con los elementos de un Hashtable.
-
UNIVERSIDAD PRIVADA TELESUP
Declaracin global a nivel de la clase
public class frmIngreso extends javax.swing.JFrame {
Hashtable lista=new Hashtable();
int c=0;
Codificacin de la caja de texto txtape (evento actionperformanced)
private void txtapeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
c++;
String ape=txtape.getText();
txtape.setText(ape);
lista.put(String.valueOf(c),ape);
txtape.setText("");
txtape.requestFocus();
}
Codificacin del botn Mostrar
private void btnmostrarActionPerformed(java.awt.event.ActionEvent evt) {
Enumeration e = lista.elements();
Enumeration e2=lista.keys();
String cad = "";
String l="";
while( e2.hasMoreElements() && e.hasMoreElements() ){
c++;
cad+=(String)e.nextElement()+ "\t "+(String)e2.nextElement()+"\n";
txtlista1.setText(cad);
}
}
Codificacin del botn Eliminar
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String cod;
cod=JOptionPane.showInputDialog("Ingrese codigo","0");
lista.remove(cod);
volveragenerar();
btnmostrarActionPerformed(evt);
}
-
UNIVERSIDAD PRIVADA TELESUP
Codificacin del botn Modificar
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
String cod;
cod=JOptionPane.showInputDialog("Ingrese codigo","0");
String dato=JOptionPane.showInputDialog("Ingrese nuevo dato");
lista.put(cod,dato);
btnmostrarActionPerformed(evt);
}
Codificacin del botn Buscar
private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String cod;
cod=JOptionPane.showInputDialog("Ingrese codigo ");
if(lista.containsKey(cod)){
JOptionPane.showMessageDialog(null, "El dato fue encontrado");
}
else{
JOptionPane.showMessageDialog(null, "El dato no fue encontrado");
}
}
La Clase Vector
La clase Vector permite crear un arreglo dinmico que almacena objetos.
En un objeto de tipo vector se almacenan objetos nicamente (es decir, variables de tipos
de datos no primitivos o de clases bases).
Para almacenar valores de tipo de datos primitivos, se debe utilizar un arreglo esttico o
hacer casting de los valores a su correspondiente representacin de objetos.
Esta clase tiene muchos mtodos implementados que facilitan el trabajo con arreglos:
bsquedas, eliminacin, insercin, expansin entre otras.
Un objeto de tipo vector, se puede redimensionar en tiempo de ejecucin, si las celdas que
definen se han ocupado.
Para ello, existe un atributo o propiedad que le indica al compilar, en cuntas posiciones se
puede redimensionar el vector, cuando ya haya ocupado su capacidad mxima.
-
UNIVERSIDAD PRIVADA TELESUP
Creacin de un Vector:
Vector v=new Vector (20,5);
Crea un vector con un tamao inicial de 20 elementos y
con la posibilidad de incrementar su tamao de 5 en 5.
Vector v=new Vector (20);
Crea un vector con un tamao inicial de 20 elementos y
con la posibilidad de incrementar su tamao de 20 en 20.
Vector v=new Vector ();
Crea un vector con un tamao inicial de 10 elementos y con la posibilidad de incrementar su
tamao de 10 en 10.
Mtodos de la clase Vector
Vector( )
Constructor: crea un vector inicialmente vaco
void addElement(Object obj)
Inserta el objeto especificado al final del vector
void setElementAt(Object obj, int ndice)
Inserta el objeto especificado en el vector en la posicin especficada
Object remove(int ndice)
Elimina el objeto que se encuentra en la posicin especificada
boolean removeElement(Object obj)
Elimina la primera ocurrencia del objeto especificado en el vector
void removeElementAt(int ndice)
Elimina el objeto especificado en el ndice del vector
void clear( )
Elimina todos los objetos del vector
boolean contains(Object obj)
Regresa verdadero si el objeto dado pertenece al vector
int indexOf(Object obj)
Retorna el ndice del objeto especificado. Regresa -1 si no fue encontrado el objeto
Object elementAt(int indce)
Regresa el objeto del ndice especficado
boolean isEmpty( )
Regresa verdadero si el vector no contiene elementos
int size( )
Regresa el nmero de elementos en el vector
-
UNIVERSIDAD PRIVADA TELESUP
Recorrer los elementos de un Vector
Utilizando el indice de elemento:
for(int i=0; i
-
UNIVERSIDAD PRIVADA TELESUP
Codificacin del formulario1
Declaracin Global a nivel de Formulario public class frmData extends javax.swing.JFrame {
Vector v=new Vector(1);
Codificacin del botn Grabar private void btngrabarActionPerformed(java.awt.event.ActionEvent evt) {
Alumnos obj=new Alumnos();
//Guardar datos en el objeto
obj.setCodigo(txtcod.getText());
obj.setApellidos(txtape.getText());
obj.setAsignatura(txtasi.getText());
obj.setNota1(Double.parseDouble(txtn1.getText()));
obj.setNota2(Double.parseDouble(txtn2.getText()));
obj.setNota3(Double.parseDouble(txtn3.getText()));
obj.calcularPromedio();
obj.hallarSitAcad();
v.addElement(obj); //Insertarmos al obj dentro del vector
limpiarcajas();
}
Codificacin del botn VerReporte private void btnreporteActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
frmReporte fr=new frmReporte();
fr.setData(v);
fr.show();
}
-
UNIVERSIDAD PRIVADA TELESUP
Mtodo limpiarcajas public void limpiarcajas(){ txtcod.setText("");
txtape.setText(""); txtasi.setText(""); txtn1.setText("");
txtn2.setText(""); txtn3.setText("");
txtcod.requestFocus(); }
Codificacin del formulario2
Declaracin Global (A nivel de Formulario)
Vector cabecera=new Vector(1);
Vector data=new Vector(1);
Codificacin del combo (Evento ItemStateChanged) private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
//Conseguir el valor seleccionado
String sa = (String) jComboBox1.getSelectedItem();
if(sa.equals("Aprobado")){
mostraraprobados();
}
else{
mostrarDesaprobados();
}
}
Mtodo mostraraprobados void mostraraprobados(){
Enumeration e = data.elements();
Vector ndata = new Vector();
Vector nfila = null;
while (e.hasMoreElements()) {
Vector fila = new Vector(1);
fila = (Vector) e.nextElement();
nfila = new Vector();
String pro=fila.elementAt(6).toString();
double pr=Double.parseDouble(pro);
if (pr >= 10.5) {
for (int i = 0; i < fila.size(); i++) {
nfila.addElement(fila.elementAt(i));
} //fin del for que recorre fila
ndata.addElement(nfila);
} //fin del if
} //fin del while que recorre a data
DefaultTableModel dm = new DefaultTableModel(ndata, cabecera);
jTable1.setModel(dm);
}
-
UNIVERSIDAD PRIVADA TELESUP
Mtodo mostrarDesaprobados void mostrarDesaprobados(){
Enumeration e = data.elements();
Vector ndata = new Vector();
Vector nfila = null;
while (e.hasMoreElements()) {
Vector fila = new Vector(1);
fila = (Vector) e.nextElement();
nfila = new Vector();
String pro=fila.elementAt(6).toString();
double pr=Double.parseDouble(pro);
if (pr < 10.5) {
for (int i = 0; i < fila.size(); i++) {
nfila.addElement(fila.elementAt(i));
} //fin del for que recorre fila
ndata.addElement(nfila);
} //fin del if
} //fin del while que recorre a data
DefaultTableModel dm = new DefaultTableModel(ndata, cabecera);
jTable1.setModel(dm);
}
Mtodo setData void setData(Vector v){
cabecera.addElement("Codigo");
cabecera.addElement("Apellidos");
cabecera.addElement("Asignatura");
cabecera.addElement("Nota1");
cabecera.addElement("Nota2");
cabecera.addElement("Nota3");
cabecera.addElement("Promedio");
cabecera.addElement("Sit Academ");
//recorrer el vector
Enumeration e=v.elements();
Vector fila;
while(e.hasMoreElements()){
Alumnos obj=(Alumnos)e.nextElement();
fila=new Vector(1);
fila.addElement(obj.getCodigo());
fila.addElement(obj.getApellidos());
fila.addElement(obj.getAsignatura());
fila.addElement(obj.getN1());
fila.addElement(obj.getN2());
fila.addElement(obj.getN3());
fila.addElement(obj.prom);
fila.addElement(obj.sitacad);
data.addElement(fila);
}
DefaultTableModel dm=new DefaultTableModel(data,cabecera);
jTable1.setModel(dm);
}
-
UNIVERSIDAD PRIVADA TELESUP
La Clase ArrayList
Las aplicaciones frecuentemente necesitan
almacenar un grupo de datos en un slo objeto.
Los arrays sirven bien para este propsito, pero
algunas veces necesitamos incrementar o reducir
dinmicamente el nmero de elementos del array,
o hacer que contenga distintos tipos de datos.
Esto es comn entre las aplicaciones como las tiendas online. Un cliente aade una
mercanca a su carro de la compra, y detrs de la escena, los tems son almacenados
y eliminados automticamente. Para esta clase de grupos de datos crecientes y
menguantes, podemos usar la reciente clase ArrayList del paquete java.util.
Creacin de un ArrayList:
ArrayList al=new ArrayList();
Crea un array dinmico con un tamao inicial 0, se va
incrementando o decrementando automticamente.
ArrayList al=new ArrayList(5);
Crea un array dinmico con un tamao inicial 5, se va
incrementando o decrementando automticamente.
Mtodos de la clase ArrayList
-
UNIVERSIDAD PRIVADA TELESUP
Recorrer los elementos de un ArrayList
Utilizando el indice de elemento:
Iterator i=al.iterator();
while(i.hasNext())
{
System.out.print(i.next()+"\t");
}
Caso Prctico:
Realizar una aplicacin Visual Java que realice las principales operaciones de
edicin de datos en un ArrayList.
-
UNIVERSIDAD PRIVADA TELESUP
Codificacin a nivel de Clase (Declaracin Global)
public class frmArrayList extends javax.swing.JFrame {
ArrayList lista=new ArrayList();
Codificacin de la caja de texto txtdato
private void txtdatoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String dato;
dato=txtdato.getText();
lista.add(dato); //Agrega el dato al ArrayList
txtdato.setText(""); //Limpiar la caja
txtdato.requestFocus(); //Enviar el cursor a la caja
visualizar();
}
Codificacin del Mtodo visualizar()
private void visualizar() {
int c = 0;
Iterator i = lista.iterator();
String cad = "";
while (i.hasNext()) {
cad += "[" + c + "]" + " " + i.next() + "\n";
c++;
}
txtlista.setText(cad);
}
Codificacin del botn Modificar private void
btnmodificarActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
String pos=JOptionPane.showInputDialog("Indique la
posicion");
String dato=JOptionPane.showInputDialog("Indique el
dato");
int p=Integer.parseInt(pos);
lista.set(p,dato);
visualizar();
}
-
UNIVERSIDAD PRIVADA TELESUP
Codificacin del botn Eliminar
private void btneliminarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int p=Integer.parseInt(JOptionPane.showInputDialog("Ingrese posicion"));
lista.remove(p);
visualizar();
}
Codificacin del botn Buscar
private void btnbuscarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String dato=JOptionPane.showInputDialog("Ingrese dato a buscar");
if(lista.contains(dato)){
JOptionPane.showMessageDialog(null, "El dato fue encontrado");
}
else {
JOptionPane.showMessageDialog(null, "El dato no fue encontrado");
}
}
Codificacin del botn Ordenar
private void btnordenarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Collections.sort(lista);
visualizar();
}
Codificacin del botn Sortear
private void btnordenar1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Collections.shuffle(lista);
visualizar();
JOptionPane.showMessageDialog(null, "El ganador es: "+lista.get(3));
}
-
UNIVERSIDAD PRIVADA TELESUP
TEMA 4
Analizar el manejo y uso adecuado de las sesiones.
Competencia:
Manejo y Uso de Sesiones
-
UNIVERSIDAD PRIVADA TELESUP
Tema 04: Manejo y Uso de Sesiones
QU ES UNA SESSION WEB?
Es una instancia de trabajo del servidor web que corresponde a un usuario o
cliente que se conecta.
Cundo se da inicio a una sesin web?
Cuando el usuario accede al sitio web a
travs de la URL.
Cuando finaliza una sesin web?
Cuando se abandona el sitio web
Cuando se alcanza un tiempo de inactividad
que es previamente establecido, en este caso
la sesin es automticamente eliminada. Si el usuario siguiera navegando se
creara una nueva sesin.
Se ha cerrado la sesin o reiniciado el servidor.
-
UNIVERSIDAD PRIVADA TELESUP
Variable de Session
Una variable de sesin nos permite almacenar un
dato y mantenerlo disponible para cualquier pgina
de nuestra sesin web. Es comparable a una
variable global que estara disponible para cualquier
pgina de nuestra aplicacin.
Cmo crear una variable de Session?
session.setAttribute("usu",usuario);
Cmo acceder a los datos de una variable de Session?
(desde otra pagina o la misma pgina)
String usuario=;
usuario=(String)session.getAttribute("usu");
Manejo de Excepciones
Durante el desarrollo de nuestros programas se pueden presentar diversos tipos de
errores, los cuales se clasifican de la siguiente forma:
a. Errores de Compilacin: Son aquellos errores que se presentan en el momento de
la compilacin nuestro programa, el compilador informa el nmero de lnea donde
se produjo el error. Este tipo de error se produce generalmente cuando no
cumplimos rigurosamente las reglas de sintaxis del Lenguaje de Programacin.
Algunos IDEs tiene el atributo Intelligent Sense con el cual automticamente
subrayan la lnea de error mientras se escribe el cdigo fuente.
b. Errores de Lgica: Este error se percibe cuando
los resultados emitidos por nuestro programa son
incorrectos e imprecisos, la razn de este tipo de
error se debe al mal planteamiento de la lgica
del programador.
c. Errores en Tiempo de Ejecucin: Este error se
presenta imprevistamente durante el tiempo de
ejecucin (run-time) de nuestro programa, cuando ste no soporta una instruccin,
y como resultado se cuelga o cierra. Estos tipos de errores deben ser controlados
por la misma aplicacin, y no deberan ocasionar que la ejecucin colapse.
-
UNIVERSIDAD PRIVADA TELESUP
Precisamente las excepciones o Exceptions en Java
controlan este ltimo tipo de errores.
Manejo de excepciones
A diferencia de otros lenguajes de programacin
orientados a objetos como C/C++, Java incorpora en el
propio lenguaje la gestin de errores en tiempo de
ejecucin.
Cmo lo hace? Veamos:
Qu es una Exception?
En el lenguaje Java, una Exception es un objeto que se genera automticamente
cuando se produce un error de ejecucin, una excepcin representa al error en s,
contiene informacin del error producido. Algunas excepciones son fatales y provocan
que se deba finalizar la ejecucin del programa. En este caso conviene terminar
ordenadamente y dar un mensaje explicando el tipo de error que se ha producido.
Otras, como por ejemplo, al no encontrar un fichero en el que hay que leer o escribir
algo, pueden ser recuperables. En este caso el programa debe dar al usuario la
oportunidad de corregir el error (indicando una nueva localizacin del fichero no
encontrado).
Excepciones Estndar de Java: Los errores se representan mediante dos tipos de
clases derivadas de la clase Throwable: Error y Exception. La siguiente figura
muestra parcialmente la jerarqua de clases relacionadas con Throwable:
-
UNIVERSIDAD PRIVADA TELESUP
La clase Error est relacionada con errores de compilacin, del sistema o de la
JVM. De ordinario estos errores son irrecuperables y no dependen del
programador ni debe preocuparse de capturarlos y tratarlos.
La clase Exception tiene ms inters. Dentro de ella se puede distinguir muchas
clases derivadas que clasifican los diferentes tipos de errores que se pueden
producir en Java. Ejemplo de algunas Excepciones:
NullPointerException : Exception producida cuando se hace referencia a una
posicin de una estructura de datos que no apunta a ningn dato.
IndexOutBoundException: Exception producida cuando se hace referencia a un
ndice que sobrepasa la longitud de la estructura de datos.
NegativeArraySizeException: Exception que se produce cuando se hace referencia a
un nmero de ndice negativo.
EOFException: Exception que se produce cuando el puntero ha avanzado una
posicin posterior al ltimo registro de una tabla.
Todas las excepciones por heredar de Throwable usan los mtodos siguientes:
1. String getMessage() Extrae el mensaje asociado con la excepcin.
2. String toString() Devuelve un String que describe la excepcin.
3. void printStackTrace() Indica el mtodo donde se lanz la excepcin.
Un buen programa debe gestionar correctamente todas o la mayor parte de los
errores que se pueden producir. Java para este fin utiliza la estructura try catch y
los Exceptions.
Estructura try catch
Cuando en un mtodo se produce una situacin anmala
es necesario lanzar una excepcin, la cual se desarrolla
con la siguiente secuencia:
1. Se crea un objeto Exception de la clase adecuada.
2. Se lanza la excepcin con la sentencia throw seguida del objeto Exception creado.
Esta excepcin deber ser capturada (catch) y gestionada, para este fin Java nos
brinda la estructura try catch.
-
UNIVERSIDAD PRIVADA TELESUP
Ejemplo 1:
try
{
String cad="Universidad Privada Telesup";
int n=0;
String nn=JOptionPane.showInputDialog("Ingrese
la posicin ");
n=Integer.parseInt(nn);
char cc=cad.charAt(n);
JOptionPane.showMessageDialog(null,"El carcter es: "+cc);
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(null,ex.getMessage());
}
Explicacin del ejemplo 1:
La zona del try, incluye al cdigo que est siendo controlado por posibles errores de
ejecucin. La zona del catch es la zona que atrapa al objeto Exception, en el caso de
producirse un error; al producirse el error, se interrumpe la ejecucin de la zona try y el
control del programa se direcciona hacia la zona del try y visualizar un mensaje con
la descripcin del error.
La estructura try catch puede utilizar varios bloques catch,
en los cuales puede atrapar diversos tipos de Exceptions
(errores), estos deben ser colocados desde lo ms
especfico a lo ms genrico. Esto permite personalizar la
accin a realizar segn el tipo de error producido. Veamos
un segundo ejemplo:
-
UNIVERSIDAD PRIVADA TELESUP
Ejemplo 2:
try
{ String cad="Universidad Privada Telesup"; int n=0;
String nn=JOptionPane.showInputDialog("Ingrese la posicin "); n=Integer.parseInt(nn); char cc=cad.charAt(n); JOptionPane.showMessageDialog(null,"El caracter es: "+cc); } catch (StringIndexOutOfBoundsException ex1)
{ JOptionPane.showMessageDialog(null,"Error: La posicin esta fuera del
rango de la cadena."); } catch (NumberFormatException ex2) {
JOptionPane.showMessageDialog(null,"Error: El valor que Ud. ingres no corresponde a un nmero."); } catch (Exception ex) { JOptionPane.showMessageDialog(null,ex.getMessage()); }
} Explicacin del ejemplo 2: En este caso existen 3 bloques catch, cada uno de ellos
atrapa un diferente tipo de error, segn sea el caso. Nunca se realizar ms de un
bloque catch, solo se realizar el bloque que corresponda al error producido, los
primeros dos bloques corresponden a errores especifico, el ultimo es un Exception
genrico que corresponde a cualquier otro tipo de error. La clusula finally: Esta
clusula es opcional y se coloca al final de la estructura, lo que se programe en este
bloque se realizar de todos modos sea que se haya producido un error o no.
Ejemplo 3:
try
{ String cad="Universidad Privada Telesup";
int n=0; String nn=JOptionPane.showInputDialog("Ingrese la posicin "); n=Integer.parseInt(nn);
char cc=cad.charAt(n); JOptionPane.showMessageDialog(null,"El caracter es: "+cc); }
catch (StringIndexOutOfBoundsException ex1) {
JOptionPane.showMessageDialog(null,"Error: La posicin esta fuera del rango de la cadena."); }
catch (NumberFormatException ex2)
-
UNIVERSIDAD PRIVADA TELESUP
{ JOptionPane.showMessageDialog(null,"Error: El valor que Ud. ingres no corresponde a un nmero."); } catch (Exception ex) { JOptionPane.showMessageDialog(null,ex.getMessage()); } finally { JOptionPane.showMessageDialog(Programa finalizado); } }
Clausula throws: Esta clusula se puede acompaar en la declaracin de un mtodo,
esto quiere decir que si dentro del mtodo se produce un Exception (error), entonces
dicho Exception ser disparado hacia fuera (hacia el lugar desde donde se invoc al
mtodo, esta zona necesariamente debe estar dentro de un try catch ), tal como
se muestra en el siguiente ejemplo:
Ejemplo 4
public class Demo {
public Demo() {
} public void mostrar() throws Exception { String cad="Universidad Privada Telesup"; int n=0; String nn=JOptionPane.showInputDialog("Ingrese la posicin "); n=Integer.parseInt(nn); char cc=cad.charAt(n); JOptionPane.showMessageDialog(null,"El carcter es: "+cc); }
public static void main(String args[])
{ try {
Demo obj=new Demo(); obj.mostrar();
} catch (Exception ex1) {
JOptionPane.showMessageDialog(null,"Error: La posicin esta fuera del rango de la cadena."); }
} }