zoukankan      html  css  js  c++  java
  • 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;
        }
       
    
    }

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

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

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

  • 相关阅读:
    VS2010程序打包
    Extjs布局
    Extjs4.x完美treepanel checkbox无限级选中与取消
    extjs 4.2 日期控件 选择时分秒功能
    extjs4.0下的日期控件的星期显示为y的解决办法
    linux下mysql 配置
    坐标轴笔记
    cpp 内嵌函数(lambda,struct)
    ue4 笔记
    ue4 蓝图方法备份
  • 原文地址:https://www.cnblogs.com/xuwangqi/p/11051074.html
Copyright © 2011-2022 走看看