概要
最近这段时间开始进入软考的备考阶段,学习的资料是马士兵的J2SE视频,初次接触java,里面的知识感觉还是比较生的,其中视频里介绍了package的一些知识,在这里我记录下我初次触package时出现的一些小问题。
问题
刚开始编写的一个名为People的java源文件,代码特别简单:
package Test; public class People{ }
所以首先在命令窗口中输入 javacPeople.java运行成功,这一步没有什么问题。然后将生成的People.class文件放到Test文件夹下,接下来我们编写一个名为Person的java文件,代码如下
import Test.People ; public class Person{ publicstatic void main(String [] args){ Peoplep =new People(); } }
问题1
然后我们在命令窗口中输入 javac Person.java可是出现如图所示的问题
经过多次尝试终于找到原因所在,因为在我们源文件中我们发现一个名为Test的java文件,所以导致我们运行时无法识别我们的Test文件夹,如图:
所以解决方案是将名为Test的源文件删除或者将我们的Test文件夹的名字改下就可以了。
问题2
当我尝试着将Person.java源文件中包的引用由import Test.People ;该为import Test.*;时又出现了问题如图:
这个问题比较简单,图中显示是由Person.java文件导致的,所以我们将Person.java删除掉即可解决了
所以我们得到当通过import引用包时,引用代码中包括*时,java源文件不可以存在;
关于包的引用除了通过import方式可以引用外,还有一种是用到那个类将该类的所有包全部写出来即可,代码如下:
public class Person{ publicstatic void main(String [] args){ Test.Peoplep =new Test.People(); } }
通过这种方式引用包时,与源文件的存在与否没有关系。
总结
通过在实现package这个小例子中出现的问题,经过多次尝试总结如下:
1.当引用包时,包文件名不可以与存在的java源文件名字相同,否则会无法识别该包.
2.当通过import引用包时,引用代码中包括*时,java源文件不可以存在;
3.当通过import引用包时,引用代码中不包括*时,java源文件可以存在;
4.如果不采用import引用包,通过全路径的方式使用包,java源文件可以存在。
虽然用了40多分钟左右的时间才将视频中仅仅10分钟的内容吃透,但是我感觉只有不断的解决在学习中遇到的这些小问题,积少成多,这样我们在遇到大的问题时也可以做到得心应手的去解决它。