方法(就是一个功能)声明一个方法的具体语法格式
修饰符 返回值类型 方法名(参数类型 形参数名1,参数类型 形参数名2......){方法体的执行语句 如果有返回值 就return}
修饰符:固定写法 public(访问权限) static(静态,也可不写,后面我会写到这个static的具体用法)
返回值类型:方法在运算后会得到一个结果,结果的数据类型就是返回值类型
方法名:自定义名字,满足标识符规范,方法名字首字母小写,后面的单词每个大写
参数列表:方法的运算过程中,是否有未知的数据,如果有未知的数据,定义在参数列表上() 定义变量
return:(关键字)方法的返回,将计算的结果返回,return :结束方法.
无返回值 无参
public static void 方法名(){}
有返回值 无参数
public static int 方法名(){}
有参有返回值
public static int 方法名(int a,int b){}
方法的案列 . 要求,计算一个圆形的周长(整数型)
1.明确方法计算的数据结果类型为int
2.方法计算的过程中,有没有未知的数据(即可以作为形参传入计算周长的方法体中)
//调用方法,让方法执行
1.从main入口,开始执行程序
2.以main的代码开始执行程序
3.调用方法getCircle,传递的是参数假若是3,4
4.方法getCircle开始运行
PS:参数未使用前,形参,
调用者,传递了3,4 实参
main(){
getCircl();
}
public static int getCircle(int a,int b){计算周长的过程;return 周长值;}
方法调用的内存
main方法压栈执行,调用getCircle()入栈
编译时期,与内存无关.
程序运行时期,必须进入内存
运行文件,编译后的class文件(字节码文件,电脑自己可以看得懂的字节码)进入内存
JVM虚拟机调用main
main方法进栈运行.
在mian方法中调用getCircle,传递参数.
getCircle方法进栈运行
计算结果返回调用者(方法getCircle()就结束了,出栈释放内存资源)
方法的定义和使用的注意事项
1.方法不能第一在另一个方法里面
2.写错方法名字
3.写错参数列表
4.方法返回值是void,方法中可以省略return,不写return 下面 不能有代码
5.方法返回值类型,和return后面数据类型必须匹配
方法的重载 overload
定义方法 对参数求和 比如有3个方法求和,不同的求和数据类型.
重载:①同一个类中,运行出现②同名的方法,只要方法的参数列表不同(参数的个数,数据类型)即可
在调用时,完全取决于你调用的参数,调用哪个方法
java 调用相同方法在于使用的个数
注意事项
①不能定义两个完全一样的方法,参数列表必须不同
②方法重载与参数的变量标识符名无关
1.public static void loadSumAll(int a,int b){return a+b;}
2.public static void loadSumAll(int a,int c){return a+c;}
虽然1和2的方法名一样,但是参数的类型个数也是一样,但是这么是错误的,因为int a和int v,int a和int c 虽然都是参数,但是它是形参,调用不知道会是哪个loadSumAll();方法
③方法的重载和返回值无关
public static int loadSum(int a,int b){}
public static void loadSum(int a,int b){}
报错:Duplicate method loadSum(int, int) in type CollectionDemoDown
④重载与修饰符无关
因此重载看方法名和参数列表(前面写什么无关)
下一章 方法的参数是基本数据类型和引用类型