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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yanglfree 中级黑马   /  2013-9-14 12:07  /  1175 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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. }
复制代码

评分

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

查看全部评分

7 个回复

倒序浏览
Resource res理解为:定义了一个只能指向Resource 类的引用变量res

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

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

public Resource p;
p=res;

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

所以private修饰的是 res(引用变量)的值而已~

评分

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

查看全部评分

回复 使用道具 举报
Resource不是一个对象吗? 用对象来创建引用怎么不对了。。
回复 使用道具 举报
code_geass 发表于 2013-9-14 12:18
Resource不是一个对象吗? 用对象来创建引用怎么不对了。。

我问的重点是前面的private
回复 使用道具 举报
其实Resource也是一种数据类型,只不过他不是我们常定义的基本数据类型(比如:int,float,boolean等)。Resource是一种复杂的数据类型。

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

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

希望对你有所帮助!

评分

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

查看全部评分

回复 使用道具 举报
这是定义一个Resoure类型的变量res,数据类型就是Resoure,private是指修饰的res的值是私有的
回复 使用道具 举报
yanglfree 发表于 2013-9-14 12:34
我问的重点是前面的private

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

评分

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

查看全部评分

回复 使用道具 举报
private Resource res是定义了一个Resource类型的引用,但他同时是Consumer类的一个属性,当然可以用private
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马