2012-01-26 52 views
0

公司XYZ是用来包装私有变量创建一个包限制访问时,包在其他包

com.xyz.utils. 

有两个单独的文件中声明两类。他们有一些变量作为私有包。所以A类中的变量X可以用在同一个包的B类中。

package com.xyz.utils; 
public class A{ 
int a=10; 
} 

package com.xyz.utils; 
public class B{ 
int b = (new A()).a; 
} 

这两个文件被编译成jar并发送给客户。

客户的jar添加到他正在建设的项目,他写得像下面

package com.xyz.utils; 

public class customer_class 
{ 
    int Y = (new A()).a; 
} 

那是上面的代码是正确的代码?

我的quetsion是。我们如何使变量被声明为私有包,在其他人使用包时不可见。

+1

不,您显示的代码不正确,因为它基本上是伪代码。请给出一个* full *代码示例,并且可以更容易地说出它是否有效。你似乎也使用“包”这个词来表示两个不同的东西 - 我的猜测是你的一个用途实际上是“jar文件”。区分它们会有所帮助。 –

+0

是的,你应该为所有3个班级提供实际的代码示例,这样你的观点就可以清楚地说明。另外,正如Jon所说的,澄清一下你的意思是“jar文件”还是“package”,它会帮助你得到更好的答案。 – Michael

+0

该代码已更改并重新发布。 – Pushparaj

回答

0

答案是“不” - 你不能阻止他们这样做。

0

它一般不能完成。我认为,你可以在jar清单中使用'com.xyz.utils'中的seal the package,告诉用户:不要在密封包中定义它们的类作为最佳实践。但是你不能限制你的图书馆的用户这样做。