Java中import语句的学习

原创 2007年10月14日 11:15:00
     
现在,学习import语句。
假设有两个存放在D:/src下的源文件Cited.javaCiting.java
Cited.java文件内的程序:
 
package classes.shang;
public class Cited
{
   public void print()
      {
       System.out.println("Hello World!我是被调用子类的程序输出呀!");
      }
}
Citing.java文件内的程序:
import classes.shang.Cited;
public class Citing
{
   public static void main(String[] args)
     {
      Cited demo=new Cited();
      System.out.printf("/n这是一个pakage语句和import语句的演示程序:我将调用Cited类,它会输出:/n/n");
      demo.print();
     }
}
如图所示运行:
 
可能出现的其他几种情况:
   运行命令:javac Cited.java。这种情况下生成Cited.class文件存放在当前文件夹下即D:/src下,这里如有不明白可以参考package语句学习。当编译Citing.java时会提示以下错误:
 
D:/src>javac Citing.java
Citing.java:1: 软件包 classes.shang 不存在
import classes.shang.Cited;
                    ^
Citing.java:6: 无法访问 Cited
错误的类文件: ./Cited.class
类文件包含错误的类: classes.shang.Cited
请删除该文件或确保该文件位于正确的类路径子目录中。
      Cited demo=new Cited();
      ^
2 错误。
    这是因为Citing.java文件指明在classes/shang路径引用Cited.class,在结合类路径下仍然无法找到所要的类文件。
 
 
运行命令:javac -d . Cited.java。这种情况下当前文件夹下生成classes文件夹,classes文件夹下生成shang文件夹。Cited.class文件存放shang文件夹下,Cited.class文件的路径即D:/src/classes/shang。运行命令javac Citing.java可以成功,因为当前工作路径已经是D:/src,编译程序首先搜索当前路径结合import语句就可以找到D:/src/classes/shang下的Cited.class文件。当然也能运行成功,但这样失去packagey语句的作用,未能完全将源文件和类文件分开。存储类文件的classes文件夹在存储源文件的src文件夹下。
注意到Citing.java中的import语句指明引用Cited类,若改为通配符*;运行命令:javac -d E:/ Cited.java,编译成功,可是当运行命令:javac Citing.java,就会出现如下提示错误:
 
 
Citing.java:6: 无法访问 Cited
错误的类文件: ./Cited.java
文件不包含类 Cited
请删除该文件或确保该文件位于正确的类路径子目录中。
      Cited demo=new Cited();
      ^
1 错误
 
我们已经设置classpath,怎么还会出现上面如:无法访问、文件不包含类的错误呢?编译程序首先搜索当前路径下的文件,搜索Cited.java造成错误,可以在编译Cited.java成功后,删除Cited.java,再运行命令:javac Citing.java。整个过程如图:
 
如果运行的命令是javac Cited.java,成功后,运行命令javac Citing.java,结果出现如下提示错误:
Citing.java:1: 软件包 classes.shang 不存在
import classes.shang.*;
^                                                
Citing.java:6: 无法访问 Cited
错误的类文件: ./Cited.class
类文件包含错误的类: classes.shang.Cited
请删除该文件或确保该文件位于正确的类路径子目录中。
      Cited demo=new Cited();
      ^
2 错误
 
希望上面的内容,能对大家有帮助。
本人是一初学者,以上想法难免有不当,不准确和错误之处,希望大家多多包涵,欢迎批评指正。
也欢迎交流讨论,
我的qq:348737102
e-mail:Shang_023@126.com

Java中的import语句

import导入声明可分为两种:  1> 单类型导入(single-type-import)  例:import java.util.ArrayList;  2> 按需类型导入(type-...
  • u010708434
  • u010708434
  • 2013-08-24 23:04:37
  • 2567

Java import 如何使用

要在不同文件夹使用包文件,必须在编译的时候制定包(package)的位置,并且在执行引用程序(import side)的时候指明包与程序的位置,缺一不可。...
  • zzcchunter
  • zzcchunter
  • 2011-08-10 18:17:26
  • 9219

Java程序猿学Python之Import语句

Import语句可以说在Python中是无处不在,非常类似于Java中的import的语句,但是又比Java的强大很多,也复杂的多。 首先本文章会讲解import语句的作用,然后讲解一下import...
  • sheldon178
  • sheldon178
  • 2018-03-25 12:33:37
  • 25

JAVA学习之包与import语句(三)

包 不同的Java源文件中可能出现名字相同的类,要想区分这些类,就需要使用包名,包名的目的就是有效的区分名字相同的类,不同Java源文件中两个类名字相同时,它们可以通过隶属不同的包来区分。 下面是运行...
  • ZDX_Y
  • ZDX_Y
  • 2016-04-13 12:48:07
  • 753

浅谈java的import

程序员可以使用两种import语句:单类型导入(single-type-import),例如import java.io.File;按需类型导入(type-import-on-demand),例如 i...
  • alphafish
  • alphafish
  • 2006-04-06 09:54:00
  • 2927

java中import,package的用法

http://xgtian.blog.51cto.com/3844449/737269 有些人写了一阵子 Java,可是对於 Java 的 package 跟 import 还是不 太了解很多人以為...
  • lwpping
  • lwpping
  • 2012-07-18 15:15:56
  • 1697

java import、package作用与用法

java import、package作用与用法 有些人写了一阵子 Java,可是对於 Java 的 package 跟 import 还是不 太了解很多人以為原始码 .java 档案中的 impo...
  • mmsxst10062710
  • mmsxst10062710
  • 2013-12-12 21:46:57
  • 7356

package与import语句

为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题,我们引用package。我们要用package的格式以及要注意一下几点:   1.package语句作为java源文件的第一条语句,指明...
  • u011798031
  • u011798031
  • 2013-09-03 16:45:04
  • 1816

import引入语句

在Java中,若想利用包的特性,可使用引入(import)语句告诉编译器要使用的类所在的位置。实际上,包名也是类名的一部分。例如,如果abc.Student包中含有Gui类,则该类可称作abc.Stu...
  • gt_evolution
  • gt_evolution
  • 2015-10-19 17:16:13
  • 538

package与import的区别与联系(原创)

我只是一个java菜鸟,对package与import的理解还不是很透彻,刚刚翻了一些资料查了一下,终于请出了,写出来给大家看看,不对的地方请批评指正!我们在写代码的时候,通常会这么写package ...
  • baggio785
  • baggio785
  • 2005-12-24 17:32:00
  • 2143
收藏助手
不良信息举报
您举报文章:Java中import语句的学习
举报原因:
原因补充:

(最多只允许输入30个字)