this.getClass()得到什么?

this 表示当前对象的引用;

getClass() 是 java.lang.Object 中的方法,它返回一个对象的运行时类; 
this.getClass() 就是返回当前对象的运行时类。

Logger.getLogger(this.getClass())又得到什么? 
他得到一个Logger对象,这个Logger将监视this.getClass()这个运行时类,这个运行时类里面你可能创建了log.info(""), log.debug(""),……等语句,那么这些语句就会根据你预先定义的Logger级别来输出你的日志。就跟你写System.out.print("")一样,不同的是Logger可以根据需要按级别进行日志输出控制。(当然这只是一方面)

Logger.getLogger(this.getClass())这样写,有什么好处? 
这样一来你只需要在基类中写一行代码就可以了,子类可以直接使用,这也是复用的原则。

  1. package com.zhaipuhong.j2se.keywords;
  2. public class ThisKeywordsA {
  3. protected String className = this.getClass().toString();
  4. public ThisKeywordsA(){
  5. System.out.println("ThisKeywordsA className == " + className);
  6. }
  7. }
  8. package com.zhaipuhong.j2se.keywords;
  9. public class ThisKeywordsB extends ThisKeywordsA{
  10. public ThisKeywordsB(){
  11. System.out.println("ThisKeywordsB className == " + className);
  12. }
  13. /**
  14. * @param args
  15. */
  16. public static void main(String[] args) {
  17. // TODO Auto-generated method stub
  18. ThisKeywordsB b = new ThisKeywordsB();
  19. }
  20. }

运行结果: 
ThisKeywordsA className == class com.zhaipuhong.j2se.keywords.ThisKeywordsB 
ThisKeywordsB className == class com.zhaipuhong.j2se.keywords.ThisKeywordsB

由于B继承A,A对象首先被创建(请不要考虑抽象类和接口^_^)然后作为B对象的字对象创建B 对象. 此时的Logger就是B对象的一部分,可以为B对象所用。

this指的是子类的对象

java中的 private Logger log=Logger.getLogger(this.getClass());的更多相关文章

  1. Java中public,private,protected,和默认的区别

    Java中public,private,protected,和默认的区别 1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以 ...

  2. Java中,什么时候用logger.debuge,info,error

    简单的说,就是配合log的等级过滤输出比如,你在开发的时候,要验证一个方法有没有被调用到,为了方便调试,通常会在这个方法开始的时候加一些system.out.但是项目真正发布的时候这些代码通常是要移除 ...

  3. [转]Java中的private、protected、public和default的区别

    原文地址:http://my.oschina.net/u/1169535/blog/403589 (1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类.接口. ...

  4. Java中的private、protected、public和default的区别

        (1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类.接口.异常等.它往往用于对外的情况,也就是对象或类对外的一种接口的形式. (2)对于protec ...

  5. java中public private protected default的区别

    1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直 ...

  6. Java中的private protected public和default的区别

    转至:http://blog.sina.com.cn/s/blog_74c571240101jaf5.html    类内部  本包  子类 外部包  public    √  √  √  √ pro ...

  7. java中的log中的用法和小结

    Log.logInfo(s.toString());的控制台显示 jog.info的具体用法. import java.io.*; import org.apache.log4j.Logger; im ...

  8. java中log的应用

    log的简单应用 备忘 加入jar包commons-logging-1.1.jar log4j.properties 如下(就放在src根目录底下 名字和位置都不要变) #OFF.FATAL.ERRO ...

  9. Java日志组件1---Jdk自带Logger(java.util.logging.Logger)

    最近在看日志的一些东西,发现利用JDK自带的log也可以简单的实现日志的输出,将日志写入文件的过程记录如下: 1.新建LogUtil.Java( 里面写了几个静态方法,为log设置等级.添加log控制 ...

随机推荐

  1. linux之 NFS服务器与客户端的安装与配置

    今天实验室需要搭建NAS,我负责的是NFS的安装与配置,现将整理的文档分享一下: 参考一:Linux下rpm 安装包方式安装 http://linux.chinaunix.net/techdoc/be ...

  2. Redis进阶实践之二如何在Linux系统上安装安装Redis

    一.引言      上一篇文章写了"如何安装VMware Pro虚拟机"和在虚拟机上安装Linux操作系统.那是第一步,有了Linux操作系统,我们才可以在该系统上安装Redis. ...

  3. Nginx常用配置实例(4)

    Nginx作为一个HTTP服务器,在功能实现方面和性能方面都表现得非常卓越,完全可以与Apache相媲美,几乎可以实现Apache的所有功能,下面就介绍一些Nginx常用的配置实例,具体包含虚拟主机配 ...

  4. 谈谈promise

    最近在看<你不知道的javascript中卷>,发觉作者花了基本一半的篇幅去讲异步和promise,觉得有必要总结一下. 其实本文的目的是想手写一个Promise的,无奈总结着总结着发觉篇 ...

  5. 有关python下二维码识别用法及识别率对比分析

    最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar .zbarlight.zxing. 1.三个模块的用法: #-*-coding=utf-8-*- import ...

  6. 阿里云Centos 7.4 mssql-server

    1.阿里云服务器控制台,开启1433端口(出入方向都要开).自从微软发布linux版本后,控制台常用端口下拉列表也增加了1433. 2.如果你没配置阿里云yum源,可参照配置一下.http://www ...

  7. HDU2009

    求数列的和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  8. Spring学习日志之Spring MVC启动配置

    对DispatcherServlet进行配置 Spring MVC的配置实际上就是对DispatcherServlet的配置 public class DispatcherServletConfig ...

  9. Spring框架学习笔记(5)——自动装配

    1.通过bean标签的autowire属性可以实现bean属性的自动装配. 创建一个新的Spring配置文件beans-autowire.xml,这里我们配置了3个bean,Address.Car.P ...

  10. IE8兼容border-radius.

    我们知道,CSS3新增的很多简洁优美的属性,比如border-radius.box-shadow.border-image.gradients.RGBA...因为这些属性的出现,我们可以很方便的就写会 ...