跟着姜少学Java基础编程之十:方法
2017-11-06 20:49
351 查看
本篇主要介绍Java语言中的方法。
方法有五个要素:修饰符、返回值类型、方法名、参数列表和方法体。
访问权限范围越小,安全性越高。
return的注意事项:
1)方法体中执行return后,剩余的代码不再执行。
2)return后的返回值要与方法定义的返回值类型兼容(所谓兼容,是指相同或者可以自动发生类型转换)。
3)如果方法中有分支流程,要保证每一个分支都能执行return。
4)如果一个方法定义为void类型,则编译器在方法体的最后会加一个隐式的return。
比如:
上述代码中,虽然方法体中return的a+b的结果是int类型,但是,由于int->long之间是可以自动类型转换,这种情况,我们称return的数据类型与返回值类型是兼容的。
1)方法名使用小驼峰命名(首单词首字母小写,其他单词首字母大写)
2)方法名长度适中,最好在12字母以下
3)方法名要明确反映出方法的主要功能
4)方法名要有强烈的动作色彩,比如getStudentInfo()、saveUserInfo()等
其中,
1)参数可以为多个,也可以为0个;
2)参数列表中的参数,称为形参;
3)多个参数之间用逗号隔开;
4)参数列表的参数个数五个以下为最佳
比如:
上述代码中,方法add的参数列表中有两个形参,int类型的num1和num2,之间用逗号隔开。
可变参数,是指开发者调用该方法的时候,该参数可以传0个或者多个。
可变参数的语法如下:
应用如下:
案例分析:
上述代码中,add方法定义了一个可变参数列表,其中nums为可变参数,调用add方法时,可以传入0个或者多个int类型的参数。其本质是java将调用时传入的可变参数放入了名称为nums的数组中,在方法体使用时,直接遍历该数组,即可访问到所有传入的参数。
如果参数列表中既有可变参数还有不可变参数,那么可变参数只能放在最后,否则会出现编译错误。
上述代码会产生编译错误,参数列表中有不可变参数a,和可变参数nums,正确的形式应该是(int a,int…nums)
注意:
1)可变参数只能放在参数列表的最后一个
2)可变参数列表只能允许有一个可变的参数,不能有多个可变参数
3)可变参数,实际是编译器将可变参数放入了数组中传给方法,因此,传入的可变参数的类型必须是同种类型(或者类型兼容)。
下一篇将介绍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中的面向对象。
相关文章推荐
- 跟着姜少学Java基础编程之十二:面向对象-构造方法
- 跟着姜少学Java基础编程之十三:面向对象-成员方法
- 跟着姜少学Java基础编程之五:Scanner、Random、String
- 跟着姜少学Java基础编程之二:类型转换
- 跟着姜少学Java基础编程之九:数组
- 跟着姜少学Java基础编程之八:循环结构
- 跟着姜少学Java基础编程之三:变量
- 跟着姜少学Java基础编程之一:数据类型
- 跟着姜少学Java基础编程之四:运算符
- 跟着姜少学Java基础编程之七:选择结构之switch
- 跟着姜少学Java基础编程之六:选择结构之if分支
- 跟着姜少学Java基础编程之十一:面向对象-类与对象
- java中删除数据库中重复数据的几个方法-Java基础-Java-编程开发
- 第2章 Java编程基础——FAQ2.03 用public. protected和private修饰方法有什么区别?
- int 和 String 互相转换的多种方法-Java基础-Java-编程开发
- Java网络编程基础 Datagram类使用方法
- Java学习从入门到精通 4方法篇-Java基础-Java-编程开发
- JSF的中文化与国际化的简便方法-Java基础-Java-编程开发
- 一针见血谈谈面向对象的思维方法-Java基础-Java-编程开发
- Java中正则表达式使用方法详解-Java基础-Java-编程开发