Conviértete en un emprendedor,profesional del conocimiento en la programación

sábado, 7 de enero de 2012

SOBRECARGA

Compartir con:


HERENCIA

Sobrecarga

El concepto de sobrecarga va orientado a que un método puede repetirse con el mismo nombre pero con la condición de que se diferencien por los parámetros: en número y/o en cantidad.

Por ejemplo, si existiera un método que suma dos números enteros que recibe como parámetros, tendría la siguiente declaración:

                      public int suma(int a, int b)

Ahora, si quisiéramos sumar dos números reales, no tenemos por qué cambiar el nombre al método, porque su tarea va a ser la misma: sumar. Entonces aplicamos sobrecarga para declararlo así:

             public double suma(double a, double b)

Nuevamente, si ahora quisiéramos sumar 3 números enteros, aplicamos sobrecarga así:

                 public int suma(int a, int b, int c)

Este concepto de sobrecarga también es aplicable en los constructores de las clases.

La ventaja de éste concepto de sobrecarga es que flexibiliza la funcionalidad de las clases, ofreciendo varias alternativas de uso de una misma actividad: los métodos y los constructores.

Ejemplo 1

Considere la existencia de una clase de nombre TVH desarrollada anteriormente. Diseñe una nueva clase administradora de nombre ArregloTVH. Considere métodos adicionales sobrecargados para flexibilizar el uso de la clase administradora.

         public class ArregloTVH {
     
               // atributos protegidos
               protected ArrayList<TVH> a;

              // constructor
               public ArregloTVH(){
               a = new ArrayList<TVH>(); }

              // métodos sobrecargados para agregar
                  public void agrega(TVH t){
                           a.add(t); }

        public void agrega(String serie, int marca, int tamaño, double precio, int origen, int tecnologia){                        
                           a.add(new TVH(serie, marca,tamaño,precio,origen,tecnologia));  }
               // métodos sobrecargados para obtener
                    public TVH getTVH(int i){
                   return a.get(i); }

                    public TVH getTVH(){
                       return a.get(0); }

            // métodos no sobrecargados
                   public int getN(){
                     return a.size();}

                 public TVH busca(String serie){
             for(int i=0; i<getN(); i++){
                  if(getTVH(i).getSerie().equals(serie))
                    return getTVH(i); }
                               return null; }

             // métodos sobrecargados para eliminar
                     public void elimina(int i){
                             a.remove(i); }

                  public void elimina(String serie){
                        if(busca(serie)!=null)
                            a.remove(busca(serie)); }

                      public void elimina(TVH t){
                                     a.remove(t); }
     }
           Considere siguiente GUI





Declare y cree un objeto de la clase ArregloTVH
Programe la acción de los botones utilizando la funcionalidad sobrecargada.


0 comentarios:

Publicar un comentario