16 this和构造代码块

this关键词---当前类的对象的引用

public class Public {
    String name;
    int age;
    public static void main(String[] args) {

    }
    public Public(String n,int a) //构造方法 
    {
        name=n;  //参数名和属性名不相同那么就没有关系
        age=a;
    }

    
    /*public Public(String name,int age) //构造方法 
    {
        name=name; //这个是属性的变量和参数的变量重名了,这个时候按照方法的就近原则,这行
        代码相当于方法参数的name给自己赋值,而不是方法参数name给属性name赋值.
        age=age;
    }*/
   

    /*public Public(String name,int age) //构造方法 
    {
        this.name=name;  //这个时候this.name 就代表属性name
        this.age=age;
    }*/
   

}

在类还在编译的时候没有对象,此时this就可以代替还没有产生的对象去调用本类的属性和方法.创建对象的时候this就指代了这个对象

 this可以替代很多的对象。

哪个实例对象在使用this就指代为哪个对象----灵活的指代

this是虚拟的指代,他不是一个对象.。

this语句 ---在构造方法中使用,去调用本类中其他形式的构造方法,要在首行,要有出口.

this语句只能在本类构造方法中调用其他形式的构造方法 并且保证this语句出现在构造方法第一行

public class Public {
    String name;
    int age;
    public static void main(String[] args) {

    }
    public Public() //构造方法 
    {
        
    }

    
    public Public(String name) //构造方法 
    {
        this();//这个就是this语句,此时调用的是无参构造函数 ,嵌套调用此时是有出口的,调用到无参构造函数结束
    this.name=name; 
        
    }
   

    public Public(String name,int age) //构造方法 
    {
        this(name);//this语句此时调用的是Public(String name)
        this.age=age;
    }
   

}

 构造代码块---在类内方法外{}    

调用任意的构造方法都会默认执行构造代码块,构造代码块优先于任意的构造方法

构造代码块可以给属性赋予初始值和调用方法

posted @ 2019-06-19 14:27  三十六烦恼风x  阅读(213)  评论(0编辑  收藏  举报