Java方法

169 阅读4分钟

方法

什么是方法

方法(method)是程序中最小的执行单元

实际开发中方法的应用场景

重复的代码、具有独立功能的代码可以抽取到方法中

实际开发中,方法有什么好处

  • 可以提高代码的复用性
  • 可以提高代码的可维护性

方法定义和调用

  • 把一些代码打包在一起,该过程称为方法定义
  • 方法定义后并不是直接运行的,需要手动调用才能执行,该过程称为方法调用

最简单的方法定义和调用

  • 定义
public static void 方法名() {
    方法体(就是打包起来的代码)
}
public static void playGame() {
    sout("hello");
}
  • 调用
方法名();
playGame();

注意:方法必须先定义后调用,否则程序将报错

带参数的方法定义和调用

  • 定义

    • 单个参数

      • public static void 方法名(参数) {
        ​
        }
        
      • public static void method(intn number) {
        ​
        }
        
    • 多个参数

      • public static void 方法名(参数1,参数2, ...) {
            
        }
        
      • public static void getSum(int number1, int number2) {
            
        }
        
  • 调用

    • 单个参数

      • 方法名(参数)
        
      • method(10);
        
      • method(变量);
        
    • 多个参数

      • 方法名(参数1, 参数2, ...)
        
      • getSum(10,20);
        
      • getSum(变量1, 变量2);
        

注意:方法调用时,参数的数量与类型必须与方法定义中小括号里面的变量一一对应,否则程序将报错

带返回值方法的定义和调用

方法的返回值其实就是方法运行的最终结果

  • 定义
public static 返回值类型 方法名(参数) {
    方法体;
    return 返回值;
}
public static int getSum(int a; int b) {
    int c = a + b;
    return c;
}
  • 调用

    • 直接调用

      • 方法名(实参);
        
    • 赋值调用

      • 整数类型 变量名 = 方法名(实参);
        
    • 输出调用

      • System.out.println(方法名(实参));
        

方法的注意事项

  • 方法不调用就不执行

  • 方法与方法之间是平行关系,不能互相嵌套定义

  • 方法的编写顺序和执行顺序无关

  • 方法的返回值类型为void,便是该方法没有返回值,没有返回值的方法可以省略return语句不写,如果要编写return,后面不能跟具体的数据

  • return语句下面,不能编写代码,因为永远执行不到,属于无效代码

  • return关键字

    • 方法没有返回值:可以省略不写,如果书写,表示结束方法
    • 方法有返回值:必须要写,表示结束方法返回结果

形参和实参

形参:全称形式参数,是指方法定义中的参数

实参:全称实际参数,方法调用中的参数

注意:方法调用时,形参和实参必须意义对应,否则程序将报错

方法的重载

  • 在同一个类中,定义多个同名的方法,这些同名的方法具有同种的功能
  • 每个方法具有不同的参数类型参数个数,这些同名的方法,就构成了重载关系
  • 简单记:同一个类中,方法名相同,参数不同的方法,与返回值无关
  • 参数不同:个数不同、类型不同、顺序不同
  • Java虚拟机会通过参数的不同来区分同名的方法
public static void compare(byte b1, byte b2) {
    sout(b1 == b2);
}
public static void compare(short s1, short s2) {
    sout(b1 == b2);
}
public static void compare(int i1, int i2) {
    sout(b1 == b2);
}
public static void compare(long l1, long l2) {
    sout(b1 == b2);
}

方法的内存

方法调用的基本内存原理

  • 方法被调用后就会进栈运行

  • 先进后出

基本数据类型和引用数据类型

从内存的角度去解释:

基本数据类型:数据值是存储在自己的空间中

特点:赋值给其他变量,也是赋的真实的值

引用数据类型:数据是存储在其他空间中,自己空间中存储的是地址值

特点:赋值给其他变量,赋的地址值

基本数据类型

  • 整数类型
  • 浮点数类型
  • 布尔类型
  • 字符类型

内存开辟在栈空间

变量中存储的是真实的数据

引用数据类型

  • 除了基本数据类型的其他所有类型

内存开辟在堆空间

变量存储的是地址值

引用:使用了其他空间中的数据

方法传递基本数据类型的内存原理

传递基本数据类型时,传递的是真实地数据,形参的改变,不影响实际参数的值

方法传递引用数据类型的内存原理

传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值