[Java学习笔记]方法:方法定义|方法重载|基本数据类型|引用数据类型

本文介绍了Java中方法的定义,包括简单方法、带参数和返回值的方法。此外,详细解释了方法的重载概念,以及基本数据类型(如int,double)与引用数据类型(如数组、String)在方法中使用的区别,强调了它们在调用时的内存影响。
摘要由CSDN通过智能技术生成

目录

1.在Java中如何定义方法(类似于C语言中的函数)?

2.方法的重载是什么?如何定义重载的方法?

3.什么是基本数据类型?什么是引用数据类型?他们在方法中的使用各有什么区别?


1.在Java中如何定义方法(类似于C语言中的函数)?

以下给出定义方法的三种形式:

//Java中程序最小执行单元是方法
public class demo61 {
    public static void main(String[] args) {
        myMethod1();
        myMethod2(20,80);//实参--实际参数
        System.out.println("调用带返回值的方法:"+myMethod3(20,80));
    }
    //1.简单的方法定义——方法名首字母小写更加规范
    public static void myMethod1(){
        System.out.println("调用简单方法");
        return;//这句话可以省略不写
    }
    //2.带参数的方法定义
    public static  void  myMethod2(int num1,int num2){//形参--形式参数
        System.out.println("调用带参数的方法:"+(num1+num2));
    }
    //3.带返回值的方法的定义
    public  static  int  myMethod3(int num1,int num2){
        return num1+num2;
    }

}

输出:


2.方法的重载是什么?如何定义重载的方法?

方法重载:在同一个类中,在一个类的多个方法中可以用同一个名字作为方法名

如:求不同个数的int类型变量的和(参数个数不同),再如:求不同类型变量(如double与int)的和(参数类型不同),都能用sum来命名方法。

简单来说,就是一个类中的同名方法形参(也就是方法定义中圆括号里面的定义的形参)必须不一样(类型,个数,先后顺序)

下面给出方法重载的案例:

public class demo62 {
    public static void main(String[] args) {
        int sum = sum(1, 0);//ctrl+alt+V自动补齐左边的数据:int sum =
    }
    //以下方法构成重载关系
    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;
    }
    public static double sum(double a, double b) {
        return (a + b);
    }
    public static double sum(int a, double b) {
        return (a + b);
    }
    public static double sum(double a, int b) {
        return (a + b);
    }
}

需要注意的是,方法的重载与返回类型无关,也就是说,如果方法名与形参都一样,只是返回类型不一样(如一个是int一个是byte),不构成重载关系,在IDEA中会报错。

程序在调用方法时会根据传过去的参数判断应该使用哪一个方法。


3.什么是基本数据类型?什么是引用数据类型?他们在方法中的使用各有什么区别?为什么在方法中为变量赋值后输出我的变量值并没有改变?

基本数据类型:如int,double,boolean,char

引用数据类型:其他,如int[],String,变量名存储的是存储数据的地址(引用地址)

在方法中,基本数据类型的形参实参相互不影响,引用数据类型形参实参相互关联:因为用的是同一处地址

以下是演示代码:

两个不同数据类型的变量在方法中进行赋值操作时的区别。

public class demo63 {
    public static void main(String[] args) {
        //方法调用时是存在栈内存中的,方法开始就是入栈,方法结束就出栈
        System.out.println("main方法入栈,a,b初始值皆为true");
        boolean a=true;
        System.out.println("基本数据类型a在调用change方法前:"+a);
        change(a);
        System.out.println("基本数据类型a在调用change方法后:"+a);

        boolean[] b={true};
        System.out.println("引用数据类型b在调用change方法前:"+b[0]);
        change(b);
        System.out.println("引用数据类型b在调用change方法后:"+b[0]);
        System.out.println("main方法出栈");
    }

    public  static void change(boolean a){
        System.out.println("change a 方法入栈");
        //这里的false赋值给了栈内存中change方法内的变量名a
        //不影响栈内存中main方法内的变量a
        a=false;
        System.out.println("基本数据类型a在change方法中时:"+a);
        System.out.println("change a 方法出栈");
    }

    public static void change(boolean[] b){
        System.out.println("change b 方法入栈");
        b[0]=false;
        System.out.println("引用数据类型b在change方法中时:"+b[0]);
        System.out.println("change b 方法出栈");
    }
}

输出结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值