Ejemplo de sobrecarga de métodos en java (creo)

20.10.08. Por ooscarr (ooscarr)

Voy a crear una clase Java con funciones que reciben 1 o 2 parámetros y retornan el resultado de una de las operaciones: Potencia, Raíz Cuadrada y Logaritmo Natural.

Operaciones.java

Marco con negrita el polimorfismo

/**
 * Estas funciones reciben un string con un número
   y retornan el resultado en formato numérico
 */
public class Operaciones {
 int x;
 int y;

 //Si llegan 2 variables
    public Operaciones(String x, String y) {
     this.x = Integer.valueOf(x).intValue();
     this.y = Integer.valueOf(y).intValue();
    }
 //Polimorfismo 1 variable
    public Operaciones(String x) {
     this.x = Integer.valueOf(x).intValue();
    }
 //Raíz cuadrada (SQuare RooT)
    double sqrt() {
     double resultado=0;
     resultado=(double)Math.sqrt(x);
     return(resultado);
    }
 //Logaritmo Natural
    double ln() {
     double resultado=0;
     resultado=(double)Math.log(x);
     return(resultado);
    }
 //Potencia
    double potencia() {
     double resultado=0;
     resultado=(double)Math.pow(x,y);
     return(resultado);
    }
}

Cliente.java

Y un ejemplo de programa que haga uso de estas funciones, sería:

import java.io.*;

public class Cliente{
 
 private static BufferedReader stdin1 = new BufferedReader(new InputStreamReader(System.in));
 private static BufferedReader stdin2 = new BufferedReader(new InputStreamReader(System.in));
 private static BufferedReader stdin3 = new BufferedReader(new InputStreamReader(System.in));
 private static BufferedReader stdin4 = new BufferedReader(new InputStreamReader(System.in));
 
 public static void main(String args[]) throws IOException{
  
  Cliente a = new Cliente();
  
  String sigue="s";
  
  System.out.println("\nBuenos días");
  
  try{
   while(sigue.equals("s")){
    System.out.println("\n¿Qué desea hacer?\n");
    System.out.println("1. Raíz cuadrada");
    System.out.println("2. Logaritmo natural");
    System.out.println("3. Potencia");
    System.out.println("\n");
    System.out.println("4. Salir");
    System.out.print("\n- Ingrese su opcion: ");
    String opcion=stdin1.readLine();
    
    if(opcion.equals("1")){
     System.out.println("RAÍZ CUADRADA");
     System.out.print("Raíz cuadrada de: ");
     String valor1=stdin2.readLine();
     
     Operaciones operar=new Operaciones(valor1);
     String resultado=String.valueOf(operar.sqrt());
     
     System.out.println("= "+resultado);
    }
    else if(opcion.equals("2")){
     System.out.println("LOGARITMO NATURAL");
     System.out.print("ln de: ");
     String valor1=stdin2.readLine();
     
     Operaciones operar=new Operaciones(valor1);
     String resultado=String.valueOf(operar.ln());
     
     System.out.println("= "+resultado);
    }
    else if(opcion.equals("3")){
     System.out.println("POTENCIA");
     System.out.print("Base: ");
     String valor1=stdin2.readLine();
     System.out.print("Exponente: ");
     String valor2=stdin3.readLine();
     
     Operaciones operar=new Operaciones(valor1,valor2);
     String resultado=String.valueOf(operar.potencia());
     
     System.out.println("= "+resultado);
    }
    else if(opcion.equals("4")){
     break;
    }
    else{
     System.out.println("Se equivocó.");
     break;
    }
    
    System.out.print("\nDesea realizar otra operación? (s/n): ");
    sigue = stdin4.readLine();
   }
  } catch(Exception e){
   System.err.println(e);
  }
  
  System.out.println("Adios.");
 }
}

Compilación

Luego de compilarlos con

javac Operaciones.java
javac Cliente.java

Y ejecutarlo con

java Cliente

Resulta algo así

Buenos días

¿Qué desea hacer?

1. Raíz cuadrada
2. Logaritmo natural
3. Potencia


4. Salir

- Ingrese su opcion: 3
POTENCIA
Base: 2
Exponente: 3
= 8.0

¿Desea realizar otra operación? (s/n): n
Adios.

Etiquetas: ,

3 comentarios (RSS ATOM) :

  1. A las 22/11/08 01:46  

    eso no es polimorfismo, es sobrecarga de métodos

  2. A las 23/11/08 21:54  

    OpenID elblog ha dicho...

    Gracias.

  3. A las 26/5/09 09:33  

    Anonymous Anónimo ha dicho...

    gracias pero no es lo que busco

Página principal

Publicidad