9 de marzo de 2012

Herencia en la POO

La herencia es una de las características propias de la POO, el concepto principal plantea el crear una clase a  partir de una clase existente de tal forma que la nueva clase (subclase) "hereda" todos los atributos y métodos de la clase original (superclase) y además en la nueva subclase se podrán definir nuevos atributos y métodos que especifican la necesidad de utilizar este mecanismo de la POO.


Este concepto permite crear lo que se denomina estructura jerárquica de clases que de acuerdo al dominio del problema que se contextualice podrá tener un gran nivel de detalle. Además, el concepto también permite reutilización de clases de librerías existentes que se pueden especializar en subclases propias de nuestro programa.

Para profundizar en este concepto sugiero que hagan la siguiente lectura: Herencia en POO

Basado en dichos conceptos:
  • ¿Cómo aplicar estos conceptos en JAVA?
  • ¿Qué tipo de herencia puedo manejar en JAVA?
  • Revise aqui el ejemplo de Herencia, analice la estructura de código que le permite aplicar el concepto.
  • Realice el siguiente Taller: 
    Diseñar, documentar y entregar un caso donde se aplique el concepto de herencia. El caso a entregar debe contemplar:

    1- Requerimiento del problema (enunciado donde mencione cual es el contexto del problema, que clases debe tener en cuenta, sus atributos y métodos). El problema sobre el cual aplique el concepto debe ser abstraido del tema de su proyecto. 
    2 - Diagrama de Clases. (Pueden trabajarlo en yuml.me o utilizar un programa llamado DIA)
    3 - Construir un proyecto en Java que implemente las clases y aplique el concepto de herencia (se sugiere revisar el ejemplo proporcionado).

    Se evaluará cumplimiento en la entrega, originalidad del ejemplo, manejo de conceptos, complejidad del ejemplo, presentación, codificación.

    La entrega debe realizarse creando una carpeta en dropbox (carpeta compartida) con el nombre y código. En dicha carpeta debe tener organizado los elementos a entregar (carpeta del proyecto, Diagrama de clases, enunciado del problema en word). De clic aquí para crear su cuenta: http://db.tt/oFXA2Ic


    Fecha de entrega:   Viernes 16 de marzo (hora de clase)

    Vale por el 20% del porcentaje asignado al proyecto!!!

30 de enero de 2012

Ejercicio: Agenda de Contactos



Una agenda personal consta de un calendario con la posibilidad de almacenar eventos. Cada evento vendrá definido por una fecha y un asunto. Se pide implementar en JAVA haciendo uso del Paradigma de Orientación a Objetos un programa con las siguientes partes:

    1. Una clase Evento cuyos objetos representen los eventos de la agenda. Los objetos de esta clase contendrán un asunto de tipo string y una fecha en la que se produce el evento.
    1. Una clase Calendario que contenga un vector de eventos, el número de eventos insertados y que tenga la siguiente funcionalidad:
      1. Al construir el calendario se debe determinar cuántos son los eventos del mismo.
      2. Mostrar todos los eventos del calendario.
      3. Insertar un evento, recibido como parámetro, al final de los ya insertados.
    1. Un programa principal (Agenda) que:
      1. Cree un objeto de la clase Calendario, con dos eventos.
      2. Cree dos objetos de la clase Evento. El primero con fecha 13/05/2012 y asunto ‘Previo de POO’ y el segundo con fecha 17/06/2012 con asunto ‘Nueva evaluación de POO’.
      3. Inserte los objetos creados en el calendario.
      4. Muestre por pantalla los eventos del calendario.

5 de octubre de 2011

burbuja

http://www.fayerwayer.com/2011/04/algoritmos-de-ordenamiento-con-baile-hungaro-rumano-y-gitano/

Ejemplo: Uso de Vectores 2

Calcular el valor de la sumatoria:   (Xi / Xpromedio)


    public static void main(String[] args) {
        // TODO code application logic here
        int i=0, n;
        float z=0, x [], suma=0, promX;

        n= Integer.parseInt(JOptionPane.showInputDialog("Número de elementos"));
        x=new float [n];
     
        for (i=0; i
            x[i]=Float.parseFloat(JOptionPane.showInputDialog("Valor de la pos [" + (i+1) + "]"));
         }

        i=0;
        while (i
            suma=suma + x[i];
            i=i+1;
        }

        promX=suma/n;

        i=0;
        do {
            z= z + (x[i]/promX);
            i=i+1;
        } while (i

        JOptionPane.showMessageDialog(null, "Valor de la sumatoria Z=" + z);

    }

3 de octubre de 2011

Ejemplo: Uso de Vectores 1


/*
 * Programa para almacenar el promedio de las notas de un estudiante
 * El número de notas a leer esta dado como una entrada n
 */
package prueba;
import javax.swing.*;
/**
 *
 * @author ibrahimdkj
 */
public class Main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        //Declaramos el vector como V
        float V[];
        //Declaramos la variable que va a almacenar el promedio de las notas
        float promedio=0;
        //Declaramos n que es el número de notas y pedimos al usuario el número de notas que desea
        //digitar por medio de un inputdialog,
        //al cual lo convertimos a entero utilizando el Integer.parseInt para poder asignarselo a n
        int n=Integer.parseInt(JOptionPane.showInputDialog("Digite el numero de notas"));
        //Inicializamos el Vector con un tamaño n
        V=new float[n];
        //Declaramos el ciclo for el cual va a ser el que usemos para pedir los datos
        for(int i=0;i
        {
            //Asigamos el dato leído al vector en la posición i-
            V[i]=Float.parseFloat(JOptionPane.showInputDialog("Digite la nota "+(i+1)));
            //Vamos sumando las notas y almacenandolas en el promedio
            promedio=promedio+V[i];
        }
        //Ya teniendo la sumatoria de las notas las dividimos sobre el total de notas para sacar el promedio.
        promedio=promedio/n;
        //Imprimimos el promedio por medio del showMessageDialog
        JOptionPane.showMessageDialog(null,"El promedio de las notas es "+promedio);       
    }
}

30 de septiembre de 2011

Primer ejemplo en Java


Un primer ejemplo en Java que comprende leer unas variables, transformar su tipo y posteriormente imprimir esos valores, lo pueden descargar aquí.

El código del main es el siguiente:
package validarfecha;
import javax.swing.*;
/**
 *
 * @rafalizcano
 */
public class Main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        //Declaración de las variables
        int dia, mes, año;
        String temp;
        //Solicitar los valores (Entradas)
        dia = Integer.parseInt(JOptionPane.showInputDialog("Por favor digite el día"));
        temp=JOptionPane.showInputDialog("Por favor digite el mes");
        mes=Integer.parseInt(temp);
        año = Integer.parseInt(JOptionPane.showInputDialog("Por favor digite el Año"));
        //Imprimir con una ventana de dialogo
        JOptionPane.showMessageDialog(null,"La fecha leída es: \n" + dia + "/" + mes + "/" + año);
    }
}

La Solución completa la pueden descargar aquí o verla a continuación:

28 de septiembre de 2011

Tutoriales de Java

Existen diversos tutoriales en la red que se pueden usar para comenzar con nuestro trabajo en Java, aquí referencio algunos:
Si hay algún buen material sobre Java en la web y consideran debe estar aquí recibo sus comentarios.

10 de agosto de 2011

Aplicaciones de Grafos!

Los señores de http://www.algovidea.cl/ ponen a disposición una serie de materiales sobre la programación de grafos, es una página interesante para revisar y encontrar explicaciones que ayudarán en el desarrollo del proyecto final.

La lista de videos disponibles en su canal algovidea esta en: http://www.youtube.com/playlist?list=UUDXOnCB8eLN8

Algunos de los vídeos incluyen:

  • El vendedor Viajero:



  • EL camino mínimo:



  • Coloración de Grafos:



¡Gracias Cindy por el aporte!

9 de agosto de 2011

Pilas, Colas y Hashmaps

Estas estructuras ya están predefinidas en clases que se incluyen en el lenguaje JAVA, vean aquí como utilizarlas: