方法
1、方法概述
方法本质是一个带有标识符的方法块,进去的是参数,出来的是返回值。
方法不能嵌套,方法的执行顺序和定义的位置无关
方法的定义
修饰符 返回值类型 方法名(参数类型1 参数1,参数类型2 参数2,...) {
方法体;
return 返回值;
}
注意事项:
-
修饰符暂时使用
public static -
方法可以不传入参数
-
方法名称命名采用驼峰命名法,第一个单词首字母小写,后续单词首字母大写
-
return的功能
- 返回返回值
- 立即结束当前函数
案例:计算两个整数的和
public static int getSum(int a,int b){
return a+b;
}
方法的调用
格式方法名(参数)
案例:调用上述案例的方法
public static void main(String[] args) {
//方法的调用
int a = getSum(10,20);
System.out.println(a);
}
2、void
如果一个方法不需要返回值,那么返回值类型处使用void
在void修饰方法时,return可以省略
案例:定义一个方法打印1-100的整数
public static void printInt(){
for(int i = 1; i <= 100;i++){
System.out.println(i);
}
}
3、方法重载(Overload)
方法重载概述
- 在一个类中存在一个以上的同名方法,只要方法参数类型或个数不同;
方法重载的特点
- 与返回值类型无关,和参数名无关,只关注参数列表
- 重载本质上是能够区分方法在调用时,调用的是哪个方法即可
public class demo {
public static void main(String[] args) {
System.out.println(sum(1, 2));
System.out.println(sum(1, 2, 3));
System.out.println(sum(1, 1.2));
}
public static int sum(int a,int b,int c){
return a + b + c;
}
public static int sum(int a,int b){
return a + b;
}
public static double sum(int a,double b){
return a + b;
}
}
4、方法参数传递问题值
Java中只有值传递
-
参数传递
- 可以理解为当我们要调用一个方法时,会把指定的数值,传递给方法中的参数,这样方法中的参数就拥有了这个指定的值
-
形式参数
- 在定义方法时,参数列表中的变量,称之为形式参数,简称形参
-
实际参数
- 在方法调用时,传入给方法的数值,我们称之为实际参数,简称实参
-
对于基本数据类型和String类型而言,形参的改变不会影响到实参
public class demo {
public static void main(String[] args) {
int a =100;
System.out.println(a);
sum(a);
System.out.println(a);
}
public static void sum(int a){
a += 100;
System.out.println(a);
}
}
- 对于引用数据类型而言,形参的改变会影响实参
public static void main(String[] args) {
int[] a ={1,2,3,4,5};
System.out.println(Arrays.toString(a));
sum(a);
System.out.println(Arrays.toString(a));
}
public static void sum(int[] a){
for (int i = 0; i < a.length; i++) {
a[i] += 100;
}
System.out.println(Arrays.toString(a));
}
5、方法的递归
在方法中调用自身的方法。可以将复杂的业务逻辑看作一个个小的业务逻辑的循环。
递归一定要保证递归一定次数后可以结束,否则会出现栈溢出错误(StackOverflowError)
-
汉诺塔问题
public class demo { public static void main(String[] args) { //汉诺塔问题64 move(12,'A','B','C'); } /** * @param n 汉诺塔问题有多少个圆盘 * @param A 初始柱子 * @param B 辅助柱子 * @param C 目标柱子 */ public static void move(int n,char A,char B,char C) { if (n == 1) System.out.println(A + "->" + C); move(n-1,A,C,B); System.out.println(A + "->" + C); move(n-1,B,A,C); } }
6、全局变量
- 在类中方法外定义的变量时全局变量
- 暂时使用public static 来修饰
- 全局变量全局可用
public class demo {
public static int b = 0;
public static void main(String[] args) {
int a =100;
System.out.println(a);
System.out.println(b);
sum(a);
System.out.println(a);
System.out.println(b);
}
public static void sum(int a){
a += 100;
b += 100;
System.out.println(a);
}
}
7、文档注释
- 文档注释格式
/**
* @param
* @return
*/
- 生成文档
- 工具 -> 生成
javaDoc - 填写相关设置,点击生成
- 工具 -> 生成