黑马程序员技术交流社区

标题: 这段代码是什么意思?是这样理解吗? [打印本页]

作者: 朱晓盼    时间: 2014-4-14 19:46
标题: 这段代码是什么意思?是这样理解吗?
  1. class Res
  2. {
  3.         String name;
  4.         String sex;
  5. }

  6. class Input
  7. {
  8. //主要是下面这部分不懂
  9.         private Res r ;
  10.         Input(Res r)
  11.         {
  12.                 this.r = r;
  13.         }
复制代码

多线程例子里的代码开头部分,不是怎么懂
我的理解是:
创建一个Rec的引用类型变量r,将r进行初始化,将r作为参数传入Intput对象中???
作者: 月光海    时间: 2014-4-14 20:08
这个就是传入你要操作的对象嘛,因为你要对这个对象的数据进行操作嘛,这样就保证了存入和取出都是操作的同一个对象嘛
作者: 呆呆沙师妹    时间: 2014-4-14 20:21
这就是Java中基础数据类型与引用类型的区别。
int x = 3;
Res r = new Res();
这里x保存的值就是3,而r保存的值是指向刚创建对象实例Res()的地址。
Input(Res r)构造方法中传入的是r保存的对象实例Res()的地址,使得Input类实例化后,将该地址赋值给该类中的r成员变量,使其指向Res()对象实例。


作者: 朱晓盼    时间: 2014-4-14 20:33
月光海 发表于 2014-4-14 20:08
这个就是传入你要操作的对象嘛,因为你要对这个对象的数据进行操作嘛,这样就保证了存入和取出都是操作的同 ...

明白了,谢谢
作者: 朱晓盼    时间: 2014-4-14 20:34
呆呆沙师妹 发表于 2014-4-14 20:21
这就是Java中基础数据类型与引用类型的区别。
int x = 3;
Res r = new Res();

你解释的更细致,谢谢
作者: ithmC4    时间: 2014-4-14 21:13
  1. class Res
  2. {
  3.         String name;
  4.         String sex;
  5. }

  6. class Input
  7. {
  8. //主要是下面这部分不懂
  9.         private Res r ; //定义一个私有的Res对象r,这个是类Input的成员变量。
  10.         Input(Res r)//这个是有参数的构造函数,建立Input的对象时必须传入一个Res对象。
  11.         {
  12.                 this.r = r;//r表示此构造函数的局部变量r,因为这个r与类的成员变量r重名了,想要使用成
  13. //员变量需要加上this才行
  14.         }
复制代码

作者: 四川男人    时间: 2014-4-14 21:35
这就是典型的用一个类的引用来初始化另一个类
作者: luoanjade    时间: 2014-4-14 21:47
在你理解这段代码的时候,在Input类里面你可以先把Res当做一个基本数据类型来看待就行了,原理是一样的。
作者: 流氓划过夜空    时间: 2014-4-14 22:17
这不是构造函数吗?   就是你Input 类创建的时候传入一个Res类型的对象,并把传入的对象赋值给input对象中的r变量。




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