方法与重载

本文讲解了方法定义与调用的基本概念,包括形参与实参的区别、方法重载的特点、构造函数的作用及其自动调用机制,并探讨了参数传递时基本数据类型与引用数据类型的差异。

方法及重载

带参方法方法定义处的参数名(形参)

带参方法调用处的参数名(实参)

带参方法方法定义处的参数名(形参)可以和方法调用参数名(实参)可以不一致,但是要见名知义.名字要遵循驼峰命名规则.
在这里插入图片描述
调用方法处也可以直接写值,也可以写变量名.
在这里插入图片描述

  • 方法有没有返回值和方法有没有参数没有任何关系.

  • 参数可以写多个.

  • 参数没有顺序限制.(怎么舒服怎么写)

  • 但是实参要按照形参的顺序写.

常见错误

同类方法中可以直接用成员变量,不用新建对象.

xxxxx.(); // 调用同类方法;

数据在传参时的区别

  • 类也是一个数据类型.

  • 自定义数据类型也是引用数据类型.

  • 基本数据类型不能.xxx

  • 引用数据类型是能.xxx的

  • 参数传递是基本数据类型时,参数的变化不保留.

  • 参数传递是引用数据类型时,参数传递会保留.

  • 基本数据类型传参时是会在内存中开辟一个副本来传值.

  • 引用数据类型传参时会传同一个内存地址.

  • 基本数据类型传值,引用数据类型传址

  • 数组不管是什么数据类型的数组都是引用数据类型. 能点出来参数.

  • 数组也可以是对象数组,也属于引用数据类型. main方法不管是在类里或类外使用方法都 要创建对象.

构造函数

  1. 构造函数没有返回值类型
  2. 构造函数的函数名必须要与类名一致
  3. 构造函数并不是我们手动调用的,而是在创建对象时,jvm自动调用对应构造函数的.
    在这里插入图片描述
    构造函数的作用: 给对应的对象进行初始化.
    在这里插入图片描述
  • 一个类里默认有一个无参的构造方法,该方法缺少返回值,如果一旦手动添加有参构造方- - 法,默认的无参构造方法就会被替代.想要用无参构造方法,就要写出来.

this关键字

  • this.是当前对象
  • 谁new了对象,this.就是那个对象.
  • 一个类中允许出现多个同名但不同参数的方法,这种方法叫方法重载.
  • 方法重载与访问修饰符与返回值没有关系.
  • this也可以用来调用构造方法 this(xxx); 必须写在构造中的有效代码的第一行.

成员变量与局部变量

  • 局部变量只能作用于方法中,成员变量可以作用于一个类中。
  • 成员变量和局部变量的名字可以一样,但使用时局部变量优先级高于成员变量。
  • 局部变量使用要初始化。
  • 成员变量使用可以不用初始化(有默认值)
方法重载(Overloading)是指在同一个类中可以定义多个具有相同名称但参数列表不同的方法。其原理和应用如下: - **概念**:方法重载要求方法名相同,但参数的数量或类型不同,且虽然参数不同,但方法的功能可能相似或完全相同。例如,在一个类中可以定义多个名为`add`的方法,一个`add`方法可能接受两个整数作为参数,另一个`add`方法可能接受两个浮点数作为参数[^1]。 - **原理**:方法重载是由静态类型确定的,在类加载的时候即可确定,属于静态分派。在类加载机制中的解析阶段,如果在方法真正运行之前就可以唯一确定具体要调用哪一个重载方法,且这个方法在运行期间是不可变的,那么该方法会在解析阶段直接被替换为直接引用;否则只能等到运行时才能最终确定具体调用的重载方法[^1][^2]。 - **应用**:方法重载是Java多态性的一种表现形式,允许同一个名字的方法在不同情况下以不同的方式实现。它可以提高代码的可读性和可维护性,让开发者可以使用相同的方法名来处理不同类型或数量的参数,而不需要为每个不同的参数组合都创建一个新的方法名。 ```java public class MethodOverloadingExample { // 重载方法1:接受两个整数 public int add(int a, int b) { return a + b; } // 重载方法2:接受两个浮点数 public double add(double a, double b) { return a + b; } // 重载方法3:接受三个整数 public int add(int a, int b, int c) { return a + b + c; } public static void main(String[] args) { MethodOverloadingExample example = new MethodOverloadingExample(); System.out.println(example.add(1, 2)); System.out.println(example.add(1.5, 2.5)); System.out.println(example.add(1, 2, 3)); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值