Dabai se convirtió en el decimoquinto día del león de asedio del software Java (sobrecarga del mecanismo de sobrecarga del método Java, recursión del método)

Sobrecarga de método (sobrecarga)

  • Aunque las funciones son diferentes, cuando las funciones son "similares", el mecanismo de sobrecarga de métodos puede crear métodos similares como si estuvieran usando un método. [Java es compatible con este mecanismo, pero algunos lenguajes no, como JavaScript]
  • Cuando las funciones son similares, los nombres de los métodos pueden ser los mismos.

1. ¿Cuándo debería considerar utilizar la sobrecarga de métodos?

  • Cuando las funciones sean similares, intente que los nombres de los métodos sean iguales [pero cuando las funciones sean diferentes / no similares, haga que los nombres de los métodos sean lo más diferentes posible]

2. ¿Qué condiciones constituyen la sobrecarga del método después de cumplirse?

  • En la misma clase
  • Mismo nombre de método
  • La lista de parámetros es diferente:
    1. La cantidad es diferente: public static void m1(){} 与 public static void m1(int a){}
    2. El orden es diferente: public static void m2(int a,double b){} 与 public static void m2(double a,int b){}
    3. El tipo es diferente:public static void m3(int x){} 与 public static void m3(double x){}
	方法重复,编译错误。
	public static void m4(int a,int b){
    
    }
    public static void m4(int b,int a){
    
    }

3. La sobrecarga de métodos no tiene nada que ver con qué, ni nada

  • La sobrecarga de métodos está relacionada con el nombre del método + la lista de parámetros
  • La sobrecarga de métodos no tiene nada que ver con el tipo de valor de retorno
  • La sobrecarga de métodos no tiene nada que ver con la lista de modificadores

Método de recursividad

  • ¿Qué es la recursividad?
    Es decir: el método en sí se llama a sí mismo.
	a(){
    
    
		a();
	}
  • La recursividad consume mucha memoria de pila. Intente no utilizar algoritmos recursivos cuando no estén en uso.
  • Un error de este tipo se produce cuando se está ejecutando el siguiente programa [no es una excepción, es un error]:
    java.lang.StackOverflowError
    Error de desbordamiento de memoria de pila El
    error no se puede recuperar más tarde, solo hay un resultado. Es decir, la JVM deja de funcionar.
  • La recursividad debe tener una condición final. Sin una condición final, se producirá un error de desbordamiento de la memoria de pila.
  • Incluso si la recursividad tiene una condición final, incluso si la condición final es correcta, puede producirse un error de desbordamiento de la memoria de pila porque la recursividad es demasiado profunda.

Nota:

  • La recursividad no se puede utilizar tanto como sea posible.
  • Pero en algunos casos, la realización de esta función debe basarse en la recursividad.

ejemplo

递归计算前n个数的和:
public class RecursionTest01{
    
    
	publci static void main(String[] args){
    
    
		int n=4;
		int reValue=sum(n);
		System.out.println(reValue);
	}
	
	public static int sum(int n){
    
    
		if(n==1){
    
    
			return 1;
		}
		return n+sum(n-1);	
	}
}
递归计算n的阶乘:
public class RecursionTest02{
    
    
	publci static void main(String[] args){
    
    
		int n=5;
		int reValue=method(n);
		System.out.println(reValue);
	}
	public static int method(int n){
    
    
		if(n==1){
    
    
			return 1;
		}
		return n*method(n-1);
	}
}

Supongo que te gusta

Origin blog.csdn.net/qq2632246528/article/details/112849157
Recomendado
Clasificación