面向对象(六)

方法参数的值传递机制

方法,必须由其所在类或对象调用才有意义。若方法含有参数:
>形参:方法声明时的参数
>实参:方法调用时实际传给形参的参数值

Java里方法的参数传递方式只有一种:值传递。即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。
>形参是基本数据类型,将实参基本数据类型变量的“数据值”传递给形参。
>形参是引用数据类型:将实参引用数据类型变量的“地址值”传递给形参。

public class ValueTransferTest1 {
	public static void main(String[] args) {
		
		int m = 10;
		int n = 20;
		
		System.out.println("m = " + m + ",n = " + n);
		//交换两个变量的值的操作
//		int temp = m;
//		m = n;
//		n = temp;
		
		ValueTransferTest1 test = new ValueTransferTest1();
		test.sway(m, n);
		
		System.out.println("m = " + m + ",n = " + n);
		
	}
	
	public void sway(int m,int n) {
		int temp = m;
		m = n;
		n = temp;
	}
	
	
}

递归(recursion)方法(了解)

1.递归方法:一个方法体内调用它自身。
2.方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。
3.递归一定要向已知的方向递归,否则这种递归就变成了无穷递归,类似于死循环。

public class RecursionTest {
	public static void main(String[] args) {
		RecursionTest test = new RecursionTest();
		int sum1 = test.getSum(100);
		System.out.println(sum1);
		
		int value = test.f(10);
		System.out.println(value);
		
	}
	//求1-100内的自然数的和
	public int getSum(int n) {
		
		if (n == 1) {
			return 1;
		}else {
			return n + getSum(n - 1);
		}
		
	}
	
	//已知有一个数列:f(0) = 1,f(1) = 4,f(n+2)=2*f(n+1) + f(n)
	//其中n是大于0 的整数,求f(10)的值
	
	public int f(int n) {
		if (n == 0) {
			return 1;
		}else if(n == 1){
			return 4;
		}else {
			return 2*f(n - 1) + f(n - 2);
		}
	}
	
}
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页