Java基础(8)(方法)

目录

方法

使用方法

方法好处

方法的格式

最简单的方法的定义和调用

带参数的方法定义和调用

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

方法的注意事项

方法的重载    

方法的内存



方法

方法是程序中最小的执行单元。

使用方法

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

方法好处

可以提高代码的复用性

可以提高代码的可维护性

方法的格式

方法的定义

把一些代码打包在一起,该过程称为方法定义。

方法的调用

方法定义后并不是直接运行的,需要手动调用才能执行,该过程称为方法调用。

方法的定义格式

public static 返回值类型 方法名 (参数){
        方法体;
        return 返回值;
}

最简单的方法的定义和调用

方法定义(格式)

public static void 方法名(){
        方法体(就是打包起来的代码);
}

方法定义(例子)

public static void playGame(){
        打印语句;
}

方法调用(格式)

格式
方法名();

方法调用(例子)

例子
playGame();

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

例子:

package Test;

public class Test22 {
    public static void main(String[] args) {
        //调用方法
        playGame();
    }
    //定义一个方法
    public static void playGame(){
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
        System.out.println(4);
        System.out.println(5);
    }
}

带参数的方法定义和调用

单个参数

格式
public static void 方法名(参数){... ...}

例子
public static void method(int number){... ...}

多个参数

格式
public static void 方法名(参数1,参数2,......){... ...} 

例子
public static void getSum(int number, int number2)
{... ...}

带参数方法的调用

单个参数

格式
单个参数:方法名(参数);
例子
metumd(10);
method(变量);

多个参数

格式
多个参数:方法名(参数1,参数2, ... ...);
例子
getSum(10,20);
getSum(变量1,变量2);

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

例子

package Test;

public class Test23 {
    public static void main(String[] args) {
        getSum(10,20);
    }
    public static void getSum(int num1, int num2){
        int result = num1 + num2;
        System.out.println(result);//30
    }
}

形参和实参

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

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

package Test;

public class Test23 {
    public static void main(String[] args) {
        getSum(10,20);//实参

        int a = 10;
        int b = 10;
        getSum(a,b);//实参
    }
    public static void getSum(int num1, int num2){
        int result = num1 + num2;
        System.out.println(result);
    }
}
// num1, num2 是形参

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

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

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

如果在调用处要根据方法的结果,去编写另一段代码逻辑。为了再调用处拿了方法产生的结果,就需要定义带有返回值的方法。

带返回值方法定义

格式
public static 返回值类型 方法名(参数){
      方法体;
      return 返回值;
}
例子
public static int getSum(int a, int b){
       int c = a + b;
       return c;
}

带返回值方法的调用

直接调用
方法名(实参);
赋值调用
整数类型 变量名 = 方法名(实参);
输出调用
System.out.println(方法名(实参));
package Test;

public class Test24 {
    public static void main(String[] args) {

        //直接调用
        getSum(10,20,30);//没有返回值

        //赋值调用
        int sum = getSum(10,20,30);
        System.out.println(sum);//60

        //输出调用
        System.out.println(getSum(10,20,30));//60

        
    }

    public static int getSum(int num1,int num2,int num3){
        int result = num1 + num2 + num3;
        return result;//返回给方法的调用处

    }
}

方法的注意事项

1.方法不调用就不执行

2.方法和方法之间是平级关系,不能相互嵌套

3.方法的编写顺序和执行顺序无关,与它的调用顺序有关。

4.方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略不写。如果要编写return,后面不能具体的数据。

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

return关键字

方法没有返回值:可以省略不写。如果书写,表示结束语句。

方法有返回值:必须要写。表示结束方法和返回结果。

方法的重载

        在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能。(同一个类中,方法名相同,参数不同的方法。与返回值无关)。

        每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系。(参数不同:个数不同,类型不同,顺序不同)。

例子

package Test;

public class Test25 {
    public static void main(String[] args) {
        int sum1 = sum(10,20);
        System.out.println(sum1);
        int sum2 = sum(10,20,30);
        System.out.println(sum2);
    }
    public static int sum(int a, int b){
        return a+b;
    }

    public static int sum(int a, int b, int c) {
        return  a+b+c;
    }
}
//java虚拟机会根据参数的不同来区分同名的方法

               

方法的内存

1.方法调用的基本内存原理

        方法被调用之后就会进栈执行·

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

基本数据类型

1.整数类型

2.浮点数类型

3.布尔类型

4.字符类型

在基础数据类型里面变量储存的是真实的数据。

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

引用数据类型(除了基础数据类型)

只要new出来的全是引用数据类型

引用数据类型中变量中储存的是地址值

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

从内存的角度去解释:

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

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

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

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

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

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

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

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

java内存分配

方法运行时使用的内存,方法进栈运行,运行完毕就出栈
new出来的,都在堆内存中开辟了一个小空间
方法区储存可以运行的class文件
本地方法栈JVM在使用操作系统的时候使用,和我们开发无关
寄存器给CPU使用,和我们开发无关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值