BECERRA RAMOS, Jos La sobrecarga de mtodos nos permite tener el mismo nombre del mtodo en una clase, pero con diferentes argumentos y opcionalmente diferente tipo de retorno.
Con sobrecarga, una llamada a mtodo puede llamar a diferentes comportamientos en funcin del parmetro transferido. Por ejemplo, en una clase Perro, el mtodo oler() puede llamar a comportamientos completamente distintos en funcin del parmetro. Si la llamada es oler(gato), entonces el comportamiento sera un ladrido y un aullido incesante, mientras que el mtodo oler(comida) llamara a comportamientos de salivacin, ingestin y splica. SOBRECARGA DE METODOS SOBRECARGA DE METODOS Reglas:
El mtodo sobrecargado debe cambiar la lista de argumentos. El mtodo sobrecargado puede cambiar el tipo de retorno El mtodo sobrecargado puede cambiar el modificador de acceso. El mtodo sobrecargado puede declarar nuevas excepciones. SOBRECARGA DE MTODOS Java nos permite tener mtodos con el mismo nombre y que se diferencian por sus argumentos: Al llamar a un mtodo, Java busca la versin del mtodo que coincide con los argumentos de la llamada class S3 {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); int c = Integer.parseInt(args[2]); S3 calcular = new S3(); calcular.sumar(a, b); calcular.sumar(a, b, c); calcular.multiplicar(a, b); calcular.multiplicar(a, b, c); } class S3 { public static void main(String[] args) { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); int c = Integer.parseInt(args[2]); S3 calcular = new S3(); calcular.sumar(a, b); calcular.sumar(a, b, c); calcular.multiplicar(a, b); calcular.multiplicar(a, b, c); } public void sumar(int num1, int num2) { int resultado = num1 + num2; System.out.println("La suma de los 2 primeros numeros es: " + resultado); } public void sumar(int num1, int num2, int num3) { int resultado = num1 + num2 + num3; System.out.println( "La suma de todos los numeros es: " + resultado); } public void multiplicar(int valor1, int valor2) { int resultado = valor1 * valor2; System.out.println("El producto de los 2 primero numeros es: " + resultado); } public static void multiplicar(int valor1, int valor2, int valor3) { int resultado = valor1 * valor2*valor3; System.out.println("El producto de todos los numeros es: " + resultado); } } SOBRECARGA DE OPERADORES SOBRECARGA DE OPERADORES Existen algunos operadores como el = que ya se encuentran sobrecargados de manera nativa. En el caso del = compara objetos en base a sus referencias.
Antes de ver la sobrecarga de operadores se ver la sobrecarga de funciones para entender el concepto. SOBRECARGA DE OPERADORES La nica restriccin de la sobrecarga de operadores es que no se puede cambiar la aridad de los operadores; es decir, si el + es binario, se sigue manejando de la misma forma.
Complex& Complex::operator[](unsigned int i) { return data[i]; } SOBRECARGA DE OPERADORES class Vector {
public: float x, y; Vector operator+ (Vector v) { Vector resultado; resultado.x = x + v.x; resultado.y = y + v.y; return resultado; } }; SOBRECARGA DE OPERADORES EN JAVA Java no soporta sobrecarga de operadores. Los nicos casos de operadores sobrecargados con una operacin especial (definido por el sistema no por los programadores) son el operador = para copia, para == igualdad de referencias y + para la concatenacin de cadenas o elementos. BIBLIOGRAFIA http://jagonzalez.org/sobrecarga-de-metodos- java/ http://eii.ucv.cl/pers/guidi/cursos/ti/Java-POO-3- SobrecragaConstructoresYMetodos.pdf http://pooitsavlerdo.blogspot.com/2012/05/27- sobrecarga-de-operadores-concepto-y.html http://dis.um.es/~bmoros/Tutorial/parte4/cap4- 2.html