java方法中值得注意的小细节
首先是方法声明
结构:[修饰符列表] 返回值类型 方法名 (参数1,参数2,参数3…) { 方法体; }
例如:
[] 加中括号 说明 可以有,可以没有,可以有多个
修饰符 :
权限控制 : public , protected , private 三选一 ,
其他修饰 : static ,synchronized (abstract , final) 二选一
返回值类型 : 11种数据类型任意一种即可,如果不需要 返回值,就写 void
方法名 : 合法标识符即可
参数列表
形参 : 方法的声明处,规定传入的数据的类型以及个数
实参 : 方法的调用处,传入具体的数据
方法体 : java代码
其中需要注意一点为,return。当无返回值(采用void)时,可以加return,也可以不加return。
当确定返回值类型为某一确定类型(例如:int、short等)时,必须加上return且形式为return 值;
因为涉及到return,用此例来具体说明。
当有return,输出结果为0 1 2 3 4;hello;当无return,输出结果为0 1 2 3 4 5 6 7 8 9;hello。
当返回值类型为int时,则必有return。
方法调用
可以在main方法中调用同一类中的不同方法;也可以在main方法中,调用不同.java文件中的方法。方法定义的时候,是不执行的,也就意味着,编写方法的时候,不需要考虑先后顺序。
方法调用 :
静态方法 : 类名.静态方法名(参数);,当前类中 类名 可以省略
成员方法 : 对象引用.成员方法名(参数);
方法分类
方法分类 : (参考java变量分类)
静态方法 : 使用static修饰的方法,并且静态方法中不能有非静态引用
成员方法 : 没有使用static修饰的方法
方法重载
如果我想在main方法中对变量a和b进行加和。而为了不区分变量a和b的数据类型,我需要编写如下代码举例
public static int m1(int a,int b){return a+b;}
public static double m2(double a,double b){return a+b;}
public static long m3(long a,long b){return a+b;}
…
当我需要使用时,我需要对比数据类型的不同,从而选择m1、m2、m3…以上代码太繁琐,进行简化;
class a {
public static int m(int a,int b){return a+b;}
public static double m(double a,double b){return a+b;}
public static long m(long a,long b){return a+b;}
}
这样通过定义a类,将方法名进行统一编写,如果main方法和其在同一类中则可通过A.m(a,b);进行方法调用。注意这里的a b就是实参了。