码迷,mamicode.com
首页 > 其他好文 > 详细

Chapter5_初始化与清理_this关键字

时间:2017-07-15 19:58:17      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:自身   chap   语句   inf   完成   main   player   不能   静态方法   

  this关键字是Java中一类很特殊的关键字,首先它只能在方法内使用,用来表示调用这个方法的对象,在这一点上this和其他对对象的引用的操作是相同的。我们之所以可以在方法内部访问到它是因为编译器在方法调用时,会将调用方法的对象作为第一个参数传到方法里面。下面列举几个例子来对this的用途做一些总结。

  (1)作为返回值,返回当前对象的引用,在一条语句里对同一个对象做多次操作。  

 1 class leaf{
 2     int count;
 3     
 4     public leaf(){
 5         count = 0;
 6     }
 7     
 8     public leaf increse(){
 9         count++;
10         return this;
11     }
12 }
13 
14 public class test {
15     public static void main(String[] args){
16         leaf l = new leaf();
17         l.increse().increse().increse();
18         System.out.println(l.count);
19     }
20 }

  (2)将自身传递给外部的方法,用于代码复用

 1 class sculpture{
 2     String done;
 3     
 4     public sculpture getSculped(){
 5         return sculptor.make(this);
 6     }
 7     
 8     public void info(){
 9         System.out.println(done);
10     }
11 }
12 
13 class sculptor{
14     public static sculpture make(sculpture s){
15         s.done = "yes";
16         return s;
17     }
18 }
19 
20 public class test {
21     public static void main(String[] args){
22         new sculpture().getSculped().info();
23     }
24 }

  这段代码实现的事情是,每一个sculpture(雕塑)都可以调用自己的getSculped方法,把自己传给sculptor(雕塑家)的一个静态方法,来完成雕塑。这样做的好处是每一个sculpture都可以调用外部方法,来完成雕塑的过程,实现对代码的复用。

  (3)在构造器中调用构造器

 1 class footballteam{
 2     int count;
 3     
 4     public footballteam(){
 5         this(23);
 6     }
 7     
 8     public footballteam(int count){
 9         this.count = count;
10     }
11     
12     public void info(){
13         //this(22);报错!
14         System.out.println("we have " + count + " players");
15     }
16 }
17 
18 public class test {
19     public static void main(String[] args){
20         footballteam rma = new footballteam();
21         rma.info();
22     }
23 }

  程序的第五行在默认构造器中调用了一次带参数的构造器,这样可以有不同的调用构造器的方法。另外13行的出错信息告诉我们,不能在除构造器之外的方法内调用构造器

Chapter5_初始化与清理_this关键字

标签:自身   chap   语句   inf   完成   main   player   不能   静态方法   

原文地址:http://www.cnblogs.com/buaa-zzy/p/7183791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!