我们书写的代码常常有着成千上万行,如果全部混在一起显得杂乱无比
所以java提供了方法
java方法是语句的集合,方法中包含若干代码,一起执行一个命令
方法的意义:
方法分为main方法和其他方法
main方法是由系统调用的方法,我们常常在main方法中调用其他方法来构建整个框架
其他方法是由我们书写,为了实现某个目的而建立
java中的方法类似于c中的函数
方法包含一个方法头,一个方法体
修饰符 返回类型 方法名(参数类型 参数名){ ...... 方法体 ...... return; }
下面书写一个比较函数作为例子:
//public static 为修饰符 //int 为返回类型 //max 为函数名 //num1,num2为参数 public static int max(int num1,int num2){ int result = 0; if(num1 == num2){ System.out.println("a=b"); return 0; } if(num1>num2){ result = num1; }else{ result = num2; } return result; }
当方法为static时:(相当于方法和类一同加载)
public static int max(int num1,int num2)
直接在主函数中调用即可:
public class Demo { public static void main(String[] args) { int max = max(20,20); System.out.println(max); } }
当方法不为static时:(相当于类实体化后方法才加载)
public int max(int num1,int num2)
需要在主函数中提前声明对象,才可采用对象的方法:
public class Demo { public static void main(String[] args) { Demo demo = new Demo() int max = demo.max(20,20); System.out.println(max); } }
在一个类中有着相同名字但不同参数的方法称为方法重载
方法重载的条件:
在相同名称的方法调用时,由 编译器自行决定调用哪个方法
java为了给方法提供便利性,允许同种类型的数量可变的参数加入进来
可变参数在方法的参数列表中加入: 参数类型 ... 参数名称
public static void name(int ... numbers){ ....... }
注意事项:
java为值传递
值传递和引用传递的区别:
测试代码:
public class Demo2 { public static void main(String[] args) { int a=1; System.out.println(a); change(a); System.out.println(a); } public static void change(int a){ a=10; } }
结果:
1 1
测试代码:
public class Demo1 { public static void main(String[] args) { Person person = new Person(); System.out.println(person.name); change(person); System.out.println(person.name); } public static void change(Person person){ person.name = "999感冒灵"; } } class Person{ String name; }
结果:
null 999感冒灵
方法是java中最常用的部分,我们通过方法来构建整体框架的各个小部件,从而整合成大项目