黑马程序员技术交流社区

标题: 数据类型的问题? [打印本页]

作者: yanglfree    时间: 2013-9-14 12:07
标题: 数据类型的问题?
本帖最后由 yanglfree 于 2013-9-14 13:53 编辑

private Resource res???这句话为什么可以这么定义 Resource res 这不是一个引用变量吗?可以直接private修饰引用变量 而不需要数据类型?
还是可以理解为定义一个数据类型为Resoure的变量res??
  1. class Consumer implements Runnable
  2. {
  3.          private Resource res
  4.          Consumer(Resource res)
  5.          {
  6.                  this.res = res;
  7.          }
  8.          public void run()
  9.          {
  10.               while (true)
  11.               {
  12.                   res.out("商品");
  13.                }
  14.           }
  15. }
复制代码

作者: 周文斌    时间: 2013-9-14 12:17
Resource res理解为:定义了一个只能指向Resource 类的引用变量res

res中存放的是 Resource 类的对象的内存地址

private Resource res中private则修饰的是 对res引用变量中的值(即Resource 类的对象的地址)的访问的权限~~所以通常会被理解成对 Resource 类的对象的访问权限,事实上是错误的。。

public Resource p;
p=res;

这是类外访问res还是不行,但是访问p就没问题,已经充分说明了该问题~~~

所以private修饰的是 res(引用变量)的值而已~
作者: code_geass    时间: 2013-9-14 12:18
Resource不是一个对象吗? 用对象来创建引用怎么不对了。。
作者: yanglfree    时间: 2013-9-14 12:34
code_geass 发表于 2013-9-14 12:18
Resource不是一个对象吗? 用对象来创建引用怎么不对了。。

我问的重点是前面的private

作者: 2012    时间: 2013-9-14 12:40
其实Resource也是一种数据类型,只不过他不是我们常定义的基本数据类型(比如:int,float,boolean等)。Resource是一种复杂的数据类型。

private Resource res;  res是一个引用变量,他存储的是堆内存中Resource对象的首地址。如果完全可以把Resource看成是基本数据类型中的int,Boolean,float等数据类型,只不过int,Boolean,float等这些是基本数据类型,而Resource是一个复杂的数据类型。他是完全遵循了Java中变量的声明规范的。

不知道这样给你解释,你能明白吗?

希望对你有所帮助!

作者: 赵凯    时间: 2013-9-14 12:43
这是定义一个Resoure类型的变量res,数据类型就是Resoure,private是指修饰的res的值是私有的
作者: code_geass    时间: 2013-9-14 12:46
yanglfree 发表于 2013-9-14 12:34
我问的重点是前面的private

private是成员修饰符。不管是一般数据类型还是引用数据类型。变量。类。还是方法。只要他在成员位置上就可以用用private。表示只在本类中有效。其他类无法访问。

作者: Yuan先生    时间: 2013-9-14 12:48
private Resource res是定义了一个Resource类型的引用,但他同时是Consumer类的一个属性,当然可以用private




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