跟着姜少学Java基础编程之十:方法

来源:互联网 发布:java开发视频网站源码 编辑:程序博客网 时间:2024/06/05 16:10

本篇主要介绍Java语言中的方法。

方法

方法,也称为函数,用于封装一段特定功能的代码,主要是为了方便这段功能代码的调用,减少代码的重复。
方法有五个要素:修饰符、返回值类型、方法名、参数列表和方法体。

10.1 方法定义的语法

方法定义的语法如下:

   修饰符 返回值类型 方法名(参数列表){    //方法体代码   }

10.2 修饰符

Java方法的修饰符有四种,public、protected、default和private。
访问权限范围越小,安全性越高。

10.2.1 public

public修饰符修饰的方法,又称公有类型,在该工程中的任何地方都可以访问的到,具有最高的访问权限。

10.2.2 protected

protected修饰符修饰的方法,又称保护类型,在类内部、同一个包下、子类中可以访问。

10.2.3 default

default修饰的,又称默认类型(注意,default类型是指不写任何修饰符,默认为default修饰)在类内部和同一个包下可以访问。(不推荐使用)

10.2.4 private

private修饰符,又称私有类型,仅在当前类的内部能够访问。

10.3 返回值类型

返回值类型是指方法执行完后,返回给方法调用者的数值的类型。可以是基本数据类型,也可以是引用类型,如果方法不需要返回数值,则返回值类型必须写void。

10.3.1 return

方法体的代码中,使用return返回数据给调用者。

return的注意事项:
1)方法体中执行return后,剩余的代码不再执行。
2)return后的返回值要与方法定义的返回值类型兼容(所谓兼容,是指相同或者可以自动发生类型转换)。
3)如果方法中有分支流程,要保证每一个分支都能执行return。
4)如果一个方法定义为void类型,则编译器在方法体的最后会加一个隐式的return。

比如:

    public static long add(int a,int b){        return a+b;    }   

上述代码中,虽然方法体中return的a+b的结果是int类型,但是,由于int->long之间是可以自动类型转换,这种情况,我们称return的数据类型与返回值类型是兼容的。

10.4 方法名

方法名也叫函数名,一般方法的命名需要遵循如下编程规范
1)方法名使用小驼峰命名(首单词首字母小写,其他单词首字母大写)
2)方法名长度适中,最好在12字母以下
3)方法名要明确反映出方法的主要功能
4)方法名要有强烈的动作色彩,比如getStudentInfo()、saveUserInfo()等

10.5 参数列表

10.5.1 参数列表语法

参数列表是方法定义时,写在小括号中的参数,语法格式如下:

    类型1 参数1,类型2 参数2,...,类型n 参数n

其中,
1)参数可以为多个,也可以为0个;
2)参数列表中的参数,称为形参;
3)多个参数之间用逗号隔开;
4)参数列表的参数个数五个以下为最佳
比如:

    public int add(int num1,int num2){        return num1+num2;    }

上述代码中,方法add的参数列表中有两个形参,int类型的num1和num2,之间用逗号隔开。

10.5.2 可变参数列表

在实际应用中,如果同一功能,但是传入的参数个数不同,需要写多个方法。比如,需要求两个整数的和,三个整数的和,四个整数的和。。。,这种相同功能,相同参数类型,但参数个数不同,Java给开发者提供了一种解决方案–可变参数列表
可变参数,是指开发者调用该方法的时候,该参数可以传0个或者多个。
可变参数的语法如下:

    类型...可变参数名

应用如下:

    public static void main(String[] args){        System.out.println(add());//输出0        System.out.println(add(1));//输出1        System.out.println(add(1,2));//输出3        System.out.println(add(1,2,3,4));//输出10    }    public static int add(int...nums){        int sum = 0;        for(int num:nums){            sum += num;        }        return sum;    }

案例分析:

上述代码中,add方法定义了一个可变参数列表,其中nums为可变参数,调用add方法时,可以传入0个或者多个int类型的参数。其本质是java将调用时传入的可变参数放入了名称为nums的数组中,在方法体使用时,直接遍历该数组,即可访问到所有传入的参数。

如果参数列表中既有可变参数还有不可变参数,那么可变参数只能放在最后,否则会出现编译错误。

   public static int add(int...nums,int a){       int sum = 0;       for(int num:nums){        sum += num;       }       sum += a;       return sum;   }

上述代码会产生编译错误,参数列表中有不可变参数a,和可变参数nums,正确的形式应该是(int a,int…nums)
注意:
1)可变参数只能放在参数列表的最后一个
2)可变参数列表只能允许有一个可变的参数,不能有多个可变参数
3)可变参数,实际是编译器将可变参数放入了数组中传给方法,因此,传入的可变参数的类型必须是同种类型(或者类型兼容)。

10.6 方法体

方法体是指方法的具体的功能实现,即花括号内的代码部分。建议方法体的代码行数不要太长,以三四百行以下为最佳,可读性强。如果功能复杂,超出这个行数标准,可以拆分为多个方法。

下一篇将介绍Java中的面向对象。

原创粉丝点击