A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luqh 中级黑马   /  2015-3-16 20:27  /  762 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

this关键字用在构造方法的第一行?

1 个回复

倒序浏览
本帖最后由 joker0day 于 2015-3-17 12:53 编辑

下面的代码是我的学习笔记,应该能凑合看看。
  1. class thisclass{
  2.         private int x;
  3.         private int number;
  4.         public void setnumber(int number){
  5.                 this.number = number;
  6.                 /*
  7.                 这里是因为当局部变量与成员变量重复时使用this.number
  8.                 表示哪个对象被调用该方法this就代表着该对象的引用
  9.                 */
  10.         }
  11.         //这里是构造函数,对象的初始化
  12.         thisclass(){
  13.                 System.out.println("haha !!!");
  14.         }
  15.         //构造函数的重载
  16.         thisclass(int x){
  17.                 this();
  18.                 this.x = x;
  19.                
  20.         }
  21.         public void run(){
  22.                 System.out.println("x = " + x + "number = " + number);
  23.         }
  24. }
  25. public class thisdemo{
  26.         public static void main(String[] args){
  27.                 /*
  28.                 建立对象,这时对象已初始化
  29.                 1.this();引用该对象的默认构造函数,输出 "haha !!!"
  30.                 2.将参数x传入this.x也就是该对象的x变量
  31.                
  32.                 */
  33.                 thisclass t = new thisclass(3);
  34.                 /*
  35.                 调用对象的setnumuber方法,将参数number传入this.number也就是传入该对象的成员变量number
  36.                 */
  37.                 t.setnumber(5);
  38.                 //调用对象的run方法
  39.                 t.run();
  40.                
  41.         }
  42. }
复制代码


如果将this();语句没放在第一行的话,就会出现编译错误
错误: 对this的调用必须是构造器中的第一个语句

分析这句话有两个意思
1.this的调用必须在构造器中
2.必须在构造器的第一个语句


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马