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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朱元强 黑马帝   /  2011-9-27 07:22  /  2058 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo
{
   String name, address;
   int age;
public Demo(String n)
  {
     name=n;
  }
    public Demo (String n, int a)  
    {
       name = n;
       age=a;
    }
   public Demo (String n,String str,int a)
    {
       this(name,age);
       address= ar;
    }
}

  为什么此处用this  会报错??

6 个回复

倒序浏览
黑马网友  发表于 2011-9-27 07:38:02
沙发
同学,虽然大家懂不容易,为了进黑马
但是这个也太那个了吧,这都啥呀
   public Demo (String n,String str,int a)
    {
       this(n,a);
       address= str;
    } 还差不多
构造函数,里使用构造函数时是不可以用自己的成员变量的
   public test2 (String n,String str,int a)
    {
       this(this.name,this.age);
       address= ar;
    } 不成这样了么 ,而且您还写错了

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-27 09:59:17
藤椅
class Demo
{
   String name, address;
   int age;
public Demo(String n)
  {
     name=n;
  }
    public Demo (String n, int a)   
    {
       name = n;
       age=a;
    }
   public Demo (String n,String str,int a)
    {
       this(n,a);  //这个地方是调用的public Demo (String n, int a)   构造函数
       address= str;
    }
}
哥们,我觉得你应该是想这样写的

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-28 00:29:03
板凳
这样写我觉得没有什么意义?
但是就为什么会报编译错误,我有自己的看法
public Demo (String n,String str,int a)
    {
       this(name,age);
       address= ar;
    }
因为当你使用上面的构造方法创建实例的时候,但是此时还没有创建成功,你就要用一个非静态的成员变量name和age ,非静态的成员变量只能对象采能用,所以为了不报错,把name和age改成static就可以了

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-28 08:59:48
报纸
理解this指向的是本类,它能调用本类的成员变量和方法 。
回复 使用道具 举报
黑马网友  发表于 2011-9-28 15:35:44
地板

this的使用

class Demo
{
   String name, address;
   int age;
public Demo(String n)
  {
     name=n;
  }
    public Demo (String n, int a)   
    {
       name = n;
       age=a;
    }
   public Demo (String n,String str,int a)
    {
         }
}
它这里代码 写的让我看的很别扭!this代表的是本类对象的应用,  this(name,age);
       address= ar; 为什么这句话会报错!第一点 name  age字符串是哪来的
上面定义了3个重载的构造函数! 这不是数学 有替代的作用!
你都没应用这个字符串 怎么会用呢

使用this还有一点  这是我在学android中遇到的问题  当在一个类中定义了匿名内部类的时候使用this的问题
!特别是在匿名内部类方法中使用this是错的  因为它代表的是外部类

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-29 15:56:37
7#
public Demo (String n,String str,int a)
    {
       this(name,age);
       address= ar;
    }


public Demo (String n, int a)   
    {
       name = n;
       age=a;
    }
你的本意是想在构造函数public Demo (String n,String str,int a) 中调用构造函数public Demo (String n, int a)   但是public Demo (String n,String str,int a) 中没有参数name和age.
你可以把 public Demo (String n,String str,int a)
    {
       this(name,age);
       address= ar;
    }
改成 public Demo (String n,String str,int a)
    {
       this(n,a);
       address= ar;
    }
这样就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马