黑马程序员技术交流社区

标题: 挑战传统>>>>积分来啦 [打印本页]

作者: 杨华东    时间: 2012-10-1 14:56
标题: 挑战传统>>>>积分来啦
本帖最后由 杨华东 于 2012-10-1 15:01 编辑

//关于继承的效率问题。请教大家。多多指教哦。嘿嘿嘿。
Fu
{
        //把父类构造函数私有化后,哥们都知道绝对不会在外部被创建对象。
       private Fu(){}
       //但是我们,可以对外提供访问规则。如下:
       public static  getInstance()
                             {
                                   Fu();
                              }
}
  //子类继承父类。
Zi extends Fu
{
      Zi()
        {
           //super语句的一种方式。
           super.getInstance();
        }
}
class Test{
   public static void main(String[] args){
              Zi  z = new Zi ();
}
}

//匆忙之际 写的(可能哪里有小错误,给我指出来。)  希望大家明白偶的意思。我的问题:上述这种初始化子类对象  和传统的哪个效率高点?或者说哪个好一些?
请大侠们指教。万分感谢。

作者: 胡斌    时间: 2012-10-1 15:51
你这种情况就是我的基础测试题。
个人觉得肯定是公有构造函数效率高!因为你这样做,无形之中又给程序执行增加了负担。
当你 new Zi();时,本来没有私有时,有系统直接调用构造函数初始化,而你在这个程序当中又在类中实现调用,又要多开辟内存,效率自然就低,所以书上的东西都是人们总结了的。
作者: 杨华东    时间: 2012-10-1 15:53
恩恩  有道理哈
作者: 胡斌    时间: 2012-10-1 15:58
恩恩,呵呵。多多交流!
作者: 翁鹏    时间: 2012-10-2 21:14
本帖最后由 翁鹏 于 2012-10-2 21:18 编辑

我觉得你这个设计的有问题!     你的父类是个不怎么完整的    单例设计模式   的代码。

class Fu
{
         private static final Fu f = new Fu();
         private Fu()
         {}
         public static void getInstance()
         {
                     return  f;
         }
}

所以,直接用Fu.getInstance()就可以获得唯一的一个对象。
作者: 徐-星星    时间: 2012-10-2 22:09
本帖最后由 娇赛赛 于 2012-10-2 22:11 编辑



作者: 武庆东    时间: 2012-10-2 22:24
单例模式!~ java23种设计冒失之一,效率时情况而定,没有比较性~
作者: 杨华东    时间: 2012-10-3 20:30
似的  了解了  谢谢你们啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2