JAVA(第二周)

下面是对第二周的学习总结。

一、方法。

这里的方法和c++中的函数一样,可对比起来理解。

定义格式:

访问权限  修饰符  返回值类型 方法名(参数列表) {
方法体
}

访问权限有:public、protected、private或者包访问权限(默认),这四种权限从 「最大权限」 到 「最小权限」 分别是: public > protected > 包访问权限> private,具体用法在后续介绍。

修饰符:static、final、abstract、synchronized……(具体含义后面慢慢介绍)。

返回值类型:可以是一些基本类型数据,若没有返回值,则类型为void。

方法名:命名规则与变量相同。

参数列表:可有可无,多个参数应用“,”隔开。

方法体:所需要执行的内容。

例如:

//无返回值类型,无参数列表
public static void test(){

System.out.println("HelloWord!");

}
//有返回值,有参数
public static int add(int a,int b)

{

return a+b;

}

函数调用与c++相同:

对象名.方法名(实参列表);

//可以先用一个变量接一下
int c = add.( 1 , 2 );

//System.out.println(c);

//也可直接打印
System.out.println(add.( 1, 2 ));

以上是按值传参,下面说明一个引用传参:

就是在参数列表中传入数组,实质传递的是数组的地址值。

 注:当没有返回值是,想结束运行时,可以使用return;结束。

二、方法重载

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

方法重载的规则是:

1、同一个类中方法名相同。

2、参数列表不同。(个数、类型、顺序)

3、方法返回值类型、修饰符等,与方法重载没有关系。可同可不同。

实际调用时,会根据调用的方法中参数的类型、个数和顺序去匹配所对应的方法:

例如:

public void test(int a){

System.out.println(a);

}

public void println(double a){

System.out.println(a);

}

public void println(String s,double a){

System.out.println("价格为:"+ a + "元");

}

test(102);    // 调用test(int a)方法

test(102.25);    // 调用test(double a)方法

test("铅笔",2);    // 调用test(String s,double a)方法

使用方法重载其实就是避免出现繁多的方法名,有些方法的功能是相似的,如果重新建立一个方法,重新取个方法名称,会降低程序可读性。

三、递归

简单说就是自己调用自己。

下面介绍一个典型的例子:

求N的阶乘

class Factorial{

    public int factorial(int x){

        if(x==1){

            return 1;

        }

        return x*factorial(x-1);

    }

}

下面来简单分析:

首先传入参数x,先判断x是否等于1,若成立则返回1,否则返回x*factoral(x-1),它不知道factoral(x-1)的值,所以会继续调用自己,直至最后的返回值为1,返回1,然后再倒回去,最终结果就变成了x*(x-1)*x(x-2)*……*1。

递归的三要素:

1、要有一个递归公式,比如上述x*factorial(x-1)。

2、要有一个终结点:factori(1),返回1。如果没有终结点,将一直递归下去,类似一个死循环。

3、递归的方向必须走向终结点。

再来一个典型的案例来理解递归:

斐波那契数列

//根据该数列的规律,第一项和第二项的值都是1,所以可以作为终结点,后面的数为前两个数的和,所以其递归公式可以是 method(n-1)+method(m-2)。

//具体代码如下:

public static int method(int n) {

		//先表明终结点

		if (n <= 2) {

			return 1;

		}

		//再来写递归公式

		return method(n - 1) + method(n - 2);

	}

以上是我对java方法部分的学习和理解,若有不妥之处,敬请指出!

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值