美文网首页
是否可以从一个static方法内部发出对非static方法的调用

是否可以从一个static方法内部发出对非static方法的调用

作者: 善思者_tin | 来源:发表于2020-01-20 16:24 被阅读0次

    一、概述

    在我们开发过程中,经常会使用到static关键字。包括在工具类的使用static修饰静态方法,和final结合起来使用定义属性。

    二、问题回答

    问题:是否可以从一个static方法内部发出对非static方法的调用?

    答:不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。

    三、static总结

    static使用的注意事项有哪些?

       1、 在静态方法中是没有this关键字的

        2、静态是随着类的加载而加载,this是随着对象的创建而存在。

       3、 静态比对象先存在。

        4、静态方法只能访问静态的成员变量和静态的成员方法【静态只能访问静态,非静态可以访问静态的也可以访问非静态的】

    static关键字的特点?

        1、随着类的加载而加载

        2、优先于对象存在

        3、被类的所有对象共享

        4、可以通过类名调用【静态修饰的内容一般我们称其为:与类相关的,类成员】

    使用static存在什么问题?

        1、占用内存,并且内存一般不会释放;

        2、在系统不够内存情况下会自动回收静态内存,这样就会引起访问全局静态错误。

        3、在Android中不能将activity作为static静态对象,这样使activity的所有组件对象都存入全局内存中,并且不会被回收;


    相关文章

      网友评论

          本文标题:是否可以从一个static方法内部发出对非static方法的调用

          本文链接:https://www.haomeiwen.com/subject/gfijzctx.html