资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

java代码中引用目录,引用目录是什么

如何引用同一目录下另一个java文件中的类

1、定义两个public类

创新互联是一家专业提供讷河企业网站建设,专注与成都网站制作、成都做网站、HTML5建站、小程序制作等业务。10年已为讷河众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

1)TestA.java

1

2

3

4

public class TestA{//定义一个类TestA,并存成TestA.java文件

public void tb(){//定义类TestA的一个方法tb

}

}

2)TestB.java

1

2

3

4

public class TestB{//定义一个类TestB,并存成TestB.java文件

public void t1(){//定义类TestB的一个方法t1

}

}

2、TestA.java文件中的类TestA调用TestB.java中的类TestB

1

2

3

4

public void tb(){//类TestA的方法

TestB tb = new TestB();//实例化TestB

tb.t1();//调用TestB的方法,实现调用另一个文件中的类

Java引入上级目录中的包

1. 那么包名和实际物理路径有什么关系?

答: 包名必须出现在实际路径中的一部分, 只是一段, 不可能是绝对路径. 而这个段的起点, 就是包含了classpath目录的一个.

可以看到如下代码, 是eclipse 自动生成的 .classpath文件, 其中classpath就包含了testsrc, src, 而这两个目录下都有个子目录 coolUnit, 这个就是包名的开始.

?xml version="1.0" encoding="UTF-8"?

classpath

classpathentry kind="src" path="src"/

classpathentry kind="src" path="testsrc"/

classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/

classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/

classpathentry kind="output" path="bin"/

/classpath

2. 相同包名 如果可以存储在不同物理路径下, java 编译器如何找到对应的类 ?

答: 当然可以存储在不同的物理路径下, 只不过这两个路径中, 有一部分必须相同, 即包名包括的部分. 置于java编译器如何找到, 简单, 就是把从包名的起点的上层目录添加到classpath中了, 这样就可以找到对应了类了. 类似上边的testsrc, src, 这两个目录都被添加进了classpath(当然这个工作是eclipse替我们完成的, 如果是我们自己编译, 不借助eclipse, 就需要指定 javac –classpath 把这两个目录加进去)

3. 这里肯定跟classpath 有关, 不可能你随便写个java类, java 编译器都能找到, 那么如何引入自己写的类呢?

如何引用自己的类的, 就是将自己的类的包名的起点的上层目录作为 javac –classpath参数传入, 这样的目的是让java编译器找到你的类所在的位置.

综上: 包名是抽象出来的类的空间, 虽然在物理上存储需要文件夹配合层次, 但是关键, 这个层次不是绝对路径, 只是路径中的一部分, 所以, 我们完全可以将代码放在不同路径下, 只要路径中对应包名的部分相同就可以了.

为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包.

Java中的包一般均包含相关的类,例如,所有关于交通工具的类都可以放到名为Transportation的包中.

包语句格式:

package pkg1[.pkg2[.pkg3…]];

程序中如果有package语句,该语句一定是源文件中的第一条可执行语句,它的前面只能有注释或空行。另外,一个文件中最多只能有一条package语句.

包的名字有层次关系,各层之间以点分隔。包层次必须与Java开发系统的文件系统结构相同(并非绝对路径)。通常包名中全部用小写字母,这与类名以大写字母开头,且各字的首字母亦大写的命名约定有所不同。

当使用包说明时,程序中无需再引用(import)同一个包或该包的任何元素。import语句只用来将其他包中的类引入当前名字空间中。而当前包总是处于当前名字空间中.

如果文件声明如下:

package java.awt.image

则此文件必须存放在Windows的java\awt\image目录下或unix的java/awt/image目录下。

问题出现了: 因为路径不可能是绝对的, 即从根目录开始一直向下, 所以目录的开始位置, 只需要是classpath包含的位置就可以了.

这才是问题解决的关键. 从这点说, 包名是抽象的.

java在同一目录中如何引入自己的类?

如果在的是同一目录,类是不用导入的。直接使用就行。

java中 如果想导入其他包中的类,可以用 import关键字导入;例:import com.A;(导入com包中的A类)

如果用的是(myeclipse 或者eclipse工具的话 ,)可以使用快捷键 Ctrl+shift+o就会自动导入了。

在java 中在代码中要引用的图片该放在哪个文件?

放到任意文件夹都可以,看你的管理方式。

1、放到和程序目录下的某个文件夹中。

// 假设图片放到程序运行目录的img目录下

BufferedImage img = ImageIO.read(new File("img/my.png"));

2、放到源文件中,和读取类在同一目录,使用时图片要按包名打包到jar中

// 假设图片放到src下,和MyImages在一个目录

BufferedImage img = ImageIO.read(MyImages.class.getResource("my.png"));

3、放到源文件中,但在独立文件夹中,使用时图片要按包名打包到jar中

// 假设图片放到src下的img目录中 

BufferedImage img = ImageIO.read(MyImages.class.getResource("res/my.png"));


名称栏目:java代码中引用目录,引用目录是什么
标题路径:http://cdkjz.cn/article/hshepc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220