黑马程序员技术交流社区

标题: 这个引用不太明白 [打印本页]

作者: 惠晖    时间: 2012-11-13 14:57
标题: 这个引用不太明白
class Res
{
    String name;
    String six;
}
class Input implements Runnable
{
  private Res r;// 我想知道这个是什么意思
  Input(Res r)
  {
          this.r=r;
  }
  public void run()
          r.name  //难道这个r是对象么 怎么可以调用name 跟sex的??????????
          r.sex

}


作者: 张学永    时间: 2012-11-13 15:02
class Res
{
    String name;
    String six;
}
class Input implements Runnable
{
  private Res r;//这个是Input里面的成员啊,表示Res类里面的对象,就是说Input类里面有这个成员,它是Res的一个实例对象
  Input(Res r)//初始化Input,你就传入了这个对象
  {
          this.r=r;
  }
  public void run()
          r.name  //这个r就是你传入的那个Res类的实例化对象啊,它可以调用自己的成员的。。。因为name和sex是Res这个类的成员
          r.sex

}
作者: 颜峰    时间: 2012-11-13 15:14
这是在Input类中定义了一个成员属性,属性类型是引用类型Res s,可以跟String str;一样理解,一个引用的是自定义的类,一个是String,你可以调用str.length()等方法,当然就可以调用s对象的方法和属性
作者: 黑马_宋超    时间: 2012-11-13 15:14
private Res r;就是你声明了一个Res类型的对象,
  r.name这里面r就是一个Res类型的对象,所以可以调用Res这个类的name和sex属性
作者: 张学永    时间: 2012-11-13 15:27
张学永 发表于 2012-11-13 15:02
class Res
{
    String name;

你传入的那个r就是对象的。。。它应该是Res r = new Res();你传入的r不就是对象么?
作者: 陈军    时间: 2012-11-13 16:24
class Res
{
    String name; //把name和sex作为Res的属性变量,也称为字段
    String six;
}
class Input implements Runnable
{
  private Res r;// 这个表示把Res类引用变量r作为此类的 属性成员。
  Input(Res r)  //这句表示通过构造函数传递Res对象,并把传进来的对象r赋值给 此类的属性r。this表示当前调用的对象
  {
          this.r=r;
  }
  public void run()
          r.name  //上面通过构造传递了Res实例对象, 又由于你上面字段没有私有化,所以可以直接访问Res类的字段。
          r.sex

}


作者: 王阳    时间: 2012-11-13 20:49

class Res
{
    String name;
    String six;
}
class Input implements Runnable
{
  private Res r;// 我想知道这个是什么意思
  Input(Res r)
  {
          this.r=r;
  }
  public void run()
          r.name  //难道这个r是对象么 怎么可以调用name 跟sex的??????????
          r.sex

}
class TestMain{
    public static void main(String [] args ){
     Input input = new Input(new Res());
}
}
也许这样看你应该能更明白些,构造函数里面传的就是一个实例对象,所以在Input类里,可以调用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2