[Java]包与包之间的调用
来源:互联网 发布:php教学网站 编辑:程序博客网 时间:2024/04/30 00:20
两个包,一个包中的类调用另一个包中的类:
package packa;class PackageDemoA {void show(){System.out.println("DemoA show run");}}
package pack;class PackageDemo{public static void main(String[] args) {packa.PackageDemoA a=new packa.PackageDemoA();//调用classpath路径下的类文件,所以要设classpath为packa包所在路径a.show();}}
清空classpath:
D:\java\day09>set classpath=
D:\java\day09>set classpath
环境变量 classpath 没有定义
先编译PackageDemoA.java文件:
D:\java\day09>javac -d c:\java PackageDemoA.java
第一次编译PackageDemo.java文件:
D:\java\day09>javac PackageDemo.java
PackageDemo.java:7: 错误: 程序包packa不存在
packa.PackageDemoA a=new packa.PackageDemoA();//调用classpath路
径下的类文件,所以要设classpath为packa包所在路径
^
PackageDemo.java:7: 错误: 程序包packa不存在
packa.PackageDemoA a=new packa.PackageDemoA();//调用classpath路
径下的类文件,所以要设classpath为packa包所在路径
^
2 个错误
设置classpath再次编译(注意错误提示不一样了!):
D:\java\day09>set classpath=c:\java
D:\java\day09>javac PackageDemo.java
PackageDemo.java:7: 错误: PackageDemoA在packa中不是公共的; 无法从外部程序包中对
其进行访问
packa.PackageDemoA a=new packa.PackageDemoA();//调用classpath路
径下的类文件,所以要设classpath为packa包所在路径
^
PackageDemo.java:7: 错误: PackageDemoA在packa中不是公共的; 无法从外部程序包中对
其进行访问
packa.PackageDemoA a=new packa.PackageDemoA();//调用classpath路
径下的类文件,所以要设classpath为packa包所在路径
^
2 个错误
有了包,范围变大,一个包中的类要被访问,必须要有足够大的权限,所以被访问的类要被public修饰。
改PackageDemoA.java文件再次编译:
package packa;public class PackageDemoA {void show(){System.out.println("DemoA show run");}}
结果:(错误又不一样了!)
D:\java\day09>javac -d c:\java PackageDemoA.java
D:\java\day09>javac PackageDemo.java
PackageDemo.java:9: 错误: show()在PackageDemoA中不是公共的; 无法从外部程序包中对
其进行访问
a.show();
^
1 个错误
类公有后,被访问的成员也要公有才可以被访问。
改PackageDemoA.java文件再次编译:
package packa;public class PackageDemoA {public void show(){System.out.println("DemoA show run");}}
D:\java\day09>javac -d c:\java PackageDemoA.java
D:\java\day09>javac PackageDemo.java
D:\java\day09>
PackageDemo.java文件也通过了编译!
运行:
D:\java\day09>java pack.PackageDemo
错误: 找不到或无法加载主类 pack.PackageDemo
原因:我一开始编译PackageDemo就没有设置包所在路径,即没有创建包文件夹(而编译PackageDemoA时设置并生成了),所以:
D:\java\day09>javac -d d:\java\day09 PackageDemo.java
D:\java\day09>java -d d:\java\day09 pack.PackageDemo
Unrecognized option: -d
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
原因:我又一次误解了,用java命令运行.class文件时,要设置的是classpath路径,而不是用-d来指定。设置成PackageDemo的包和PackageDemoA的包所在的两个路径后重新运行:
D:\java\day09>set classpath=.;c:\java
D:\java\day09>java pack.PackageDemo
DemoA show run
D:\java\day09>
- [Java]包与包之间的调用
- 黑马程序员--包与包之间的调用
- Java中包与包之间方法的调用及其关键字区分(基础)
- java中包与包之间的资源访问
- java 包与包之间访问
- Java中不同的包之间的调用。。
- Java中不同包之间的调用实现
- 黑马程序员---Java包的创建以及包与包之间的访问
- Java 包与包之间的访问 (类在不同包里)
- JAVA 包与包之间访问(package)
- JAVA 包与包之间访问(package)
- JAVA 包与包之间访问(package)
- java面向对象-包package-包与包之间访问-导入包import
- 关于java包的调用
- JAVA基础6.65——包与包之间的访问及访问权限
- Package(包与包之间的访问)
- java 包概念和包之间的访问学习实录
- 包转发与吞吐之间的计算
- sizeof计算结构体大小(字节对齐)
- 使用servlet实现文件上传(用common-fileUpload和common-io包)
- 在线编程--双栈排序
- Java中重载与重写区别
- mysql_insert_id
- [Java]包与包之间的调用
- HDU 4403A very hard Aoshu problem
- 为Adapter装载数据的方法
- 最大连续字串求和
- 为什么代理方法没有执行?
- C++变量初始化顺序
- [iOS开发]屏幕适配一:iOS开发屏幕适配各种方案对比(自我实践总结)
- Hello World (记事本+命令行)
- #1037 : 数字三角形