第十二周Java学习

1.学习了递归

按照b站韩顺平老师的顺序,在方法学习后就开始了递归,我对递归的理解肯能有些片面,我认为递归似乎就是“方法套方法”,即return返回的时候再次调用方法,一直循环直到达到目的。基本理解了工作原理后也是练习了些简单的练习,比如简单的阶乘问题,

//import java.util.Scanner;
public class factorial {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//Scanner scanner=new Scanner(System.in);
		//int n=scanner.nextInt();
		T t=new T();
		int a=t.test(5);
		System.out.println(a);
	}
}
class T{
	public int test(int n) {
		if(n==1) {
			return 1;
		}else {
			return test(n-1)*n;
		}
	}
}

这是韩顺平老师讲课的图解,有些令人费解,但还是能接受。

 这是应该是最简单的递归,此外还有斐波那契函数(个人觉得有点费解了),因为这似乎是一种逆向思维的方式,(好像叫什么“回溯”)代码如下(求第n个数):           

import java.util.Scanner;
public class recursion {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.println("第几个数?");
		int number=scanner.nextInt();
		Fibonacci f=new Fibonacci();
		System.out.println(f.number(number));
	}
}
  //斐波那契数列为1 1 2 3 5 8 ....(下一个数是前两个数字之和)
class Fibonacci{
	public int number (int n) {
	if(n==1 || n==2) {
		return 1;
	}else {
		return number(n-1)+number(n-2);
	}
}	
}

...在此之后还有许多更难的问题,比如迷宫,汉诺塔,八重宫......由于学习进度的限制,在加上这些问题比较难理解并且较花费时间,我便暂时跳过这些问题了(以后还会回来练习)

2.方法重载

“允许同一个类中定义多个同名方法,只要它们的形参列表不同即可。如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,这种情况被称为方法重载(overload)。”

我个人理解就是整几个名字一样的方法,但是里面的形参不一样,根据我输入的数据自动找到合适的方法。。。

3.可变参数

由于我们不确定需要几个形参,于是就有了可变形参。形式为(如int...xx)

此外可变形参的使用和数组一样,用for循环遍历

比如我要计算靓仔的总分,可以输入n个数

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		B t=new B();
		String x=t.b("靓仔de总分"+" ",90.0 ,30.0);		
		System.out.println(x);
	}
}

class B{
	public String b(String a,double...nums) {
		double sum=0;
		for(int i=0;i<nums.length;i++) {
			sum+=nums[i];
		}
		return a+sum;
	}
	
}

4.作用域和this

全局变量(属性)和局部变量的作用范围

this的类型:哪个对象调用就是哪个对象的引用类型

5.构造器

感觉构造器就是方法,对变量进行初始化(咱也不懂初始化啥意思,反正就那种感觉能get到)

总之,就是进度似乎有点落后........

(月底考核..555)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值