java中的 private Logger log=Logger.getLogger(this.getClass());
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())这样写,有什么好处? 
这样一来你只需要在基类中写一行代码就可以了,子类可以直接使用,这也是复用的原则。
- package com.zhaipuhong.j2se.keywords;
 - public class ThisKeywordsA {
 - protected String className = this.getClass().toString();
 - public ThisKeywordsA(){
 - System.out.println("ThisKeywordsA className == " + className);
 - }
 - }
 - package com.zhaipuhong.j2se.keywords;
 - public class ThisKeywordsB extends ThisKeywordsA{
 - public ThisKeywordsB(){
 - System.out.println("ThisKeywordsB className == " + className);
 - }
 - /**
 - * @param args
 - */
 - public static void main(String[] args) {
 - // TODO Auto-generated method stub
 - ThisKeywordsB b = new ThisKeywordsB();
 - }
 - }
 
运行结果: 
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());的更多相关文章
- Java中public,private,protected,和默认的区别
		
Java中public,private,protected,和默认的区别 1.private修饰词,表示成员是私有的,只有自身可以访问: 2.protected,表示受保护权限,体现在继承,即子类可以 ...
 - Java中,什么时候用logger.debuge,info,error
		
简单的说,就是配合log的等级过滤输出比如,你在开发的时候,要验证一个方法有没有被调用到,为了方便调试,通常会在这个方法开始的时候加一些system.out.但是项目真正发布的时候这些代码通常是要移除 ...
 - [转]Java中的private、protected、public和default的区别
		
原文地址:http://my.oschina.net/u/1169535/blog/403589 (1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类.接口. ...
 - Java中的private、protected、public和default的区别
		
(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类.接口.异常等.它往往用于对外的情况,也就是对象或类对外的一种接口的形式. (2)对于protec ...
 - java中public private protected default的区别
		
1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直 ...
 - Java中的private protected public和default的区别
		
转至:http://blog.sina.com.cn/s/blog_74c571240101jaf5.html 类内部 本包 子类 外部包 public √ √ √ √ pro ...
 - java中的log中的用法和小结
		
Log.logInfo(s.toString());的控制台显示 jog.info的具体用法. import java.io.*; import org.apache.log4j.Logger; im ...
 - java中log的应用
		
log的简单应用 备忘 加入jar包commons-logging-1.1.jar log4j.properties 如下(就放在src根目录底下 名字和位置都不要变) #OFF.FATAL.ERRO ...
 - Java日志组件1---Jdk自带Logger(java.util.logging.Logger)
		
最近在看日志的一些东西,发现利用JDK自带的log也可以简单的实现日志的输出,将日志写入文件的过程记录如下: 1.新建LogUtil.Java( 里面写了几个静态方法,为log设置等级.添加log控制 ...
 
随机推荐
- hexo next主题为博客添加分享功能
			
title: hexo next主题为博客添加分享功能 date: 2018-01-06 20:20:02 tags: [hexo博客, 博客配置] categories: hexo next主题配置 ...
 - react 开发知识准备
			
react react使用教程 babel babel 可用于ES6转换为ES5,jsx转换为原生js. ES6 ES6 语法 webpack webpack打包工具,它把不同的.相互依赖的静态资源都 ...
 - 生成器&迭代器
			
通过列表生成式,我们可以快速创建一个列表,但是受到内存的限制,列表容量是有限的,而且一个包含100万个元素的列表不仅占用很大的存储空间,如果我们仅仅需要访问当前几个元素,那后面绝大多数元素占用的空间都 ...
 - mysql5.7 设置远程访问
			
mysql5.7设置远程访问不是和网上说的一样建个用户赋个权限就可以访问的.比如下边这个就是建用户赋权限,可能在之前的版本可以,但是我在我的mysql上一直不行.为此烦了好久!!!项目都耽误了!! 一 ...
 - Coursera课程 Programming Languages, Part B 总结
			
Programming Languages, Part A Programming Languages, Part B Part A 笔记 碎言碎语 很多没有写过 Lisp 程序的人都会对 Lisp ...
 - set排序(个人模版)
			
set排序: #include<stdio.h> #include<string.h> #include<iostream> #include<set> ...
 - 基于Windows下python3.4.1IDLE常用快捷键小结
			
安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使用ALT+G 跳到对应行号,在右下角有显示光标所在行.列.ALT ...
 - MySQL的ibdata1文件占用过大
			
处理MySQL的ibdata1文件过大问题 本人遇到一次在安装zabbix监控的时候,yum安装的MySQL数据库,后面用了一段时间发现data目录下的ibdata1的空间特别大,反而我的zabbix ...
 - 调用webService的几种方式
			
转自:http://blog.csdn.net/u011165335/article/details/51345224 一.概览 方式1: HttpClient:可以用来调用webservie服务,也 ...
 - UEP-时间
			
时间戳转化为Date(or String) SimpleDateFormat format = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ...