manual tecnicas de programación orientado a objetos - a - java - v0510
Post on 02-Jun-2018
268 Views
Preview:
TRANSCRIPT
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
1/123
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
2/123
Tcnica
de
Programacin
Orientada
a
Objetos
2
Presentacin..3
Modulo A
Semana 1:Arreglos Lineales y Matrices...4
Semana 2: Ordenamiento de datos y Bsqueda de Datos..28
Semana 3: Programacin Orientada a Objetos 38
Semana 4: Manejo de la Clase String 65
Semana 5: Manejo de Archivos.....74
Semana 6: Clases Primitivas.92
Semana 7: Mtodos propios109
Semana 8: Ejercicios de Aplicacin115
Semana 9: Manejo de Capas en una aplicacin en escritorio121
Bibliografa:
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
3/123
Tcnica
de
Programacin
Orientada
a
Objetos
3
PRESENTACIN
Esta gua didctica es un material de ayuda institucional, perteneciente a lasespecialidades de computacin, Ingeniera de Software e Ingeniera de Redes yComunicaciones tiene por finalidad proporcionar los conocimientos de laprogramacin orientada a Objetos a los estudiantes del segundo ciclo de estudios.
La Organizacin SISE, lder en la enseanza tecnolgica a nivel superior, promuevela elaboracin de materiales educativos, en concordancia a las exigencias de las
tecnologas de estos tiempos, que permiten la creacin de nuevas herramientas deaprendizaje con el objetivo de facilitar el acceso de los estudiantes a la educacin enel marco del desarrollo tecnolgico de la informtica u de las telecomunicaciones.
Esta gua se divide en 2 mdulos y cada una de ellas en 9 semanas. Permite conocerlas herramientas indispensables para la elaboracin de aplicaciones con el uso de latcnica O.O. Se inicia con el uso de tcnica en manejo de datos en memoria y en elmanejo de capas donde estas tcnicas bsicas se necesitan para dar solucin a unadeterminada proposicin o problema.
En este proceso el alumno aprender instrucciones que le permitirn evaluar
expresiones para luego procesar un conjunto de sentencias. Tambin aprender elmanejo de una aplicacin a nivel de contenedores, de la misma forma el manejo dellenguaje de programacin orientada a objetos.
La implementacin y uso de Capas dentro de la aplicacin en escritorio permitirn queel alumno aplique la programacin Orientada a objetos.
Todas estas herramientas darn un soporte solido al alumno para aprender aprogramar en cualquier lenguaje de programacin Orientada a Objetos(JAVA, .NET,Visual C,etc).
Este material en su primera edicin, servir para ayudar a nuestros estudiantesSISESINOS a tener una formacin solida para resolver problemas.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
4/123
Tcn
Arr
Con
-----
--
-____
Unconselem
cual
ica
de
Progr
glos
enidos
ConceptoAcceso SeArreglos cUso del JLDefinicin
OperacionUso dgetSelecte
_________
rreglo es uecutivas deento de un
especifica la
Los arr Unidime
Bidimens
Multidim
macin
Ori
e Arreglos :cuencial y An uso de E
ist (defaultLie matrices:
s con Matril JTabl
dColum(), c
_________
na coleccimemoria y
arreglo se d
posicin rel
eglos pusionales (v
ionales (ma
nsionales (t
ntada
a
Ob
Declaracinleatorio. Agrtructuras CstModel)Acceso a el
(DefatultTaangeSelect
_________
n de datosreciben u
eber utiliz
ativa en que
den ser:ctores).
rices, tablas
res dimensi
etos
, asignacinegar Datosndicionales
ementos de
leModel),ion(), addRo
_________
del mismonombre c
r el nombre
se encuent
).
nes o ms).
e inicializace Arreglo.
: Uso de Co
una matriz:
(setElemw(),etc).
_________
ARR
tipo, queomn. Paradel arreglo
a el elemen
in de mem
tadores y A
Asignacin
ntAt(),
_________
GLOS
e almacen referirseacompaa
o.
ria a un arr
cumuladore
e Datos:
etSelected
_________
LINEA
an en posi un detero de un nd
4
glo
.
ow(),
____
ES
ionesinadoice el
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
5/123
Tcnica
de
Programacin
Orientada
a
Objetos
5
Declarar de un arreglo :
Con esto diremos que se est definiendo un atributo de tipo arreglo y estamosdeterminando el tipo de dato y el tamao de registros.
Ejemplos:Entero: Numeros[10]
Decimal: talla [5]
Carcter nombres [8]
Asignacin de datos hacia a un arreglo:
Esta instruccin asigna el valor asociado de la expresin a la posicin ndice delarreglo nombre_variable. El ndice debe ser una expresin del tipo entero en el rango[0, longitud-1].
Ejemplos: Estableciendo Datos a los Arreglos
Numero[2]=152 talla[4]=170.5 nombre[6]=Vernica
Numero[5]=115 talla[0]=168.52 nombre[3]=William
Numero[10]=652 talla[2]=102.62 nombre[1]=Angie
Numero[0]=52 talla[1]=85.62 nombre[8]=Sebastian
Los datos establecidos en Memoria serian as:Arreglo
Numero
ndice 0 1 2 3 4 5 6 7 8 9 10
Valores 52 0 152 0 0 115 0 0 0 0 652
Arreglo
Talla
ndice 0
1
2
3
4
5
Valores 168.52 85.62 102.6 0 170.5 0
Arreglo
Nombres
ndice 0 1 2 3 4 5 6 7 8
Valores null
Angie
null William null null Vernica null Sebastin
: nombre_variable [Tamao]
nombre_variable[ndice] =
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
6/123
Tcnica
de
Programacin
Orientada
a
Objetos
6
Nota: las posic iones que no se le asignaron datos quedaran vacios (0) en elcaso de ser numero y null en el caso de carcter.
Acceso al contenido de un arreglo :Para poder acceder al contenido:
a. Mostrar: Obtener el dato de acuerdo al ndice establecido, para ello se deber mostrardicho dato, lo cual se podr utilizar una variable o mostrarlo directamente.Aqu tambinvale la aclaracin de que el ndice debe estar dentro del rango de definicin del arreglo.
Variable=nombre_Arreglo [ndice]
Mostar(Variable) o Mostar(nombre_Arrgelo [indice)Ejemplo:
X=nombre[1]
Mostrar(X) el resultado ser Angie
_________________________________________________________
Mostrar(nombre[8]) el resultado ser Sebastin
b. Lectura: se podr ingresar datos al arreglo en forma contigua de acuerdo al ndice. Es
por ello que se usara a una estructura iterativa que puede ser Mientras(while), Desde(do) o Repetir(do..while).
Leer(Arreglo[indice])
Nota Para que esta lectura se repita hasta el to tal de tamao del arreglo se deber deusar a una estructura Iterativa.
Un Ejemplo con l Desde
desde(x=0 hasta 10-1)
leer(Arreglo[x])
mostrar(Arreglo[x)
fin_desde
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
7/123
Tcnica
de
Programacin
Orientada
a
Objetos
7
Los pasos para la utilizar de un vector son 1. Declarar el vector:Consiste en establecer el nombre, el tamao y el tipo de los datos
que se van a almacenar en el arreglo ejemplo: Hay que diferenciar dos trminos:
tamao del vector (T): es el nmero mximo de elementos que puede contener el
vector.Numero de elementos(N): que indica cuantos elementos hay almacenados en elarreglo en determinado momento. Nota N
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
8/123
Tcnica
de
Programacin
Orientada
a
Objetos
8
Ejemplos:
1. Crear un Arreglo que permita ingresar 10 Apellidos.
Carcter: Apellidos[10]
desde(i =0 hasta 10-1)
leer(Apellidos[i] )
mostrar (Apellidos [i] )
fin_desde
2. Crear un Arreglo que permita ingresar 15 promedios del aula 307 del curso de
fundamentos de programacin
decimal: Promedios[15]
desde(i = 0 hasta 15-1)
leer(Promedios[i] )
mostrar (Promedios [i] )
fin_desde
3. Crear un Arreglo que permita ingresar 20 Nombres de Institutos y Zona deubicacin.
Constante N=20
Carcter: Institutos[N]
Carcter: Zonas[N]
desde(i = 0 hasta N-1)
leer(Institutos[i] )
leer(Zonas[i] )
mostrar(Institutos[i])
mostrar (Zonas[i] )
fin_desde
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
9/123
Tcnica
de
Programacin
Orientada
a
Objetos
9
4. Crear un Arreglo que ingrese 50 datos numricos enteros.
Constante N=50
entero: Numeros[N]
desde(i = 0 hasta N-1)
leer(Numeros[i] )
mostrar(Numeros[i])
fin_desde
5. Crear un Arreglo que ingrese 10 promedios y mostrar cuantos estn aprobados ycuantos desaprobados.
Constante N=10
decimal: Promedios[N]
desde(i = 0 hasta N-1)
leer(Promedios[i] )
mostrar (Promedios [i] )
si(Promedios[i]>=10.5)
ca=ca+1
sino
cd=cd+1
fin_si
fin_desde
mostrar(Total de Aprobados: +ca)
mostrar(Total de Desaprobados: +cd)
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
10/123
Tcnica
de
Programacin
Orientada
a
Objetos
10
6. Crear un Arreglo que ingrese 15 reas y sus respectitos Sueldos y mostrar cuantosestn son del rea Sistemas, Contabilidad, y cuantos sueldos superan al sueldomnimo y cuntos de ellos ganan entre 1000 y 2500.
Constante N=15
entero:Sueldo[N]
Carcter:Area[N]
desde(i = 0 hasta N-1)
leer(Sueldo[i] , Area[i] )
mostrar (Sueldo[i] , Area[i] )
si(Area[i]=Sistema)
cs=cs+1
fin_si
si(Area[i]=Contabilidad)
cc=cc+1
fin_si
si(Sueldo[i]>650)
csum=csum+1
fin_si
si(Sueldo[i]>=1000 y Sueldo[i]
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
11/123
Tcnica
de
Programacin
Orientada
a
Objetos
11
USO DE ARREGLOS EN JAVA
Una matriz es una estructura que contiene mltiples valores del mismo tipo. La longitud de unarray se establece cuando se crea un arreglo (en tiempo de ejecucin).
Se pueden declarar en Java Arreglos de cualquier tipo:
Para definir un Arreglo se establecer con el operador new.
Lapalabraclavenewseusaparacrearunainstanciadelaclase.
Antes
de
ser
instanciada
connewnoconsumememoria,simplementeesunadeclaracinde
tipo.
Por
ejemplo:
// Solo definir a un identificador como tipo arreglo.
char nombreJugadores [];
int edades[];
// Definir el arreglos con su tamao especifico
String [ ] nombreJugadores = new String [10];int [ ] edades = new int [99];
int[] a_Nac= new int[5];
int[] codigo = new int[4];
O se puede crear ya el arreglo con sus valoresinciales:
String nombres[] = { "Veronica","William","Angie","Sebastian"};
Esto que es equivalente a:
String nombres[]= new String[4];
nombres[0] = new String( "Veronica );
nombres[1] = new String( "William" );
nombres[2] = new String( "Angie" );
nombres[3] = new String( "Sebastin" );
http://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://xromsystem.net/wp-content/uploads/2009/01/vector.gifhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtml -
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
12/123
Tcnica
de
Programacin
Orientada
a
Objetos
12
Otro Ejemplo:
String [ ] Coordinadores={Vernica Escobar, Vctor Snchez,Rogelio Tello,Carlos Monge};
O Tambin:
Coordinadores [0] = " Vernica Escobar ";Coordinadores [1] = " Vctor Snchez ";Coordinadores [2] = " Rogelio Tello ";Coordinadores [3] = "Carlos Monge";
Casos Prcticos
1. Ejemplo ingresando valores aleatorios al arreglo:
private void btnAgregar_actionPerformed(ActionEvent e) {
modLstf.clear();
int Numeros[]=new int[10];
for( int i=0; i < 10; i++ ){
Numeros[i] = (int)(Math.random()*100)+1;
modLstf.addElement((i+1)+".- "+Numeros[i] );
}
}
Se
usara
elrandompara
poderestablecernmeros
aleatoriosenestecaso
ser
desde
1
al
100.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
13/123
Tcnica
de
Programacin
Orientada
a
Objetos
13
2. Almacenar los votos obtenidos por los 20 candidatos. Estos son ingresados por el usuario.
private void btnAgregar_actionPerformed(ActionEvent e) {
int votos[]=new int[20]; //Declara el Arreglo en forma Local
modLstf.clear(); //Limpia todo el contenido de la lista
for( int i=0; i < 20; i++ ){
votos[i] = Integer.parseInt(JOptionPane.showInputDialog("Ingresar Cantidad de
Votos - "+(i+1)));
modLstf.addElement((i+1)+".- "+votos[i] );
}
}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
14/123
Tcnica
de
Programacin
Orientada
a
Objetos
14
3. Se tiene una lista llamado Amigos donde son Vernica E., Gelnda D., Victor S., Rogelio T.,Waldir C., Eduardo A., Carlos M., Henrry Q., Miguel F., Manue T, Juan C.. Se necesitaalmacenarlo en un Arreglo y mostrarlo.
private void btnAgregar_actionPerformed(ActionEvent e) {
String Amigos[]={"Vernica E.","Glenda D.","Victor S.","Waldir C.","Rogelio R.",
"Eduardo A.","Carlos M.","Henrry Q.","Miguel F.","Manuel T.","Juan C."};
for( int i=0; i < Amigos.length; i++ ){
modLstf.addElement((i+1)+".- "+Amigos[i] );
}
}
4. Se pide crear una lista que almacene 10 registros: estos datos sern Apellidos, edades y
distritos del aula 307.private void btnAgregar_actionPerformed(ActionEvent e) {
final int t=10;
int edades[]=new int[t];
String apellidos[ ]=new String[t];
String distritos[]=new String[t];
for( in t i=0; i < t; i++ ){
apellidos[i] = JOptionPane.showInputDialog("Registro nro. "+(i+1)+"\n"+"Ingresar Apellidos:");
Este
mtodo
length
devuelveunvalor
numrico
entero
Ellengthseusaparavereltotalde
elementos
que
tiene
el
arreglo.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
15/123
Tcnica
de
Programacin
Orientada
a
Objetos
15
edades[i] = Integer.parseInt(JOptionPane.showInputDialog("Ingresar Edades"));
distritos[i] =JOptionPane.showInputDialog("Ingresar Distrito:");
modLstf.addElement((i+1)+".- "+apellidos[i] );
modLstE.addElement(edades[i]);
ModLstD.addElement(distritos[i]);
}
5. Modificando el programa anterior, tambin deber de visualizar cuantos son mayores a 31o menores e iguales que 31. Cuntos son del distrito de Surco o Chorrillos.
public class FrmCAso01 extends JFrame {
final int t=5;
int edades[]=new int[t];
String apellidos[]=new String[t];
String distritos[]=new String[t];
Estos
arreglos
deben
ser
variableGlobalesdebidoa
queesllamadoenbotones
diferentes.
Elatributotesunaconstantedondeindicael
tamao
de
los
Arreglos.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
16/123
Tcnica
de
Programacin
Orientada
a
Objetos
16
private void btnAgregar_actionPerformed(ActionEvent e) {
for( int i=0; i < t; i++ ){
apellidos[i]= JOptionPane.showInputDialog("Registro nro. "+(i+1)+"\n"+"Ingresar Apellidos:");
edades[i]= Integer.parseInt(JOptionPane.showInputDialog("Ingresar Edades"));
distritos[i]=JOptionPane.showInputDialog("Ingresar Distrito:");
modLstf.addElement((i+1)+".- "+apellidos[i]);
modLstE.addElement(edades[i]);
ModLstD.addElement(distritos[i]);
}
private void btnReporte_actionPerformed(ActionEvent e) {
int cc=0,cmay=0,cme=0;
for( int i=0; i < t; i++ ){
if(distritos[i].equalsIgnoreCase("Surco") | distritos[i].equalsIgnoreCase("Chorrillos"))
cc=cc+1;
if(edades[i]>31)
cmay=cmay+1;
else
cme=cme+1;
}
txtsalida.append("* Total del Distrito de "+"\n"+"Surco o de Chorrillos son: "+cc+"\n");
txtsalida.append("* Total de Mayores de 31 Aos son: "+cmay+"\n");
txtsalida.append("* Total de Menores o iguales a 31 Aos son: "+cme+"\n");
}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
17/123
Tcnica
de
Programacin
Orientada
a
Objetos
17
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
18/123
Tcnica
de
Programacin
Orientada
a
Objetos
18
0 1 2
0
1
2
3
0 1 2
0
1
2
3
4
0 1 2 3 4
0
1
ARREGLOS BIDIMENSIONALES MATRICES
La utilizacin de matrices constituye actualmente una parte esencial de los lenguajes deprogramacin, ya que la mayora de los datos se introducen en los ordenadores como tablas
organizadas en filas y columnas: hojas de clculo, bases de datos, Archivos, etc.
Se llama matriz de orden mn a todo conjunto rectangular de elementos Matriz(m)(n)dispuestos en m lneas horizontales (filas) y n verticales (columnas) de la forma:
Definir una matriz
: nombre_variable[Filas][Columnas]
Ejemplo:
a) Entero: Numeros[5][3]
Cuando se define este espacio en memoria para las matrices establece este espacio.
b) Caracter: Letras[2][5]
Filas
Columnas
Recordemos
que
los
Arreglos
o
Matrices
empiezan
desde
la
posicin
cero
tanto
para
lasfilasycolumnas.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
19/123
Tcnica
de
Programacin
Orientada
a
Objetos
19
Asignacin de datos hacia una Matr iz:
nombre_variable[ndiceFila] [ndiceColumna] =
Ejemplos: Estableciendo Datos a una Matriz
Asignar aos de nacimiento a la Matriz Numeros.
Numeros[0][1]=1975
Numeros[1][2]=1972
Numeros[3][1]=1999
Numeros[4][2]=2004
Asignar Letras a la Matriz Letras
Letras[0][0]=V
Letras[0][1]=E
Letras[0][2]=R
Letras[0][3]=O
Letras[0][4]=N
Letras[1][0]=I
Letras[1][1]=C
Letras[1][2]=A
Acceso al contenido de una Matriz:Para poder acceder al contenido:
a. Mostrar: Obtener el dato de acuerdo al ndice establecido, para ello se deber mostrarutilizando una variable o mostrndolo directamente.
Variable=Matriz[ndiceFila] [ndiceColumna]
Mostrar(Variable) o Mostar(Matriz[ndiceFila] [ndiceColumna])
Ejemplo:
X=Letras[0][3]
Mostrar(X) el resultado ser O
_________________________________________________________
Mostrar(Letras[0][0]) el resultado ser V
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
20/123
Tcnica
de
Programacin
Orientada
a
Objetos
20
b. Lectura: se podr ingresar datos al arreglo en forma contigua de acuerdo al ndice. Espor ello que se usara a una estructura iterativa anidad que puede ser Mientras(while),Desde (do) o Repetir(do..while).
Leer(Matriz[ndiceFila] [ndiceColumna])Nota: Para que esta lectura se repita hasta el total de tamao del arreglo se deber deusar a una estructura Iterativa anidada que permitir realizar el recorrido de filas y de lascolumnas o viceversa(Columnas o Filas).
Llenar datos a la matriz:
Ejemplo. Recorriendo la Matriz dndole nuevos valores:
desde(f=0 hasta Filas-1)
desde(c = 0 hasta Columnas-1)leer( numeros[f][c] )
fin_desde
fin_desde
4. Manipular la informacin guardada en la Matriz. Para esto es necesario recorrer dichaestructura y se puede hacer de la siguiente manera.
desde(f = 0 hasta Filas-1)
desde(c = 0 hasta Columnas-1)
mostrar( numeros[f][c] )
fin_desde
fin_desde
Tambin se puede leer y a la vez escribir los datos ingresados al arreglo
desde(f = 0 hasta Filas-1)
desde(c = 0 hasta Columnas-1)
leer( numeros[f][c] )
mostrar( numeros[f][c] )
fin_desde
fin_desde
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
21/123
Tcnica
de
Programacin
Orientada
a
Objetos
21
Operaciones que se pueden realizar con los arreglos Lectura (llenar datos de la matriz) Escritura (mostrar datos de la matriz) Asignacin (dar valor a una posicin especfica) Actualizacin (insercin , eliminacin, modificacin )
Ejemplos:
En una matriz de dimensiones 5x4 hallar el mayor valor y el menor valor.
Variables
Fi=5
Co=4
Entero: Datos[Fi][Co]
Iniciomayor=0; menor=1000;desde(x=0 hasta Fi-1)
desde (y=0 hasta Co-1)leer(Datos [x] [y])si (Datos [x] [y]> mayor)
mayor= matriz [x] [y]si (Datos [x] [y]< menor)menor= matriz [x] [y]
fin_desdefin_desde
escribir(mayor, menor)fin_programa
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
22/123
Tcnica
de
Programacin
Orientada
a
Objetos
22
USO DE MATRICES con el control JTABLE
Java posee la capacidad de definir un conjunto de variables del mismo tipo agrupadas todasellas bajo un mismo nombre, y distinguindolas mediante un ndice numrico.
Para definir un arreglo o Matriz en java es como definir una variable o atributo, pero alespecificar el tipo lo que hacemos es colocar un par de corchetes [] para indicar que lo queestamos definiendo es un arreglo o Matriz.
Para defini r una Matriz se realiza de la siguiente manera:
Tipo_de_Dato variables[ ] [ ] = new Tipo_de_Dato [fila] [columna];
Por ejemplo definicin de Matrices:
int numero[][]=new int[5][3];
double sueldos[][]=new double[10][2];
String apellidos[][]=new String[5][4];
boolean estado [][]=new boolean[6][4];
Asignar datos:
numero[0][0]=123;
numero[0][1]=456
Leer datos:
//solo indica el ingreso para esa posicin de la matriz
nmeros[0][2]=Integer.parseInt(JOptionPane.showInputDialog(Ingresar Numero));
En el caso que se desee realizar para toda la matriz debers de usar a una estructuraanidada para el ingreso. Por ejemplo:
//Definimos el total de filas y columnas
final int filas=5;
final int columnas=3;
int numero[][]=new int[filas][columnas];
for(int y=0;y
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
23/123
Tcnica
de
Programacin
Orientada
a
Objetos
23
Uso del JTable
Jtable es una clase que me permite organizar una determinada informacin en tabla, estadifiere de una base de datos normal porque al utilizar Jtable t puedes visualizar esta tabla,brindndole al usuario organizacin de informacin, oportunidades de editar y cambiar el
tamao de las columna entre otras.
Jtable le da al programador muchas facilidades, pues este posee varias caractersticas quepermiten hacer desde tablas con informacin compleja y muy estructurada hasta tablas coninformacin sencilla y "bsica".
TABLE MODEL
La clase Jtable controla como se presentan los datos, para crear una Jtable habr pues quecrear un DefaultTableModel antes, normalmente. DefaultTableModel lo que hace espredeterminar ciertas caractersticas para el Jtable es decir que tu puedes poner ciertosparmetros dentro de un DefaultTableModel y as no tener que determinarlos siempre.
DefaulTableModel guarda los datos de la tabla para s mismo, es decir, puede tener lainformacin de la tabla pero estos datos son los visualizados por el computador, es decir, paravisualizar una tabla el DEFAULTTABLEMODEL puede tener la informacin pero sin el Jtableno se puede visualizar para el usuario.
EDITABLE O NO?
Jtable tiene una caracterstica muy llamativa, este permite que el programador pueda decidirque se edita y que no, sin embargo si el programador dentro de su programa o de suDEFAULTTABLEMODEL no tiene determinado este aspecto, Jtable automticamente haceeditable las celdas dentro de la tabla.
LA INFORMACIN, Y LAS COLUMNAS?.
Jtable te brinda muchas facilidades para poder crear una tabla, y as mismo de llenarla con lainformacin que desees ( nmeros, letras etc...) por lo que sencillamente dentro de una tablaesta automticamente esta a travs de la informacin debidamente separada - por ""(comillas)o por , (coma) - es capaz de contabilizarlas y al mismo tiempo llenarla con la informacin quese le dio; es decir el programador solo se debe encargar de poner los ttulos de las tablas y asmismo de escribir la informacin en el mismo orden en que desee que salga de acuerdo conlos ttulos y Jtable se encargara automticamente de colocar la informacin donde se le indico.
UN CHECK BOX?
Para un CellRendered con un DefaultTableModel sencillo, tal vez identificar clases pueda seralgo ms complejo que no pueda hacer, pero para uno un poco ms avanzado, esto sera muyfcil, y para esto cito el caso de un CHECK BOX(casilla de verificacin) el cual es uncomponente grafico generado por Jtable despus de que identifica una informacin tipoboolean, dndole as la apariencia de un cuadro rellenable, un check box no es ms que eso,una opcin - que puede ser editable o no.
UN LIST BOX?
En algunas oportunidades, para cierto tipo de informacin que deseamos que el usuariocomplete, necesitamos darle a el usuario, cierto tipo de opciones cosa que a travs de un ListBox tu puedes ofrecer al usuario el tipo de respuestas que tu desees que selecciones, este tipode organizacin de informacin ya no es tan sencillo como declarar una informacin tipo
boolean, toca crear la lista.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
24/123
Tcnica
de
Programacin
Orientada
a
Objetos
24
Creacin y enlace de un JTable
Insertar el JTable y definir la clase DefaultTableModel en el public class porejemplo:
En el mtodo jbInit establecer el enlace del modal y el total de filas y columnas.
Ejemplo 01: Crear una Matriz de 5 X 3 y llenar datos numricos enteros.
Realizar el procedimiento de creacin y enlace del Jtable.
private void btnAgregar_actionPerformed(ActionEvent e) {
final int filas=5;
final int columnas=3;
int numero[][]=new int[filas][columnas];
for(int y=0;y
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
25/123
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
26/123
Tcnica
de
Programacin
Orientada
a
Objetos
26
modTbDatos.setValueAt(Edad[i],i,1);
}}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
27/123
Tcnica
de
Programacin
Orientada
a
Objetos
27
BALOTARIO DE EJERCICIOS USANDO VECTORES Y MATRICES
1. Dado un vector de nmeros reales:a) Escriba un mtodo max que nos devuelva el mximo de los valores incluidos en el
vector.
b) Escriba un mtodo minque nos devuelva el mnimo de los valores incluidos en elvector.c) Escriba un mtodo media Aritmtica que nos devuelva la media de los valores
incluidos en el vector.d) Dado un vector de nmeros reales, escriba un mtodo que nos devuelva el mximo
y el mnimo de los valores incluidos en el vector.e) Dado un vector, implemente un mtodo que inserte un elemento en una posicin
dada del vector.f) Realizar programas que definan un vector de 10 elementos inicializado con valores
enteros cualesquiera, tanto negativos como positivos y hagan lo siguiente: Mostrar por pantalla el contenido del vector Mostrar por pantalla el contenido del vector en orden inverso. Mostrar la suma de los valores del vector Indicar el mximo y el mnimo de los valores del vector. Hallar la media aritmtica de aquellos valores que sean mayores que 20 y
menores que 80.
Indicar cuantos hay pares y si hay alguno primo.2. Realizar un programa al que se le vayan introduciendo por teclado nmeros enteros. El
programa dispone de dos vectores, uno llamado positivos y otro negativo, ambos de 8posiciones. Se trata de meter los nmeros introducidos en uno u otro segn su signohasta que se llenen los dos. El programa avisar si se intenta meter un nmero(positivo o negativo) cuando el vector correspondiente est lleno. Finalmente elprograma nos
a) informar de la suma de todos los elementos guardados en los vectores.b) El promedio de lo positivos
c) Cuantos nmeros + fueron mayores a 100.
3. Realizar un subprograma llamado llenar_vector_sin_repet igual quellenar_vector_10_elem pero que no introduzca repetidos. Realizar un programa que loutilice y muestre por pantalla el contenido del vector.
4. Dada una matriz de 10 x 10, mostrar la suma de las filas y columnasa) Que fila obtuvo la suma mayorb) Que columna obtuvo la suma menor.c) El numero mayord) El promedio de la suma
e) El promedio de la columna.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
28/123
Tcnica
de
Programacin
Orientada
a
Objetos
28
Contenidos
- Definir Ordenamientos de Datos: Mtodo de Burbuja, Mtodo Shell.- Definicin de Bsqueda: Tipos Bsqueda de Datos dentro de un Arreglo.- Tipos de Bsquedas: Bsqueda Lineal - Bsqueda Binaria.
____________________________________________________________________________
Algoritmos de Ordenamiento
Ordenar es simplemente colocar informacin de una manera especial basndonos en uncriterio de ordenamiento.
Mtodos de ordenamientos.Existen diferentes mtodos de ordenamiento entre ellas tenemos por Seleccin, Insercin,Quick Sort, Burbuja, Shell, etc. Dentro de las cuales hablaremos de los mtodos:El hecho de que la informacin est ordenada, nos sirve para poderencontrarla y accesarla demanera ms eficiente ya que de lo contrario se tendra que hacer de manera secuencial.A continuacin se describirn 4 gruposde algoritmos para ordenar informacin:
Algori tmos de insercin:
En este tipo de algoritmo los elementos que van a ser ordenados son considerados uno a lavez. Cada elemento es INSERTADO en la posicin apropiada con respecto al resto de loselementos ya ordenados.Entre estos algoritmos se encuentran el de INSERCION DIRECTA, SHELL SORT, INSERCIONBINARIA y HASHING.
Algori tmos de intercambio:
En este tipo de algoritmos se toman los elementos de dos en dos, se comparan y seINTERCAMBIAN si no estn en el orden adecuado. Este procesose repite hasta que se haanalizado todo el conjunto de elementos y ya no hay intercambios.Entre estos algoritmos se encuentran el BURBUJA y QUICK SORT.
Algori tmos de seleccin:
http://c.conclase.net/orden/index.php#criteriohttp://www.monografias.com/trabajos35/el-poder/el-poder.shtmlhttp://www.monografias.com/trabajos11/grupo/grupo.shtmlhttp://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml#PROCEhttp://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml#PROCEhttp://www.monografias.com/trabajos11/grupo/grupo.shtmlhttp://www.monografias.com/trabajos35/el-poder/el-poder.shtmlhttp://c.conclase.net/orden/index.php#criterio -
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
29/123
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
30/123
Tcnica
de
Programacin
Orientada
a
Objetos
30
El mtodose basa en tomar como salto N/2 (siendo N el nmero de elementos) y luego se vareduciendo a la mitad en cada repeticin hasta que el salto o distancia vale 1.
Procedimiento Shell Sort;
Ejemplo:
Para el arreglo a = [6, 1, 5, 2, 3, 4, 0]
Tenemos el siguiente recorrido:
Recorrido Salto Lista Ordenada Intercambio
1 3 2,1,4,0,3,5,6 (6,2), (5,4), (6,0)
2 3 0,1,4,2,3,5,6 (2,0)
3 3 0,1,4,2,3,5,6 Ninguno
4 1 0,1,2,3,4,5,6 (4,2), (4,3)
5 1 0,1,2,3,4,5,6 Ninguno
Procedimiento SHELL(variables Vector:A; entero:n)variables
entero: aux,i,intlogico: band
Incioint=n+1;Mientras (int>1)
int=1mod(int div 2)band=true
Mientras (band=true )band=falsei=1Mientras ((i+int) a[i+int]) entoncesaux=a[i]a[i]=a[i+int]a[i+int]=auxband=true
fin_si
i=i+1Fin_MientrasFin_Mientras
Fin_MientrasFin
http://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtml -
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
31/123
Tcnica
de
Programacin
Orientada
a
Objetos
31
Ejemplos en cdigo JAVA:
.
void shell_sort(int A[ ], int s ize){
int i, j, incrmnt, temp;incrmnt = size/2;while(incrmnt > 0) {for(i=incrmnt; i < size; i++) {j = i;temp = A[i];while((j >= incrmnt) && (A[j-incrmnt] > temp)) {
A[j] = A[j - incrmnt];j = j - incrmnt;}A[j] = temp;
}incrmnt /= 2;
}}
void ordenamientoBurbuja(int v[] , int util_v) {int temp;
for(int i = 0; i
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
32/123
Tcnica
de
Programacin
Orientada
a
Objetos
32
BsquedaUn algoritmo de bsqueda es aquel que est diseado para localizar un elemento concretodentro de una estructura de datos. Consiste en solucionar un problema de existencia o no deun elemento determinado en un conjunto finito de elementos, es decir, si el elemento encuestin pertenece o no a dicho conjunto, adems de su localizacin dentro de ste.
Este problema puede reducirse a devolver la existencia de un nmero en un vector.
Bsqueda secuencialPermite localizar el dato dentro del arreglo desde la posicin inicial hasta la posicin final, laexistencia se puede asegurar desde el momento que el elemento es localizado (pero nopodemos asegurar la no existencia hasta no haber analizado todos los elementos del arreglo).
Bsqueda binaria
Se utiliza cuando el vector en el que queremos determinar la existencia o no de un elementoest ordenado, o puede estarlo, este algoritmo reduce el tiempo de bsquedaconsiderablemente, ya que disminuye exponencialmentecon el nmero de iteraciones.
Datos de Entrada:
vec: nombre de la coleccin de todos los datos
tam: tamao del vector
dato: elemento que se quiere buscar.
Variables
entero: pos
Inicio
leer(dato)
pos = 0
Mientras(pos < tam)
Si (vec[pos]= dato) entoncesDevolver= verdadero
sino
pos = pos + 1
fin_si
fin_Mientras
http://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Estructura_de_datoshttp://es.wikipedia.org/wiki/Vector_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Crecimiento_exponencialhttp://es.wikipedia.org/wiki/Crecimiento_exponencialhttp://es.wikipedia.org/wiki/Vector_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Estructura_de_datoshttp://es.wikipedia.org/wiki/Algoritmo -
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
33/123
Tcnica
de
Programacin
Orientada
a
Objetos
33
Ejemplos
Caso 01Dentro de una lista de 10 nombres, verifique si el nombre ingresado existe o no.
Caso 02
Dentro de una lista de 25 distritos muestre si existe o no el distrito de Villa el Salvador.
Caso 03
Crear una Aplicacin donde permita llenar datos a los vectores Nombres, Apellidos Ao deNacimiento y edad. Permitir hasta 20 registros.
La edad se calcula de acuerdo al Ao de Nacimiento El programa permitir :
o Ordenar por Apellidoo Buscar Datos por Nombres y decir cuntos Nombres son iguales.
public class FrmEjem01 extends JFrame {final int filas=20;String nom[]=new String[filas];String ape[]=new String[filas];int edad[]=new int[filas];int anac[]=new int[filas];
Se
define
la
dimensin
y
losnombresdelos
Arreglos
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
34/123
Tcnica
de
Programacin
Orientada
a
Objetos
34
int Reg;
private void jbInit() throws Exception {------------------------------------------------------
//llenando el combo con las fechasfor(int g=1970;g
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
35/123
Tcnica
de
Programacin
Orientada
a
Objetos
35
//tempN = nom[j];
nom[j] = nom[j+1];nom[j+1] = tempN;
//tempAn = anac[j];anac[j] = anac[j+1];anac[j+1] = tempAn;
//tempE = edad[j];edad[j] = edad[j+1];edad[j+1] = tempE;
}
}}
// visualizar datos ordenadosmodTbDatos.setRowCount(15);
for(int g=0;g
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
36/123
Tcnica
de
Programacin
Orientada
a
Objetos
36
Para la Busqueda. Deber de aparecer la ventana para buscar el nombre y visualizar si seencontro y cuantas veces.
Por lo tanto agrega el metodo busqueda_Nom()y lo llamaremos en el boton Busqueda.
void busqueda_Nom(){int f=0,c=0;
String Vb=JOptionPane.showInputDialog("Ingresar Nombres a Buscar");while(f0)
JOptionPane.showMessageDialog(null,"Nombre Encontrado"+"\n"+"y se Repite:"+(c)+"Veces");
elseJOptionPane.showMessageDialog(null,"No se Encontrado el Nombre");
}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
37/123
Tcnica
de
Programacin
Orientada
a
Objetos
37
private void btnBusqueda_actionPerformed(ActionEvent e) {busqueda_Nom();
}
Insertar el Botn Eliminar Registro Intenta estableciendo el siguiente cdigo
private void btnEliminar_actionPerformed(ActionEvent e) {//Fila seleccionada de la Tablaint FilSelec=jTable1.getSelectedRow();modTbDatos.removeRow(FilSelec);nom[FilSelec]="";ape[FilSelec]="";edad[FilSelec]=0;anac[FilSelec]=0;}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
38/123
Tcnica
de
Programacin
Orientada
a
Objetos
38
Contenidos
- Introduccin a la programacin Orientada a Objetos POO.- Caracteristicas de la programacin orientada a objetos.- Definicin de Clases- Constructores, Estructura de una clase- Nivel de acceso(public, private, protected)- Uso de atributo static.- Interfaces, definicin.
- Paquete, distribucin, mencionar la razn de trabajar en capas, manejo de capas(Lgica y Presentacin )- Encapsulacin(get y set de los atributos)- Herencia: extends, Polimorfismo- Sobrecarga de Mtodos
____________________________________________________________________________
Programacin Orientada a Objetos
Es un paradigma de programacin que usa objetos y sus interacciones, para disearaplicaciones y programas de ordenador. Est basado en varias tcnicas, incluyendo herencia,modularidad, polimorfismo y encapsulamiento. Su uso se populariz a principios de la dcada
de 1990. En la actualidad, existe variedad de lenguajes de programacin que soportan laorientacin a objetos.
Un objeto es en realidad un conjunto de funciones y procedimientos, todos ellos relacionadoscon un determinado concepto del mundo real. Los objetos son entidades que combinan estado(atributo), comportamiento (mtodo)e identidad:
El estado est compuesto de datos, ser uno o varios atributos a los que se habrnasignado unos valores concretos (datos).
El comportamiento est definido por los procedimientos o mtodos con que puedeoperar dicho objeto, es decir, qu operaciones se pueden realizar con l.
La identidades una propiedad de un objeto que lo diferencia del resto, dicho con otras
palabras, es su identificador (concepto anlogo al de identificador de una variable ouna constante).
http://elvex.ugr.es/decsai/java/pdf/9A-intro.pdfhttp://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Objetos_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/M%C3%A9todo_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Variable_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Constante_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Constante_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Variable_(programaci%C3%B3n)http://es.wikipedia.org/wiki/M%C3%A9todo_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Objetos_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3nhttp://elvex.ugr.es/decsai/java/pdf/9A-intro.pdf -
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
39/123
Tcnica
de
Programacin
Orientada
a
Objetos
39
La programacin orientada a objetos, expresa un programa como un conjunto de estos objetos,que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y mdulosms fciles de escribir, mantener, y reutilizar.
Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros objetos
pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tenervalores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos deinteraccin llamados mtodos, que favorecen la comunicacin entre ellos. Esta comunicacinfavorece a su vez el cambio de estado en los propios objetos. Esta caracterstica lleva atratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento.
Los mtodos (comportamiento) y atributos (estado) estn estrechamente relacionados por lapropiedad de conjunto. Esta propiedad destaca que una clase requiere de mtodos para podertratar los atributos con los que cuenta. El programadordebe pensar indistintamente en ambosconceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podra producir elhbito errneo de crear clases contenedoras de informacin por un lado y clases con mtodosque manejen a las primeras por el otro. De esta manera se estara realizando unaprogramacin estructuradacamuflada en un lenguaje de programacin orientado a objetos.
La POO difiere de la programacin estructurada tradicional, en la que los datos y losprocedimientos estn separados y sin relacin, ya que lo nico que se busca es elprocesamiento de unos datos de entrada para obtener otros de salida. La programacinestructurada anima al programador a pensar sobre todo en trminos de procedimientos ofunciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan.En la programacin estructurada slo se escriben funciones que procesan datos. Losprogramadores que emplean POO, en cambio, primero definen objetos para luego enviarlesmensajes solicitndoles que realicen sus mtodos por s mismos.
Caractersticas de la POO
Existe un acuerdo acerca de qu caractersticas contempla la "orientacin a objetos", lascaractersticas siguientes son las ms importantes:
Abstraccin : Denota las caractersticas esenciales de un objeto, donde se capturansus comportamientos.Cada objeto en el sistema sirve como modelo de un "agente"abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse"con otros objetos en el sistema sin revelar cmose implementan estas caractersticas.Los procesos, las funciones o los mtodos pueden tambin ser abstrados y cuando loestn, una variedad de tcnicas son requeridas para ampliar una abstraccin.
Encapsulamiento:Significa reunir a todos los elementos que pueden considerarsepertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permiteaumentar la cohesin de los componentes del sistema. Algunos autores confundeneste concepto con el principio de ocultacin, principalmente porque se suelen emplearconjuntamente.
Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulonatural, y cada tipo de objeto expone una interfaza otros objetos que especifica cmopueden interactuar con los objetos de la clase. El aislamiento protege a laspropiedades de un objeto contra su modificacin por quien no tenga derecho a accedera ellas, solamente los propios mtodos internos del objeto pueden acceder a su estado.Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto demaneras inesperadas, eliminando efectos secundarios e interacciones inesperadas.Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos delobjeto de una manera controlada y limitando el grado de abstraccin. La aplicacinentera se reduce a un agregado o rompecabezas de objetos.
http://es.wikipedia.org/wiki/M%C3%A9todo_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Programadorhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/wiki/Abstracci%C3%B3n_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Encapsulamiento_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Cohesi%C3%B3nhttp://es.wikipedia.org/wiki/Principio_de_ocultaci%C3%B3nhttp://es.wikipedia.org/wiki/Principio_de_ocultaci%C3%B3nhttp://es.wikipedia.org/wiki/Cohesi%C3%B3nhttp://es.wikipedia.org/wiki/Encapsulamiento_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Abstracci%C3%B3n_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/wiki/Programadorhttp://es.wikipedia.org/wiki/M%C3%A9todo_(programaci%C3%B3n_orientada_a_objetos) -
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
40/123
Tcnica
de
Programacin
Orientada
a
Objetos
40
Polimorfismo: comportamientos diferentes, asociados a objetos distintos, puedencompartir el mismo nombre, al llamarlos por ese nombre se utilizar el comportamientocorrespondiente al objeto que se est usando. O dicho de otro modo, las referencias ylas colecciones de objetos pueden contener objetos de diferentes tipos, y la invocacinde un comportamiento en una referencia producir el comportamiento correcto para eltipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecucin", estaltima caracterstica se llama asignacin tarda o asignacin dinmica. Algunoslenguajes proporcionan medios ms estticos (en "tiempo de compilacin") depolimorfismo, tales como las plantillas y la sobrecarga de operadoresde C++.
Herencia:las clases no estn aisladas, sino que se relacionan entre s, formando unajerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento detodas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo yel encapsulamiento permitiendo a los objetos ser definidos y creados como tiposespecializados de objetos preexistentes. Estos pueden compartir (y extender) sucomportamiento sin tener que volver a implementarlo. Esto suele hacersehabitualmente agrupando los objetos en clases y estas en rboles o enrejados quereflejan un comportamiento comn. Cuando un objeto hereda de ms de una clase se
dice que hay herencia mltiple. Recoleccin de basura:la Recoleccin de basura o Garbage Collector es la tcnica
por la cual el ambiente de Objetos se encarga de destruir automticamente, y por tantodesasignar de la memoria, los Objetos que hayan quedado sin ninguna referencia aellos. Esto significa que el programador no debe preocuparse por la asignacin oliberacin de memoria, ya que el entorno la asignar al crear un nuevo Objeto y laliberar cuando nadie lo est usando. En la mayora de los lenguajes hbridos que seextendieron para soportar el Paradigma de Programacin Orientada a Objetos comoC++ u Object Pascal, esta caracterstica no existe y la memoria debe desasignarsemanualmente.
Clases en POOLas clases son declaraciones de objetos, tambin se podran definir como abstracciones de
objetos(quiere decir que la definicin de un objeto es la clase). Cuando programamos un objetoy definimos sus caractersticas y funcionalidades en realidad lo que estamos haciendo esprogramar una clase.
Propiedades en clasesLas propiedades o atributos son las caractersticas de los objetos. Cuando definimos unapropiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea deque las propiedades son algo as como variables donde almacenamos datos relacionados conlos objetos.
Mtodos en las clases
Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases lasllamamos mtodos. Los mtodos son como funciones que estn asociadas a un objeto.
Objetos en POOLos objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemosque especificar la clase a partir de la cual se crear. Esta accin de crear un objeto a partir deuna clase se llama instanciar (que viene de una mala traduccin de la palabra instace que eningls significa ejemplar). Por ejemplo, un objeto de la clase fraccin es por ejemplo 3/5. Elconcepto o definicin de fraccin sera la clase, pero cuando ya estamos hablando de unafraccin en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto.Para crear un objeto se tiene que escribir una instruccin especial que puede ser distintadependiendo el lenguaje de programacin que se emplee, pero ser algo parecido a esto.miCoche = new Coche()
http://es.wikipedia.org/wiki/Polimorfismo_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Polimorfismo_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Sobrecargahttp://es.wikipedia.org/wiki/Herencia_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Recolecci%C3%B3n_de_basura_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Recolecci%C3%B3n_de_basura_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Herencia_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Sobrecargahttp://es.wikipedia.org/wiki/Polimorfismo_(programaci%C3%B3n_orientada_a_objetos) -
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
41/123
Tcnica
de
Programacin
Orientada
a
Objetos
41
Con la palabra new especificamos que se tiene que crear una instancia de la clase que sigue acontinuacin. Dentro de los parntesis podramos colocar parmetros con los que inicializar elobjeto de la clase coche.
Estados en objetosCuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos uncoche la propiedad color tomar un valor en concreto, como por ejemplo rojo o gris metalizado.El valor concreto de una propiedad de un objeto se llama estado.Para acceder a un estado de un objeto para ver su valor o cambiarlo se utiliza el operadorpunto.miCoche.color = rojoEl objeto es miCoche, luego colocamos el operador punto y por ltimo el nombre e la propiedada la que deseamos acceder. En este ejemplo estamos cambiando el valor del estado de lapropiedad del objeto a rojo con una simple asignacin.
Mensajes en objetosUn mensaje en un objeto es la accin de efectuar una llamada a un mtodo. Por ejemplo,cuando le decimos a un objeto coche que se ponga en marcha estamos pasndole el mensaje
ponte en marcha.Para mandar mensajes a los objetos utilizamos el operador punto, seguido del mtodo quedeseamos invocar.
miCoche.ponerseEnMarcha()En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar parntesis igualque cualquier llamada a una funcin, dentro iran los parmetros.
Otras cosasHay mucho todava que conocer de la POO ya que slo hemos hecho referencia a las cosasms bsicas. Tambin existen mecanismos como la herencia y el polimorfismo que son unasde las posibilidades ms potentes de la POO.La herencia sirve para crear objetos que incorporen propiedades y mtodos de otros objetos.As podremos construir unos objetos a partir de otros sin tener que reescribirlo todo.
El polimorfismo sirve para que no tengamos que preocuparnos sobre lo que estamostrabajando, y abstraernos para definir un cdigo que sea compatible con objetos de variostipos.Son conceptos avanzados que cuesta explicar en las lneas de ese informe. No hay que olvidarque existen libros enteros dedicados a la POO y aqu solo pretendemos dar un repaso aalgunas cosas para que os suenen cuando tengis que poneros delante de ellas en loslenguajes de programacin que debe conocer un desarrollador del web.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
42/123
Tcnica
de
Programacin
Orientada
a
Objetos
42
Creacin de Clases en JAVACrear la aplicacin con su proyecto, luego elegir crea la Class y saldr esta ventana.
Para crear una sub clase (hija), deber de seleccionarla opcin public estars. Y su estructura quedara as.
Para crear una clase main (principal), deber de seleccionar la opcin public y generateMain Method. Y su estructura quedara as.
Ejemplo 01: mostrar mis datos personales desde una clase Main.
public classClassEjecutar1 {public static void main(String[] args) {
//referencia de la claseClassEjecutar1 Ejecutar = new ClassEjecutar1();String nombres="Veronica Ysabel";String ape="Escobar Runco";String espe="Computacion e Informatica";System.out.println("Nombres: "+nombres);System.out.println("Apellidos: "+ape);System.out.println("Especialidad: "+espe);
}}
public classSubClaseHija1 {
//Cuerpo de la Clase Hija
}
publicclassClassEjecutar{
//Atributos
Globales
//Metdos
publicstaticvoidmain(String[]args){
//referenciadelaclase
ClassEjecutar
Ejecutar
=
new
ClassEjecutar();
//atributos
Locales
}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
43/123
Tcnica
de
Programacin
Orientada
a
Objetos
43
Ejemplo 02: mostrar datos personales ingresado por el usuario desde una claseMain.
public classClassEjecutar2 {public static void main(String[] args) {
//referencia de la claseClassEjecutar2 Ejecutar = new ClassEjecutar2();
String nombres=JOptionPane.showInputDialog("Ingresar Nombre");String ape=JOptionPane.showInputDialog("Ingresar Apellido");String espe=JOptionPane.showInputDialog("Ingresar Especialidad");
JOptionPane.showMessageDialog(null,"Nombres: "+nombres+"\n"+"Apellidos:"+ape+"\n" +"Especialidad: "+espe,"Datos Personales",1);
}}
Ejemplo 03: ingresar 2 nmeros y mostrar las 4 operaciones bsicas.
public classClassEjecutar3 {public static void main(String[] args) {in tnum1, num2, sum,res,mul;doubledivi;num1=Integer.parseInt(JOptionPane.showInputDialog("Ingrece el #1"));num2=Integer.parseInt(JOptionPane.showInputDialog("Ingrece el #2"));sum=num1+num2;res=num1-num2;mul=num1*num2;divi=num1/num2;JOptionPane.showMessageDialog(null,"La suma de\t"+num1+"+"+num2+"="+
sum,"Operacin de Suma",2);JOptionPane.showMessageDialog(null,"La resta de\t"+num1+"-"+num2+"="+
res,"Operacin de Resta",2);JOptionPane.showMessageDialog(null,"La multiplicacion de\t"+num1+"*"+num2+"="+
mul,"Operacin de Multiplicacin",2);JOptionPane.showMessageDialog(null,"La Divisin de\t"+num1+"/"+num2+"="+
Usando
consola
Usando
Message
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
44/123
Tcnica
de
Programacin
Orientada
a
Objetos
44
divi,"Operacin de Divisin",2);
}}
Aplicando Herencia entre Clases
Ejemplo 01: ingresar 2 nmeros y mostrar las 4 operaciones bsicas usandoherencia.
public class SubClaseHija1 {//Metodospublic int Suma(int a,int b){
return(a+b);}public int Resta(int a,int b){
return(a-b);
}public int Multiplica(int a,int b){
return(a*b);}
public int divi(int a,int b){return(a/b);
}}
package prjcaso1;
import javax.swing.JOptionPane;
public classClassEjecutar extendsSubClaseHija1 {//Atributos Globales
public static void main(String[] args) {//referencia de la claseClassEjecutarEjecutar = new ClassEjecutar();//atributos Locales
int num1, num2;
num1=Integer.parseInt(JOptionPane.showInputDialog("Ingrece el #1"));num2=Integer.parseInt(JOptionPane.showInputDialog("Ingrece el #2"));JOptionPane.showMessageDialog(null,"La suma de\t"+num1+"+"+num2+"="+
Ejecutar.Suma(num1,num2),"Operacion de Suma",2);
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
45/123
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
46/123
Tcnica
de
Programacin
Orientada
a
Objetos
46
txtSalida.append("La suma de\t"+num1+"+"+num2+"="+Ejecutar.Suma(num1,num2)+"\n");txtSalida.append("La resta de\t"+num1+"-"+num2+"="+Ejecutar.Resta(num1,num2)+"\n");txtSalida.append("La multiplicacion de:
"+num1+"*"+num2+"="+Ejecutar.Multiplica(num1,num2)+"\n");txtSalida.append("La Divisin de\t"+num1+"/"+num2+"="+Ejecutar.divi(num1,num2)+"\n");
}}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
47/123
Tcnica
de
Programacin
Orientada
a
Objetos
47
Los constructores
Un objeto de una clase se crea llamando a una funcin especial denominada constructor de laclase. El constructor se llama de forma automtica cuando se crea un objeto, para situarlo enmemoria e inicializar los miembros datos declarados en la clase. El constructor tiene el mismo
nombre que la clase. Lo especfico del constructor es que no tiene tipo de retorno.
public class ClassConstructor {
public ClassConstructo r() {
System.out.println("Alumno SISE");
}
public ClassConstructor (String Esp) {
System.out.println("Su Especialidad " + Esp);
}
public ClassConstructor(int Costo) {System.out.println("El Costo " + Costo + " Soles");
}
public ClassConstructor(int Costo,String Esp) {
double de=0,neto;
if(Esp.equalsIgnoreCase("Sistemas"))
de=0.15*Costo;
if(Esp.equalsIgnoreCase("Contabilidad"))
de=0.10*Costo;
neto=Costo-de;
System.out.println("Descuento " + de);
System.out.println("Neto " + neto );
}
Llamando al constructor desde una clase Main
public s tatic void main(String args[]) {
ClassConstructor Alum1 = new ClassConstructor();
String espe=JOptionPane.showInputDialog("Ingresar Especialidad");
int costo=Integer.parseInt(JOptionPane.showInputDialog("Ingresar Costo"));
ClassConstructor Alum2 = new ClassConstructor(espe);
ClassConstructor Alum3 = new ClassConstructor(costo,espe);
}
}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
48/123
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
49/123
Tcnica
de
Programacin
Orientada
a
Objetos
49
Ningn Califi cador : Clase en Librera y misma Clase .Finalmente, cuando no es empleado ninguno de los calificadores de acceso mencionados
anteriormente los elementos son considerados amigables, esto implica que todo
campo/mtodo carente de calificador ser accesible dentro de todas Clases pertenecientes
a su misma librera("package").
static : Una sola instancia .El uso del vocablo staticha venido siendo utilizado en los mtodos principales (main) de los
programas escritos anteriormente, su uso esta relacionado directamente al uso de
instancias en Clases; en ocasiones es necesario o conveniente generar elementos que
tomen un mismo valor para cualquier nmero de instancias generadas o bien
invocar/llamar mtodos sin la necesidad de generar instancias, y es bajo estas dos
circunstancias que es empleado el calificador static.
El primer uso de static puede ser poco evidente, pero tomemos el caso de la Clase
mencionada al inicio de este curso de una Lampara, en caso de requerirse un elemento
como un apagadorpudiera resultar sobrado generar una instanciapara cada Lampara, en
este caso pudiera ser restringido un apagadora una sola instancia mediante el calificador
static permitiendo que dicho elemento sea utilizado por todas las instancias de Lamparaah
generadas; desde luego la descripcin anterior esta trivializada, sin embargo, conforme se
avance en el presente curso sern ilustrados otros ejemplos con este mecanismo.
La segunda situacin para el uso de staticpuede ser ejemplificada perfectamente a travsdel mtodo main Java, el mtodo main puede ser llamado automticamente al invocarse la
respectiva Clase debido a que no se encuentra asociado con ningn tipo de instancia, esto
implica que su comportamiento siempre ser el mismo independientemente de la instancia
que realza su llamada.
Dos aspectos caractersticos de utilizar el calificador static en un elemento Java son los
siguientes :
No puede ser generadaninguna instancia (Uso de new) de un elemento static puesto que
solo existe una instancia.
Todos los elementos definidos dentro de una estructura static deben ser static ellos mismos
, o bien, poseer una instanciaya definida para poder ser invocados.
NOTA: Lo anterior no implica que no puedan ser generadas instancias dentro de un
elemento static; no es lo mismo llamar/invocarque crear/generar.
La teora del concepto static puede ser un poco difcil de digerir, sin embargo, como fue
mencionado anteriormente, conforme avance el curso sern descritos diversos fragmentos
de cdigo para dejar en claro su uso.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
50/123
Tcnica
de
Programacin
Orientada
a
Objetos
50
final : Una sola instancia y definitiva.El calificador final estrechamente relacionado con el uso de static implica una asignacin
nica y definitiva al elemento de una clase. A diferencia de static que implica una sola
instancia, el termino final lleva dicha instancia a una definicin nica y como su nombre lo
implica final.
Generalmente final es utilizado en aquellos elementos que no sern modificados al
momento de ejecutarse ("Run-Time") un programa o clase , a travs de final se asigna un
valor que no podr ser modificado bajo ninguna circunstancia al momento de ejecucin
("Run-Time), en efecto logrando un nivel de eficienciaen ejecucin.
De igual manera que la utilizacin de static el uso de final ser ilustrado conforme se
avanze en este curso.
Atributo Stat ic El atributo static, que se puede utilizar con propiedades declaradas con las palabras clave var,
const o function, permite asociar una propiedad a la clase en lugar de asociarla a instancias de
la clase. El cdigo externo a la clase debe llamar a propiedades estticas utilizando el nombre
de la clase en lugar de un nombre de instancia. Las subclases no heredan las propiedades
estticas, pero las propiedades forman parte de una cadena de mbitos de subclase. Esto
significa que en el cuerpo de una subclase se puede utilizar una variable o un mtodo esttico
sin hacer referencia a la clase en la que se defini.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
51/123
Tcnica
de
Programacin
Orientada
a
Objetos
51
Interfaces
El concepto de Interface lleva un paso ms adelante la idea de las clases abstractas. En Javauna interface es una clase abstracta pura, es decir una clase donde todos los mtodos sonabstractos (no se implementa ninguno). Permite al diseador de clases establecer la forma deuna clase (nombres de mtodos, listas de argumentos y tipos de retorno, pero no bloques decdigo). Una interface puede tambin contener datos miembro, pero estos son siempre static yfinal. Una interface sirve para establecer un 'protocolo' entre clases.
Para crear una interface, se utiliza la palabra clave interface en lugar de class. La interfacepuede definirse public o sin modificador de acceso, y tiene el mismo significado que para lasclases. Todos los mtodos que declara una interface son siempre public.
Para indicar que una clase implementa los mtodos de una interface se utiliza la palabra claveimplements. El compilador se encargar de verificar que la clase efectivamente declare eimplemente todos los mtodos de la interface. Una clase puede implementar ms de unainterface.
Declaracin y uso
Una interface se declara:
interfacenombre_interface{tipo_retornonombre_metodo ( lista_argumentos ) ;. . .
}
Por ejemplo:
interfaceInstrumentoMusical {void tocar();void afinar();String tipoInstrumento();
}
Y una clase que implementa la interface:
class InstrumentoViento extendsObject implementsInstrumentoMusical {voidtocar() { . . . };voidafinar() { . . .};String tipoInstrumento() {}
}
classGuitarra extendsInstrumentoViento {String tipoInstrumento() {
return"Guitarra";}
}
La clase InstrumentoViento implementa la interface, declarando los mtodos y escribiendo elcdigo correspondiente. Una clase derivada puede tambin redefinir si es necesario alguno delos mtodos de la interface.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
52/123
Tcnica
de
Programacin
Orientada
a
Objetos
52
Referencias a Interfaces
Es posible crear referencias a interfaces, pero las interfaces no pueden ser instanciadas. Unareferencia a una interface puede ser asignada a cualquier objeto que implemente la interface.Por ejemplo:
InstrumentoMusical instrumento = new Guitarra();instrumento.play();System.out.prinln(instrumento.tipoInstrumento());
InstrumentoMusical i2 = new InstrumentoMusical(); //error.No se puede instanciar
Extensin de interfaces
Las interfaces pueden extender otras interfaces y, a diferencia de las clases, una interfacepuede extender ms de una interface. La sintaxis es:
interfacenombre_interface extendsnombre_interface , . . . {tipo_retornonombre_metodo ( lista_argumentos ) ;. . .
}
Agrupaciones de constantes
Dado que, por definicin, todos los datos miembros que se definen en una interface son static yfinal, y dado que las interfaces no pueden instanciarse resultan una buena herramienta paraimplantar grupos de constantes. Por ejemplo:
publicinterfaceMeses {intENERO = 1 , FEBRERO = 2 . . . ;
String [] NOMBRES_MESES = { " " , "Enero" , "Febrero" , . . . };}
Esto puede usarse simplemente:
System.out.println(Meses.NOMBRES_MESES[ENERO]);
Un ejemplo casi real
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
53/123
Tcnica
de
Programacin
Orientada
a
Objetos
53
Los paquetes
Los paquetes son una forma de organizar grupos de clases. Un paquete contiene unconjunto de clases relacionadas bien por finalidad, por mbito o por herencia. Los paquetes resuelven el problema del conflicto entre los nombres de las clases. Al
crecer el nmero de clases crece la probabilidad de designar con el mismo nombre ados clases diferentes.
Las clases tienen ciertos privilegios de acceso a los miembros dato y a las funcionesmiembro de otras clases dentro de un mismo paquete.
En el Entorno Integrado de Desarrollo (IDE) JBuilder de Borland, un proyecto nuevo se crea enun subdirectorio que tiene el nombre del proyecto. A continuacin, se crea la aplicacin, unarchivo .java que contiene el cdigo de una clase cuyo nombre es el mismo que el del archivo.Se pueden agregar nuevas clases al proyecto, todas ellas contenidas en archivos .javasituadas en el mismo subdirectorio. La primera sentencia que encontramos en el cdigo fuente
de las distintas clases que forman el proyecto es packageo del nombre del paquete.
La palabra reservada import
Para importar clases de un paquete se usa el comando import . Se puede importar una claseindividual
import java.awt.Font;
o bien, se puede importar las clases declaradas pblicas de un paquete completo, utilizando unarterisco (*) para reemplazar los nombres de clase individuales.
import java.awt.*;
Para crear un objeto fuentede la clase Fontpodemos seguir dos alternativas
import java.awt.Font;
Font fuente=new Font("Monospaced", Font.BOLD, 36);
O bien, sin poner la sentencia import
java.awt.Font fuente=new java.awt.Font("Monospaced", Font.BOLD, 36);
Normalmente, usaremos la primera alternativa, ya que es la ms econmica en cdigo, sitenemos que crear varias fuentes de texto.
Se pueden combinar ambas formas, por ejemplo, en la definicin de la clase BarTexto
import java.awt.*;
public class BarTexto extends Panel implements java.io.Serializable{
//...
}
Paneles una clase que est en el paquetejava.awt, y Serializablees un interfaceque est enel paquetejava.io
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/herencia/interfaces.htmhttp://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/herencia/interfaces.htm -
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
54/123
Tcnica
de
Programacin
Orientada
a
Objetos
54
Los paquetes estndar
Paquete Descripcin
java.applet Contiene las clases necesarias para crear applets que se ejecutan enla ventana del navegador
java.awtContiene clases para crear una aplicacin GUI independiente de laplataforma
java.io Entrada/Salida. Clases que definen distintos flujos de datos
java.langContiene clases esenciales, se importa impcitamente sin necesidad deuna sentencia import.
java.net Se usa en combinacin con las clases del paquete java.io para leer yescribir datos en la red.
java.util Contiene otras clases tiles que ayudan al programador
Herencia
La herencia es uno de los conceptos ms cruciales en la POO. La herencia bsicamenteconsiste en que una clase puede heredar sus variables y mtodos a varias subclases (la clase
que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte delos atributos y mtodos propios, tiene incorporados los atributos y mtodos heredados de lasuperclase. De esta manera se crea una jerarqua de herencia.
Por ejemplo, imaginemos que estamos haciendo el anlisis de un Sistema para una tienda quevende y repara equipos celulares.
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
55/123
Tcn
En elEsasutiliz
En ggrfi
El en
gene
los d
Los t
enca
Una
ica
de
Progr
l grfico ve2 Clasesmos el com
neral, podeo:
NCAPSU
capsulamie
rar compon
etalles de la
rminos m
psulado de
ez encapsu
macin
Ori
os 2 Claseuevas se cportamiento
mos tener u
LAMIENT
to es la car
ntes autno
implementa
ulo, compo
oftware.
lada, una e
ntada
a
Ob
ms que ponstruirnde la Super
na gran jera
O
cterstica d
mos de soft
cin al mund
ente o bea
tidad de sof
etos
osiblementepartir de l
Clase.
qua de Cla
autonoma
are toman
o exterior.
se suelen
tware se pu
necesitemo Clase Cel
es tal y co
de la OO. E
o una parte
tilizan en lu
de visualiz
s para creaular existen
o vemos e
sta caracter
de funciona
gar de com
r como una
nuestro Siste. De esa
el siguient
stica permi
lidad y ocult
ponente
caja negra.
55
tema.forma
e
ando
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
56/123
Tcnica
de
Programacin
Orientada
a
Objetos
56
Sobrecarga
En programacin orientada a objetosla sobrecargase refiere a la posibilidad de tener dos oms funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o msfunciones con el mismo nombre realizan acciones diferentes. El compiladorusar una u otradependiendo de los parmetrosusados. A esto se llama tambin sobrecarga de funciones.
Tambin existe la sobrecarga de operadores que al igual que con la sobrecarga de funcionesse le da ms de una implementacin a un operador.
Sobrecarga es la capacidad de un lenguaje de programacin, que permite nombrar con elmismo identificador diferentes variables u operaciones
El mismo mtodo dentro de una clase permite hacer cosas distintas en funcin de losparmetros
Java no permite al programador implementar sus propios operadores sobrecargados, pero sutilizar los predefinidos como el + del ejemplo anterior. C++, por el contrario si permitehacerlo.
Sobrecarga de Mtodos y de Constructores
La firma de un mtodo es la combinacin del tipo de dato que regresa, su nombre y su lista deargumentos.
La sobrecarga de mtodos es la creacin de varios mtodos con el mismo nombre pero condiferentes firmas y definiciones. Java utiliza el nmero y tipo de argumentos para seleccionar
cul definicin de mtodo ejecutar.
Java diferencia los mtodos sobrecargados con base en el nmero y tipo de argumentos quetiene el mtodo y no por el tipo que devuelve.
Tambin existe la sobrecarga de constructores: Cuando en una clase existen constructoresmltiples, se dice que hay sobrecarga de constructores.
Algunos mtodos en una clase pueden tener el mismo nombre. Estos mtodos deben contarcon diferentes argumentos. El compilador decide qu mtodo invocar comparando losargumentos. Se generara un error si los mtodos slo varan en el tipo de retorno.
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetoshttp://es.wikipedia.org/wiki/Funci%C3%B3nhttp://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/Par%C3%A1metrohttp://es.wikipedia.org/wiki/Par%C3%A1metrohttp://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/Funci%C3%B3nhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos -
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
57/123
Tcnica
de
Programacin
Orientada
a
Objetos
57
Ejemplos
Caso 01Crear una sobrecarga que permita sumar 2 nmeros y ser llamado de acuerdo al tipode dato que se le envie.
public class ClassSobreCalculos {public int Totales(int a,int b){
return(a+b);}
public double Totales(double a, double b){return(a+b);
}
public long Totales(long a, long b){return(a+b);
}}
Caso 02Crear una sobrecarga de mtodos donde permita hallar el sueldo, descuento y el neto.El sueldo depender del costo y cantidad de horasEl descuento segn el estado de Honorarios o PlanillaNeto segn el sueldo y el descuento.
package pckLogico;public class ClassSobre {public double Calcular(int ch,int costo){
return(ch*costo);}
public double Calcular(int sueld, String estado){double de=0;
if(estado.equalsIgnoreCase("Planilla"))de=0.12*sueld;if(estado.equalsIgnoreCase("Honorarios"))de=0.07*sueld;return(de);
}public double Calcular(int sueld,double de){
return(sueld-de);}}
Package pckLogico ;
public class ClassEncapsular {
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
58/123
Tcnica
de
Programacin
Orientada
a
Objetos
58
int sueldo,costo,ch;double desc,neto;String estado;
public int getSueldo() { return sueldo; }public void setSueldo(int sueldo) { this.sueldo = sueldo; }public int getCosto() { return costo; }public void setCosto(int costo) { this.costo = costo; }public int getCh() { return ch; }public void setCh(int ch) { this.ch = ch; }public double getDesc() { return desc; }public void setDesc(double desc) { this.desc = desc; }public double getNeto() { return neto; }public void setNeto(double neto) { this.neto = neto; }public String getEstado() { return estado; }public void setEstado(String estado) { this.estado = estado; }
}
Llamando las clases Encapsulada y sobrecarga en el JFRAME
package pclPrincipal;public class FrmDatos extends JFrame {ClassSobre metodos=new ClassSobre();ClassEncapsular atri=new ClassEncapsular();
private void btnAceptar_actionPerformed(ActionEvent e) {atri.setCh(Integer.parseInt(txtch.getText()));atri.setCosto(Integer.parseInt(txtcosto.getText()));atri.setSueldo(metodos.Calcular(atri.getCh(),atri.getCosto()));lblSuel.setText(""+atri.getSueldo());atri.setDesc(metodos.Calcular(atri.getSueldo(),atri.getEstado()));atri.setNeto(metodos.Calcular(atri.getSueldo(),atri.getDesc())) ;
lblDes.setText(""+atri.getDesc());lblN.setText(""+atri.getNeto());Object valores[]={c,atri.getCh(),atri.getCosto(),atri.getSueldo(),atri.getDesc(),atri.getEstado(),atri.getNeto()};ModDatos.addRow(valores);++c; // contador de registros}
private void rbtPla_actionPerformed(ActionEvent e) {atri.setEstado("Planilla");
}
private void rbtHo_actionPerformed(ActionEvent e) {
atri.setEstado("Honorarios");}
}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
59/123
Tcnica
de
Programacin
Orientada
a
Objetos
59
Caso 03Crear una sobrecarga de mtodos donde permita hallar el sueldo, descuento y el neto.El sueldo depender del costo y cantidad de horasEl descuento ser del 10% si el sueldo supera a los 1500Neto segn el sueldo y el descuento.
public class ClassMetodos extends ClassEncapsular{public int pago(int ch,int cst){
return(ch*cst);}public double pago(int sueldo){double d=0;
if(sueldo>1500)d=0.10*sueldo;
return(d);}public double pago(int sueldo,double dsct){
return(sueldo-dsct);}}
//Campos encapsuladopublic class ClassEncapsular {int c,cs,suel;double np,des;public int getC() {
return c;}public void setC(int c) {
this.c = c;}public int getCs() {
return cs;}public void setCs(int cs) {
this.cs = cs;}public int getSuel() {
return suel;}public void setSuel(int suel) {
this.suel = suel;}public double getNp() {
return np;}public void setNp(double np) {
this.np = np;}
public double getDes() {return des;
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
60/123
Tcnica
de
Programacin
Orientada
a
Objetos
60
}public void setDes(double des) {
this.des = des;}
}
// Frame:public class FrmVentana extends JFrame {
Class1 x = new Class1();*****
public FrmVentana() {try {
jbInit();} catch (Exception e) {
e.printStackTrace();
}}
private void jbInit() throws Exception {*******************}
private void btnCalcular_actionPerformed(ActionEvent e) {x.setC(Integer.parseInt(txtch.getText()));
x.setCs(Integer.parseInt(txtcst.getText()));x.setSuel(x.pago(x.getC(),x.getCs()));x.setDes(x.pago(x.getSuel()));x.setNp(x.pago(x.getSuel(),x.getDes()));lblSueldo.setText(""+x.getSuel());lblDesc.setText(""+x.getDes());lblnp.setText(""+x.getNp());
}
private void btnLlamar_actionPerformed(ActionEvent e) {FrmResultados j=new FrmResultados();
j.setVisible(true);j.lblr.setText(""+x.getNp());}
}
// Clase Mainpublic class Class1 extends ClassMetodos{
public static void main(String[] args) {
FrmVentana ven=new FrmVentana();
ven.setVisible(true);}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
61/123
Tcnica
de
Programacin
Orientada
a
Objetos
61
}
Caso 04Crear una sobrecarga de mtodos donde permita hallar el precio, total, igv y el neto.Segn el articulo saldr el precio. El total ser deacuerdo a la cantidad y precio y el neto serdeacuero al total y a la seleccin del Igv.
// Clase encapsuladapackage pckLogico;
public class ClassEncapsular {int precio,cantidad;double total,igv;
String articulo;
public int getPrecio() {
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
62/123
Tcnica
de
Programacin
Orientada
a
Objetos
62
return precio;}
public void setPrecio(int precio) {this.precio = precio;
}
public int getCantidad() {return cantidad;
}
public void setCantidad(int cantidad) {this.cantidad = cantidad;
}
public String getArticulo() {
return articulo;}
public void setArticulo(String articulo) {this.articulo = articulo;
}
public double getTotal() {return total;
}
public void setTotal(double total) {this.total = total;}
public double getIgv() {return igv;
}
public void setIgv(double igv) {this.igv = igv;
}}
// clase sobrecargapackage pckLogico;public class ClassSobreCarga {public int Calcular(String articulo){int pre = 0;
if(articulo.equalsIgnoreCase("Monitor"))pre=259;if(articulo.equalsIgnoreCase("Teclado"))pre=15;if(articulo.equalsIgnoreCase("Memorias"))
pre=175;if(articulo.equalsIgnoreCase("Case"))
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
63/123
Tcnica
de
Programacin
Orientada
a
Objetos
63
pre=550;if(articulo.equalsIgnoreCase("Lectora"))pre=25;return(pre);
}
public double Calcular(int cantidad, int precio){return(cantidad*precio);
}public double calcular(double total){
return(total*0.19);}public double calcular(double total,double igv){
return(total+igv);}}
//Framepublic class FrmDatos extends JFrame {ClassEncapsular atributo = new ClassEncapsular();ClassSobreCarga metodos = new ClassSobreCarga();String Titulos[]={"registro","articulo","precio","cantidad","total"};String valores[][]={};int c=1;****************************
private void jbInit() throws Exception {*********************
******************************************
cboArticulo.addItem("Seleccionar");cboArticulo.addItem("Monitor");cboArticulo.addItem("Teclado");cboArticulo.addItem("Memorias");cboArticulo.addItem("Case");cboArticulo.addItem("Lectora");
}
private void cboArticulo_actionPerformed(ActionEvent e) {
lblTotal.setText("");txtCantidad.setText("");
atributo.setArticulo(cboArticulo.getSelectedItem().toString());lblPrecio.setText(""+metodos.Calcular(atributo.getArticulo()));atributo.setPrecio(metodos.Calcular(atributo.getArticulo()));lblPrecio.setText(""+atributo.getPrecio());}
private void btnAgregar_actionPerformed(ActionEvent e) {atributo.setCantidad(Integer.parseInt(txtCantidad.getText()));atributo.setPrecio(atributo.getPrecio());atributo.setTotal(metodos.Calcular(atributo.getCantidad(),atributo.getPrecio()));lblTotal.setText(""+atributo.getTotal());
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
64/123
Tcnica
de
Programacin
Orientada
a
Objetos
64
if(chkIGV.isSelected())atributo.setIgv(metodos.calcular(atributo.getTotal()));elseatributo.setIgv(0);lblIGV.setText(""+atributo.getIgv());
lblneto.setText(""+metodos.calcular(atributo.getTotal(),atributo.getIgv()));Object
valores[]={c,atributo.getArticulo(),atributo.getPrecio(),atributo.getCantidad(),atributo.getTotal()};ModDatos.addRow(valores);++c;}
private void btnLimpiar_actionPerformed(ActionEvent e) {txtCantidad.setText("");cboArticulo.setSelectedIndex(0);
lblIGV.setText("");lblneto.setText("");lblPrecio.setText("");lblTotal.setText("");
}}
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
65/123
Tcnica
de
Programacin
Orientada
a
Objetos
65
Contenidos
- Manejo de Paneles(JPanel)- Clase GregorianCalendar- Clase String: Uso de la Clase String String.valueOf(), length(), charAt(), toString(),
substring(), indexOf(), lastIndexOf(), equalsIgnoreCase(), compareTo(),- Uso de la Clase String: concat(), replace(), toLowerCase(), toUperCase().
____________________________________________________________________________
PANELConstruir directamente programas o aplicaciones directamente en un FRAME, producerpidamente un amontonamiento de controles o componentes en la propia forma.Es ms conveniente usar componentes de agrupamiento visuales que faciliten la separacinfsica y lgica de las diversas partes que componen un programa o aplicacin.Estos controles de agrupamiento son conocidos como paneles, aunque en visual basic seconocen como frames (no confundirlos con frame de java).Java tiene los siguientes tipos de paneles, PANEL, SPLITPANE, SCROLLPANE,TABBEDPANE, TOOLBAR.Recordar adems que los panels pueden y deben usar su propio layout para acomodar loscomponentes visuales que contendr.En particular frame usando su layout acomoda sus paneles y panel usando su layout acomoda
los componentes.
El panel es un rea de Java Desktop System en la que se pueden ejecutar aplicaciones yrealizar otras tareas.
La clase Paneles el ms simple de los Contenedores de Componentes grficos. En realidad,se trataba de crear una clase no-abstracta (Container s lo es) que sirviera de base a losapplet y a otras pequeas aplicaciones. La clase Panel consta de dos mtodos propios: elconstructor, cuyo fin es crear un nuevo Panel con un LayoutManagerde tipo FlowLayout(el dedefecto), y el mtodo addNotify()que, sobrecargando la funcin del mismo nombre en la claseContainer, llama al mtodo createPanel()del Toolkit adecuado, creando as un PanelPeer. ElAWT enviar as al Panel (y por tanto al applet) todos los eventos que sobre l ocurran. Estoque puede parecer un poco rebuscado, obedece al esquema arquitectnico del AWT; se tratadel bien conocido esquema de separacin interface/implementacin que establece por un lado
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
66/123
-
8/11/2019 Manual Tecnicas de Programacin Orientado a Objetos - A - Java - V0510
67/123
Tcnica
de
Programacin
Orientada
a
Objetos
67
GregorianCalendar
Segn la documentacin del API de java, la clase Calendar es una clase abstracta base paraconvertir entre un objeto de tipo Date (java.util.Date) y un conjunto de campos enteros comoYEAR (ao), MONTH (mes), DAY (da), HOUR (hora), etc.
Una subclase de Calendar representa una fecha de acuerdo a las
top related