Manual Tecnicas de Programación Orientado a Objetos - A - Java - V0510

download Manual Tecnicas de Programación Orientado a Objetos - A - Java - V0510

of 123

Transcript of Manual Tecnicas de Programación Orientado a Objetos - A - Java - V0510

  • 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