A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓝色风信子 中级黑马   /  2016-6-2 23:42  /  654 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

包与包之间的访问:
比如当一个包中的类调用另一个包中类的成员时,首先被调用的包中的类要有足够大的权限,成员也要有足够大的权限,当类被公有后,类中的成员也要被公有才能被访问。另外调用创建另一个包中类对象时,要加上另一个包的包名,包名.类名。编译时先编译被调用的类Java文件,在DOS窗口中编译生成class文件时,用-d创建生成一个包文件夹,否则编译另一个类Java文件时会出现程序包....不存在,第一个类Java文件编译生成的包文件夹可以任意路径存放,当编译另一个类Java文件时必须要在第一个包文件夹所存放的路径下进行编译,编译之后的生成的包文件夹和第一个要存放在同一路径下,这时才能运行class文件。当一个包中的类继承另一个包总的类时,也要加上包名,例如,public class DemoA extends packb.Demob.
不同包中的子类可以直接访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种,public、protected。




第一个编译时没有生成包文件夹,第二个编译时报错。
N.java:4: 错误: 程序包packm不存在
                packm.M d=new packm.M();
                     ^
N.java:4: 错误: 程序包packm不存在
                packm.M d=new packm.M();
                                   ^
2 个错误


为了简化类名的书写,使用一个关键字,import。
import导入的是包中的类。
建议不要写通配符*,需要用到包中的哪个类,就导入哪个类。
当导入的不同包中的两个类重名时,这个类必须加包名。
比如import packa.*; import packb.*;导入的两个包中的类名字都是DemoC,那么建立DemoC的对象时就就必须在前面加上包名,用哪个包的加哪个包的包名。


建议定义包名不要重复,可以使用URL来完成定义,URL是唯一的。

1 个回复

倒序浏览
又学了一个知识点,每天进步一点点....
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马