关于static方法调用


问:java什么时候可以直接用类名调用方法?


答:

1. 方法是static的 ,则可以用类名调用 eg:BaseDao.getConnection();否则就需要new一个对象调用

原因:

  • 静态方法跟非静态方法主要的区别在于生命周期。
  • 静态方法的生命周期从进程被创建就开始了,直到进程结束,所以说静态方法是全局的,贯穿整个进程。
  • 非静态方法的生命周期,从类实例化对象开始,直到实例对象被注销回收之后结束。

2.注意:如果该类没有对应的构造方法就会造成不能new,因此就需要调用静态方法来生成对象(因为静态方法可以创建自身的对象)

java中一个类中没有公共的构造方法,则说明不能让外界去new对象。
   有以下几种情况:
   A:成员全部是静态的(如:Math类,Arrays数组工具类,Collections集合工具类)
   B:单例设计模式(如:Runtime运行时类)
   C:类中有静态方法返回该类的对象(如:InetAddress)
   
 示例:


       class Demo {
          private Demo(){} // 有私有构造方法,没有公有构造方法
  
         public static Demo getXxx() {
          return new Demo(); // 返回该类对象
        }
         }
posted @ 2021-12-08 19:23  卡卡发  阅读(331)  评论(0)    收藏  举报