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.


3 comentarios (RSS
) :
A las 22/11/08 01:46
eso no es polimorfismo, es sobrecarga de métodos
A las 23/11/08 21:54
Gracias.
A las 26/5/09 09:33
gracias pero no es lo que busco
Referencias a este artículo:
Página principal