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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 樊占江 中级黑马   /  2012-8-18 01:42  /  1050 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Info
{
private String name;
}
class Scz
{
private Info info;
Scz(Info info)
{
this.info=info;
}
}
class Xfz
{
private Info info;
Xfz(Info info)
{
this.info=info;
}
}

为什么 Scz 和Xfz 是操作同一个资源。。 不解。

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 神马都是浮云

查看全部评分

2 个回复

正序浏览
只是在构造器中指定了参数类型是Info类,而且还是个只有私有属性的,没有对外方法的类

什么是操作同一个资源? 貌似没什么好操作的.....

回复 使用道具 举报
本帖最后由 牛杨 于 2012-8-18 02:13 编辑

感觉你问的问题不明不白的,那我就给你分情况解答吧!

如果你这样写的话:
public static void main(String[] args)
{
      Info info=new Info();
      Scz  scz=new Scz(info);
      Xfz  xfz=new  Xfz(info);
}
那么这两个对象 scz和xfz使用的都是同一个 info对象。因为你只定义了一个info对象,然后都传给了 Scz和Xfz的构造函数。

但是如果你这么写的话:
public static void main(String[] args)
{
           Info info1=new Info();
      Info info2=new Info();
      Scz  scz=new Scz(info1);
      Xfz  xfz=new  Xfz(info2);
}
那么这两个对象 scz和xfz使用的分别是两个 Info对象 scz使用的是info1、xfz使用的是info2。因为你只定义了两个不同的info对象,然后才传给了 Scz和Xfz的构造函数的。

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马