首页 > 其他分享 >"静态方法和实例方法" 这两种函数调用的区别

"静态方法和实例方法" 这两种函数调用的区别

时间:2023-08-06 10:45:01浏览次数:42  
标签:调用 静态方法 RegexDemo 函数调用 实例 func 方法

来看两段代码

第一段:

public class RegexDemo {
    public static void main(String[] args) {
        func();
    }

    private static void func() {
        String input = "123456";
        boolean matches = input.matches("\\d+");
        System.out.println(matches);
    }
}

第二段:

public class RegexDemo {
    public static void main(String[] args) {
        RegexDemo demo = new RegexDemo();
        demo.func();
    }

    private void func() {
        String input = "123456";
        boolean matches = input.matches("\\d+");
        System.out.println(matches);
    }
}

这两种函数调用的区别在于静态方法和实例方法的使用。

在第一个示例中,func() 方法是一个静态方法,可以直接通过类名调用,无需创建类的实例。在 main() 方法中直接调用 func() 方法即可。

在第二个示例中,func() 方法是一个实例方法。首先需要创建 RegexDemo 类的实例 demo,然后通过实例 demo 调用 func() 方法。

两种方式的区别在于对于静态方法,可以直接通过类名调用,而实例方法需要通过类的实例调用。

在这两个示例中,由于 main() 方法是静态方法,所以在第二个示例中需要先创建 RegexDemo 类的实例才能调用实例方法 func()

总结起来,静态方法可以直接通过类名调用,而实例方法需要通过类的实例调用。选择使用哪种方式取决于方法的功能和调用的需求。如果方法不依赖于类的实例变量或方法,可以考虑将其定义为静态方法。如果方法需要访问实例变量或方法,或者需要在方法内部创建实例对象,那么将其定义为实例方法更合适。

标签:调用,静态方法,RegexDemo,函数调用,实例,func,方法
From: https://www.cnblogs.com/jarsing/p/17609150.html

相关文章

  • 【ACM专项练习#03】打印图形、栈的合法性、链表操作、dp实例
    运营商活动题目描述小明每天的话费是1元,运营商做活动,手机每充值K元就可以获赠1元,一开始小明充值M元,问最多可以用多少天?注意赠送的话费也可以参与到奖励规则中输入输入包括多个测试实例。每个测试实例包括2个整数M,K(2<=k<=M<=1000)。M=0,K=0代表输入结束。输出对于每个测试实......
  • python的类方法--实例对象方法
    https://blog.csdn.net/weixin_60535956/article/details/127432990  方法区别若要修改实例的属性值,直接使用实例方法。若要修改类的属性值,直接使用类方法若是辅助功能(如打印菜单等),考虑使用静态方法,即可在不创建对象的前提下使用。注意:使用类名不能访问实例属性或实例......
  • MySQL多实例
    MySQL多实例介绍应用场景:资金紧张公司若公司资金紧张,公司业务访问量不太大,但又希望不同业务的数据库服务各自能够尽量独立地提供服务而互相不受影响,或者,还有需要主从复制等技术提供备份或读写分离服务的需求,那么,多实例就再好不过了。用户并发访问量不大的业务当公司业务访问......
  • android mvvm实例解析
    MVVM架构,将整个应用分为三层,View层,VM层,Model层。其中View层单向引用VM层,VM层单向引用Model层。如上图。单向引用,而非双向引用,这是MVVM与MVP最大的区别。View层,只是单向引用VM层,VM层不需要引用View层,但是却可以更新View层。这是通过VM层的观察者模式实现的,在这里使用架构组件Liv......
  • 通过一个实例了解 va_list
    VA_LIS是在C语言中解决【变参问题】的一组宏,【变参问题】是指参数的个数不定,可以传入一个参数也可以是多个;可变参数中的每个参数的类型可以不同,也可以相同;可变参数的每个参数并没有实际的名称与之相对应,用起来是很灵活。其中va_list(VA_LIST是在C语言中解决变参问题的一......
  • 使用Vue+Vite搭建在线 C++ 源代码混淆工具,带在线实例
    就酱紫github开源地址:https://github.com/dffxd-suntra/cppdgithub在线实例:https://dffxd-suntra.github.io/cppd/预览图片:长截屏背景图重复了,抱歉......
  • mybatis mapper接口实例化原理
       面试题来了:“我们都知道mybatis的mapper接口是没有实现类的,在使用的时候你知道它是如何实例化的吗?”懵逼的我:“知道啊,用的是jdk自带的动态代理;”;饥渴的面试官:“嗯,没错,继续说,它底层做了哪些事情?”;懵逼的我:“就是动态代理啊,还有啥?”得意的面试官:“这样子啊,那你回去等......
  • DB2删除实例
    要删除实例:以具有root用户权限的用户身份登录。可选:如果您确定不再需要关联数据库中的数据,您可以在删除实例之前从系统中删除数据库文件或删除数据库。通过输入以下命令删除实例:DB2DIR/instance/db2idropInstName其中 DB2DIR是您在Db2数据库产品安装期间指定的位......
  • 基于GPT搭建私有知识库聊天机器人(五)函数调用
    文章链接:基于GPT搭建私有知识库聊天机器人(一)实现原理基于GPT搭建私有知识库聊天机器人(二)环境安装基于GPT搭建私有知识库聊天机器人(三)向量数据训练基于GPT搭建私有知识库聊天机器人(四)问答实现OpenAI在6月13日发布了几个重磅更新,其中包括:开放了16k上下文的GPT-3.5-Turbo模型gpt-3.5-t......
  • 三个实例演示 Java Thread Dump 日志分析
    jstackDump日志文件中的线程状态dump文件里,值得关注的线程状态有:死锁,Deadlock(重点关注) 执行中,Runnable  等待资源,Waitingoncondition(重点关注) Waitingonmonitorentry(重点关注)暂停,Suspended对象等待中,Object.wait()或TIMED_WAITING阻塞,Blocked(重点关注)......