java 备忘

this:是和特定对象关联的引用。

是调用方法的对象的引用,this 用法和其他对象引用并无不同。

 

this 在方法内 使用,表示对 调用方法的对象 的引用

当需要明确指出 对当前对象的引用时,才使用this关键字。

this —— 这个对象、当前对象(类型是引用,其实,因为是在堆上new的对象,对对象的操作永远都只能是引用。一切对象皆是引用。一旦哪个对象没有引用了,就可能要被销毁了

 

理解了this,有助于 对比理解static:

 

static的方法就是没有this的方法。(上面说了,this是和对象(的引用)关联,即和某一个具体对象相关!) 

static里不能含this,因为static可以用类名来调用,即可能连一个对象都没有创建的时候,就能用static, 如果static方法里含this了,那么this指的那个对象在哪里呢?? 就会矛盾了!

一个是和类相关的,一个是和具体对象相关的!

它们就是一对儿。

 

 

初始化:——(先指定初始化/自动初始化,自动初始化在构造器调用之前)构造器初始化 方便灵活

指定/自动初始化顺序 取决变量于定义的顺序。

 

 

 

 

 

 

 

 

关于this构造器 参考代码

java 备忘
public class ThisTest {

    private int i=0;

    //第一个构造器:有一个int型形参

    ThisTest(int i){

       this.i=i+1;//此时this表示引用成员变量i,而非函数参数i

       System.out.println("Int constructor i——this.i:  "+i+"——"+this.i);

       System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));

       //从两个输出结果充分证明了i和this.i是不一样的!

    }

    //  第二个构造器:有一个String型形参

    ThisTest(String s){

       System.out.println("String constructor:  "+s);

    }

    //  第三个构造器:有一个int型形参和一个String型形参

    ThisTest(int i,String s){

       this(s);//this调用第二个构造器

       //this(i);

      
       this.i=i++;//this以引用该类的成员变量

       System.out.println("Int constructor:  "+i+"/n"+"String constructor:  "+s);

    }

    public ThisTest increment(){

       this.i++;

       return this;//返回的是当前的对象,该对象属于(ThisTest)

    }

    public static void main(String[] args){

       ThisTest tt0=new ThisTest(10);

       ThisTest tt1=new ThisTest("ok");

       ThisTest tt2=new ThisTest(20,"ok again!");

      
       System.out.println(tt0.increment().increment().increment().i);

       //tt0.increment()返回一个在tt0基础上i++的ThisTest对象,

       //接着又返回在上面返回的对象基础上i++的ThisTest对象!

    }

}
java 备忘

 

 

 

 

 

 

java 备忘,布布扣,bubuko.com

java 备忘

上一篇:C语言每日小练(三)——abc排列问题


下一篇:java垃圾处理机制(一)