黑马程序员技术交流社区

标题: 接口实现类中成员变量问题 [打印本页]

作者: joeywr    时间: 2015-8-21 21:48
标题: 接口实现类中成员变量问题
   今天看了一下commons-logging的源码,看到Log接口的实现类的时候,发现一个问题,在这些实现类的构造方法中,为成员变量name和logger赋值之前,都会先把它们置为null。以Log4JLogger为例吧:

public class Log4JLogger implements Log, Serializable {
        private transient Logger logger;
        private String name;
        public Log4JLogger() {
                logger = null;
                name = null;
        }

        public Log4JLogger(String name) {
                logger = null;
                this.name = null;
                this.name = name;
                logger = getLogger();
        }

        public Log4JLogger(Logger logger) {
                this.logger = null;
                name = null;
                name = logger.getName();
                this.logger = logger;
        }
//.......getter、setter等其他代码.........
}
这样做有什么好处呢?
作者: 小朱    时间: 2015-8-21 21:51
就看源码了啊  不错哦
作者: joeywr    时间: 2015-8-22 11:03
总结了下
这个还是要看具体的类型,
例如基本类型 ,全局变量  int a;   a的值默认为 0;
                            全部变量 String str;str的默认值为null;
                            static boolean flag;   flag的默认值为false;
然后自己试了一下,查了下具体默认值
如果 只声明对象类型的引用,那引用指向 null
作者: groij    时间: 2015-8-22 15:41
如果不把它们设置成相应的初始化值,而它们又要存在,那该设置成什么???




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