首页 > 其他分享 >类的成员:方法(method)(三)

类的成员:方法(method)(三)

时间:2023-05-07 09:13:03浏览次数:29  
标签:形参 int 成员 System public void println 方法 method

形参和实参

形参(formal parameter):在定义方法时,方法名后面括号()中声明的变量称为形式参数,简称形参。

实参(actual parameter):在调用方法时,方法名后面括号()中的使用的值/变量/表达式称为实际参数,简称实参。

参数传递机制:值传递

Java里方法的参数传递方式只有一种:值传递。 即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。

形参是基本数据类型:将实参基本数据类型变量的“数据值”传递给形参

形参是引用数据类型:将实参引用数据类型变量的“地址值”传递给形参

举例

形参是基本数据类型

案例:编写方法,交换两个整型变量的值

    public static void main(String[] args) {
        SwapTest st = new SwapTest();

        int m = 1, n = 2;
        st.swap(m, n);
        System.out.println("m = " + m + ", n = " + n);
    }


    public void swap(int m, int n) {
        int temp = m;
        m = n;
        n = temp;
    }

输出变量未发生交换;

内存解析:

 

形参是引用数据类型

public class SwapTest {
    public static void main(String[] args) {
        SwapTest st = new SwapTest();
        Date d = new Date();

        int m = 1, n = 2;
        st.swap(m, n);
        System.out.println("使用方法 进行交换m = " + m + ", n = " + n);

        m = 1;
        n = 2;
        int temp = m;
        m = n;
        n = temp;
        System.out.println("直接进行 进行交换m = " + m + ", n = " + n);

        d.m = 100;
        d.n = 20;
        st.swap(d);
        System.out.println(d.m + "----" + d.n);
    }


    public void swap(int m, int n) {
        int temp = m;
        m = n;
        n = temp;
    }

    public void swap(Date date) {
        int temp = date.m;
        date.m = date.n;
        date.n = temp;
    }
}

class Date {
    int n;
    int m;
}

内存解析

 

 练习

public class TestTransValue {
    public static void main(String[] args) {
        TestTransValue tt = new TestTransValue();
        int a = 10, b = 10;
        tt.method1(a, b);
        //需要在 method 调用后,仅输出 a = 100,b = 200,请实现 method 方法逻辑
        System.out.println("a = " + a);
        System.out.println("b = " + b);

    }

    /**
     * 直接输出后,退出程序
     *
     * @param a
     * @param b
     */
    public void method(int a, int b) {
        System.out.println("a = " + a * 10 + " b = " + b * 20);
        System.exit(0);
    }

    /**
     * 重新 println方法实现
     *
     * @param a
     * @param b
     */
    public void method1(int a, int b) {
        PrintStream printStream = new PrintStream(System.out) {
            @Override
            public void println(String x) {
                if ("a = 10".equals(x)) {
                    x = "a = 100";
                } else if ("b = 10".equals(x)) {
                    x = "b = 200";
                }
                super.println(x);
            }
        };
        System.setOut(printStream);
    }
}

标签:形参,int,成员,System,public,void,println,方法,method
From: https://www.cnblogs.com/wdh01/p/17300233.html

相关文章

  • 类的成员:方法(method)(二)
    方法的重载(overload)概念及特点方法重载:在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可。         参数列表不同,意味着参数个数或参数类型的不同重载的特点:与修饰符、返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型......
  • k23_方法
    method(方法)Java中的方法是什么?简单点来说方法就是一种常用的功能,比如:你要写一个游戏程序的代码!超级玛丽之类的!超级玛丽没跳一下就需要运行一下某一段程序代码,但是你不能每次就将这个程序代码给全部写到某个程序代码的后面!这样就会显得很臃肿,代码有许多重复的!我们可以将重复的......
  • kaggle:Tweet Sentiment Extraction,提升分数的几种主要方法
    1.背景这次分享的是kaggle比赛TweetSentimentExtraction的第13名次的方法,作者主要用针对数据集进行前置处理或者是后置处理,具体原文:https://www.kaggle.com/c/tweet-sentiment-extraction/discussion/1595052.主要方法2.1RobertaModel这次比赛,大部分都是用了Roberta模型,其基础......
  • 2022最简单方法更新华为鸿蒙3.0系统HarmonyOS 3.0安装谷歌服务框架GMS谷歌应用商店Goo
    原视频:https://www.youtube.com/watch?v=AsAiuMKXOQYGbox谷歌框架官方下载地址:https://www.gboxlab.com/Gbox谷歌框架带谷歌应用商店的旧版本下载:https://www.mediafire.com/file/sj0l50pogpjwjnb/GBox-release-1.3.20.apk/file......
  • ARM平台安装Docker的方法
    转自:https://blog.51cto.com/u_11529070/3606178?b=totalstatistic1.找了一下有一个网站能够下载docker的arm的deb包可以使用网址为:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/arm64/建议下载最新版本的包我这边下载了三个:containerd.io_1.2.6-......
  • 类静态成员函数显式具体化的编译警告
    本文描述了在定义类的静态成员函数模板的显式具体化时出现的一个编译警告问题,并在解释其原因后给出了对应的解决办法。◆问题环境:macOSMojave(版本10.14.6),clang-1001.0.46.4(-std=c++11)头文件中定义了类的静态成员函数模板的显式具体化,代码编译没有出错,但出现如下警......
  • 【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无
    问题描述开发AzureJSFunction(NodeJS),使用mssql组件操作数据库。当SQL语句执行完成后,在Callback函数中执行日志输出 context.log("..."),遇见如下错误:Warning:Unexpectedcallto'log'onthecontextobjectafterfunctionexecutionhascompleted.Pleasecheck......
  • Linux下七种文件类型、文件属性及其查看方法
    1、七种文件类型普通文件类型Linux中最多的一种文件类型,包括纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.第一个属性为[-]目录文件就是目录,能用#cd命令进入的。第一个属性为[d],例如[drwxrwxrwx]块设备文件块设备文件:就是存储数据以......
  • Arrays方法
    Arrays方法Arrays里面包括了一系列静态方法,用于管理和操作数组toString方法Array.toString(arr);sort排序(自然排序和定制排序)int[]arr={1,2,4,1,5,1};Arrays.sort(arr);//默认是从大到小的//可以通过Compare接口来定制排序Arrays.sort(arr,newCompare(){@Ov......
  • 一种通过注入机制获取资源的方法
    目的:从地图网站上获取瓦片文件,但直接访问图片地址显示被禁止。需要绕开这个禁止。方法:通过在页面脚本中进行注入,在加载资源的时候,直接将资源下载到本地下载文件夹中关键:1、注入方法,将原事件函数指向新变量,用自己的函数替代,并执行原函数以保证程序正常运行;2、新变量仍在原对象......