• Java的方法重载、变量和值传递


    一、方法重载

    1、定义

    在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可

    "两同一不同":同一个类、相同方法名
                 参数列表不同:参数个数不同、参数类型不同

    2、举例

    Arrays类中重载的sort() / binarySearch()

    3、.如何判断是重载

    跟方法的权限修饰符、返回值类型、形参变量名、方法都没有关系

    4、在通过对象调用方法时,如何确定某一个指定的方法

    方法名==>参数列表

    5、示例

    1. public class OverLoadTest {
    2. public static void main(String[] args) {
    3. OverLoadTest test=new OverLoadTest();
    4. test.getSum(1,2);
    5. }
    6. public void getSum(int i,int j){
    7. System.out.println("1");
    8. }
    9. public void getSum(double d1,double d2){
    10. System.out.println("2");
    11. }
    12. public void getSum(String s,int j){
    13. System.out.println("3");
    14. }
    15. public void getSum(int i,String s){
    16. System.out.println("4");
    17. }
    18. }

    如上,有四个getSum方法,构成了四个重载

    二、变量的赋值

    1、关于变量的赋值

    ①如果变量是基本数据类型,此时赋值的是变量所保存的数据值

    ②如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值

    2、示例
    1. public class ValueTransferTset {
    2. public static void main(String[] args) {
    3. System.out.println("基本数据类型");
    4. int m=10;
    5. int n=m;
    6. System.out.println("m = "+m+", n = "+n);
    7. n=20;
    8. System.out.println();
    9. System.out.println("m = "+m+", n = "+n);
    10. Order o1=new Order();
    11. o1.orderId=1001;
    12. Order o2=o1;
    13. System.out.println("o1.orderId = "+o1.orderId+", o2.orderId = "+o2.orderId);
    14. o2.orderId=1002;
    15. System.out.println("o1.orderId = "+o1.orderId+", o2.orderId = "+o2.orderId);
    16. }
    17. }
    18. class Order{
    19. int orderId;
    20. }

    三、方法的形参的传递机制:值传递

    1、形参与实参

    形参:方法定义时,声明的小括号内的参数

     实参:方法调用时,实际传递给形象的数据

    2、值传递机制:

    * 如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值
    * 如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值

    3、示例

    1. public class ValueTransferTset1 {
    2. public static void main(String[] args) {
    3. int m=10;
    4. int n=20;
    5. System.out.println("m = "+m+", n = "+n);
    6. ValueTransferTset1 test=new ValueTransferTset1();
    7. test.swap(m,n);
    8. System.out.println("m = "+m+", n = "+n);
    9. }
    10. public void swap(int m,int n){
    11. int temp=m;
    12. m=n;
    13. n=temp;
    14. System.out.println("m = "+m+", n = "+n);
    15. }
    16. }

    交换两个变量的值的操作:

    int temp=m;
    m=n;
    n=temp;

  • 相关阅读:
    C++ Qt开发:QProcess进程管理模块
    延时任务-基于netty时间轮算法实现
    vue3+ts 使用vue-print-nb 打印功能【完美】
    3D游戏建模学习路线
    Leetcode刷题详解——找到字符串中所有字母异位词
    校园表白墙源码修复版
    JAVA:List 与 数组 相互转换
    在 Spring Data应用程序中使用Criteria条件查询
    Vue3 Diff算法之最长递增子序列,学不会来砍我!
    lintcode 1840 · 矩阵还原【中等 vip 二维前缀和数组】
  • 原文地址:https://blog.csdn.net/weixin_49757916/article/details/125368942