Fecha y hora actual: Jueves 17 Ene 2019 05:29
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Curso VB .NET - Tema 1.22 - Clases, sobre carga - Java

Responder al Tema

Índice del Foro > Visual Basic .NET > Curso VB .NET - Tema 1.22 - Clases, sobre carga - Java

Autor Mensaje
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 3200
Ubicación: Valencia - España

Mensaje Publicado: Miércoles 25 Mar 2009 21:18

Título del mensaje: Curso VB .NET - Tema 1.22 - Clases, sobre carga - Java

Responder citando

Curso de programación en .NET - Tema 1.22 - Clases, sobre carga - Java


1. Clases, sobre carga, Java.

1.1 Objetivos del tema.
La sobrecarga, overload, es la posibilidad de tener varias versiones de un mismo método, vamos a ver como crearlo y como funciona desde el lenguaje Java.

1.2 Introducción.
Las características de la sobrecarga permite escribir varias versiones del mismo método, en Java no es necesario indicar con ninguna palabra previa que un método está sobrecargado basta con que existan dos procedimientos o funciones con el mismo nombre pero tengan distintas líneas de parámetros.

1.3 Creación.
En el ejemplo que sigue disponemos de tres versiones del constructor, Ejemplos.
La segunda y la tercera son iguales, aunque las variables sean distintas, por lo tanto deberíamos eliminar una de las dos.

Código:
package tema_22;
public class Ejemplos
{
  private void Ejemplos()
  {
  }
  public void Ejemplos(double Euros)
  {
  }
  public void Ejemplos(double Dolares)
  {
  }
}


En el siguiente ejemplo podemos ver repetido el mismo método en tres ocasiones, serían tres sobrecargas.

Código:
package tema_22;
public class Ejemplos
{
   public void SobreCarga(int Version1)
   {
   }
   public void SobreCarga(int Version2, boolean Otro)
   {
   }
   public void SobreCarga(int Version2, double Otro)
   {
   }
}


En el programa principal quedaría reflejado como sigue:



Solo es cuestión de elegir la que necesitemos.

Como hemos comentado, el realizar una sobrecarga no implica que haya que reescribir el método completo.
El ejemplo que sigue es quizás algo cutre, pero es sobre todo claro.

Podemos ver como las sobrecargas de cada método llaman a la misma función y lo que se hace es ofrecer distintas opciones al usuario, entendiendo que al facilitar uno solo de los lados del rectángulo lo que se calcula es el área de un cuadrado.

Código:
package tema_22;
public class Ejemplos
{
   private double Calculo(double Base, double Altura)
   {
      return Base * Altura;
   }
   public double AreaRectangulo(double Lado)
   {
      return Calculo(Lado, Lado);
   }
   public double AreaRectangulo(double Base, double Altura)
   {
      return Calculo(Base, Altura);
   }
}


En el principal su uso quedaría así.

Código:
package tema_22;
public class Main
{
   public static void main(String[] args)
   {
      Ejemplos Objeto = new Ejemplos();
      System.out.println("El área del cuadrado es " + Objeto.AreaRectangulo(10));
      System.out.println("El área del rectángulo es " + Objeto.AreaRectangulo(10,20));
   }
}


Es importante recordar que desde los métodos, podemos ejecutar código privado, funciones o procedimientos, lo cual reduce el volumen de código que hay que escribir, y reduce la posibilidad de errores.

Código:
private double Calculo(double Base, double Altura)
{
   return Base * Altura;
}


Este procedimiento es llamado desde los tres métodos, solo habría que modificarlo una vez, y quedaría actualizado para los tres.

1.4 Conclusiones.
La sobre carga, overload, nos permite que un mismo método podamos tenerlo escrito con distintas versiones y con el mismo nombre, de forma que podemos tener distintos puntos de partida para una misma acción.

La sobrecarga se produce cuando el método coincide en nombre pero no en el número de argumentos o aunque tenga el mismo número de argumentos el tipo de los mismos cambia.

Cuando la firma de cada método es distinta en cada uno de ellos.

1.5 Ejercicios propuestos.
1.-Crear un método en el que dispongamos la posibilidad de calcular el coste de un artículo de forma que el cálculo se pueda realizar aplicando un descuento, sin descuento y con un recargo del diez por ciento, recibiendo siempre el precio y las unidades vendidas.
2.-Crear un método que permita calcular la nota de un alumno como:

  • la media a partir de dos notas recibidas
  • la media ponderada a partir de dos notas recibidas y el número de horas dedicadas en cada una de dichas notas.


La formula es la que sigue, donde X sería la nota y w sería las horas adjudicadas a cada nota.


1.6 Solución a los ejercicios propuestos.
1.-Crear un método en el que dispongamos la posibilidad de calcular el coste de un artículo de forma que el cálculo se pueda realizar aplicando un descuento, sin descuento y con un recargo del diez por ciento, recibiendo siempre el precio y las unidades vendidas.

El código en la clase puede ser:
Código:
package tema_22;
public class Ejercicios
{
   public void Ejercicios ()
   {
   }
   public double Importe(int Cantidad, double Precio )
   {
      return Cantidad * Precio;
   }
   public double Importe(int Cantidad , double Precio, double Descuento)
   {
      Precio = Precio -(Precio * Descuento / 100);
      return Cantidad * Precio;
   }
   public double Importe(int Cantidad , double Precio , double Descuento, float Recargo)
   {
      Precio = Precio -(Precio * Descuento / 100);
      Precio = Precio + (Precio * Recargo / 100);
      return Cantidad * Precio;
   }
}


El programa principal es :
Código:
package tema_22;
public class Main
{
   public static void main(String[] args)
   {
       Ejercicios Objeto = new Ejercicios();
      double Precio = 10.2;
      int Cantidad = 20;
      double Descuento = 10;
      float Recargo = 5;
      System.out.println("El importe es de " + Objeto.Importe(Cantidad, Precio));
      System.out.println("El importe con un descuento del " + Descuento + "% es de " + Objeto.Importe(Cantidad, Precio, Descuento));
      System.out.println("El importe con un descuento del " + Descuento + "% y un recargo del " + Recargo + " es de " + Objeto.Importe(Cantidad, Precio,Descuento, Recargo));
   }
}


2.-Crear un método que permita calcular la nota de un alumno como la media a partir de dos notas recibidas la media ponderada a partir de dos notas recibidas y el número de horas dedicadas en cada una de dichas notas.

Código:
package tema_22;
public class Ejercicios
{
   public void Ejercicios ()
   {
   }
   public float Nota(float Nota_1, float Nota_2)
   {
      return (Nota_1 + Nota_2) / 2;
   }
   public float Nota(float Nota_1, int Hora_1, float Nota_2, int Hora_2)
   {
      return ((Nota_1 * Hora_1) + (Nota_2 * Hora_2)) / (Hora_1 + Hora_2);
   }
}


El principal del programa
Código:
package tema_22;
public class Main
{
   public static void main(String[] args)
   {
      Ejercicios Objeto = new Ejercicios();
      System.out.println("la nota media es " + Objeto.Nota(5, 5));
      System.out.println("la nota media ponderada es " + Objeto.Nota(4, 90, 5, 40));
   }
}




Autor del curso: casiopea


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Consulta sobre un tipo de PLUGIN para insertar ...

Federico Jose Temas generales 1 Sábado 08 Sep 2018 18:57 Ver último mensaje
El foro no contiene ningún mensaje nuevo

CONSULTA SOBRE QUE LENGUAJE DE PROGRAMACION UTI...

Federico Jose Temas generales 3 Sábado 01 Sep 2018 13:23 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Ayuda con TestNG Parametrico en java netbeans

baltigo Java 0 Sábado 30 Jun 2018 01:37 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Dudas al instanciar clases heredadas

MMCA Java 0 Viernes 26 Ene 2018 21:34 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Publicar Aplicación web JAVA en tomcat

Irvin Java Web 1 Viernes 13 Oct 2017 17:54 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,