当前位置:  技术问答>java相关

包的迷惑

    来源: 互联网  发布时间:2015-07-12

    本文导语:  第一次接触包的概念: package p1; class Demo1 { public int a;   public void method()   {           System.out.println("demo1");   } } //---------------------------------- package p1; class Demo2 { public static void main(String args[]) { ...

第一次接触包的概念:
package p1;
class Demo1
{
public int a;
  public void method()
  {
  
       System.out.println("demo1");
  }
}

//----------------------------------
package p1;
class Demo2
{
public static void main(String args[])
{
    Demo1 aDemo1 = new Demo1();
aDemo1.method();
aDemo1.a = 10;
int a = aDemo1.a;
System.out.println("Demo1 中的公共成员变量 a 的值:"+a);

}
}

我所理解的包的意思:我把Demo1.java和 Demo2.java都放在p1文件夹里。
但这么编译Demo2.java是通不过的。程序本身没有问题,因为我把这2个文件放到一起(不要包)运行很正常的。
有谁来给我讲讲包的概念?谢谢。

|
以我的理解:包应该是java类文件的一种组织方式,就像文件的目录路径一样。不同的包可以有相同名字的类,但可以在前面加上包名区分它们。许多公司自己开发的类文件一般放在以自己公司的ip地址为名称的包下,以保证类能被唯一正确的调用,如com.ibm.xxx.xxx包。其实说穿了,包就是一个名字前缀而已。
    你的问题是可能你的类路径设置不正确,应该加上一个“.”,如:"classpath=.;c:jdk;...",那么编译器在找类的时候就会在本目录下寻找,这样才能找到你说的Demo1类。

|
其实包就是相当于一个名字空间,好比文件系统的意思,这样同名的文件
就可以放在不同的目录中,避免了同名的问题!
所以你可以把包想象一个目录,
用的例子说明,比如你编译demo1.java时,会在当前目录生成一个子目录
p1,在该目录中有demo1.class文件,所以当你在和demo1.java相同的目录下
编译demo2.java,由于你用到了demo1.class,所以你必须引用这个包,
即import p1.*;


|
朋友,你没什么事吧。我试了没有错,能正常编译。
PACKAGE不是说要把Demo1.java和 Demo2.java都放在p1文件夹里PACKAGE指的是在编译后的。CLASS文件所放的地方,运行时它会到你的CLASSPATH或你写的PACKAGE中去找你的DEMO1。CLASS。所你你把编译后的。CLASS放到一起没问题

|
package p1;
public class Demo1
{
public int a;
  public void method()
  {
  
       System.out.println("demo1");
  }
}

我认为问题出在类的声明前没有加public修饰符,所以这个类不能被另一个包里的类引用。

|
就是放在p1里去,

|
刚才忘了一点,你的p1目录要放在类路径下,编译器的寻找方式是先获得Demo2的包为p1,那么它就会找所有类路径下的Demo1类,如果类路径中有"."的话,他就会找所有类路径中所有含有p1的包下面的类,直到找到Demo1类。

|
编译通不过吗??
这样编译:
假设两个文件都在d:
D;javac -d . Demo1.java
D:javac -d . Demo2.java

这样运行:
d:java pl.Demo1
d:java pl.Demo2

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • nohup 的问题,迷惑中。
  • 引用类的一点迷惑
  • 初学者的迷惑?
  • 一个让人迷惑的问题!
  • 学习java的迷惑...望各位大侠指点迷经
  • HTML标签参考手册 iis7站长之家
  • 迷惑!
  • 初学的迷惑
  • 开心与迷惑
  • 输入子系统应用层设计迷惑
  • 作 Linux/Unix开发 应该从何处入手?致力于Linux开发的迷惑???欢迎讨论。
  • 迷惑???
  • 送分,非常迷惑,这是为什么,请不吝赐教?
  • 【寻找帮助】有关cvs时间的问题,十分迷惑。。。。
  • 运动的思想是什么?怎么有点迷惑不解?
  • 求助!!!关于http协议解析,chunked类型迷惑
  • 迷惑的类路径问题
  • fb_notifier_call_chain的迷惑
  • iptables问题,搜索过后仍迷惑
  • 关于du 命令有些迷惑,请看这个问题。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3