黑马程序员-包
2014-06-06 17:14 黑马程序员* 阅读(156) 评论(0) 编辑 收藏 举报/*包
对类文件进行分类管理,给类提供多层命名空间,包也是一种封装形式。
指定当前目录的方式;生成包类的方法(java -d . 文件保存的名称(是吗).java),
不指定当前目录的方式;javac -d c:\myclass day1001.java 运行;java pac.packagedemo
总结:
1.包与包之间的访问,被访问的包中的类以及类中的成员都必须是public修饰。
A包中类可以继承B包中的类,可以直接调用B包中的类的方法,并且new对象。
2.不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
protected 的属性和方法可以在本包和子类访问
protected:保护权限,修饰成员。
1. protected 访问控制符能被用于方法和成员变量。
2. 声明为protected的方法和成员变量能被同一个包里的所有类所访问,就像默认修饰符package一样。
3. 能被该类的子类所访问,子类可以和父类不在一个包中。
包与包的权限: public protected default private
同一个类中 : ok ok ok ok
同一个包中 : ok ok ok
子类 : ok ok
不同包中 : ok
多层包目录 package pack.haha.hehe.heieh
*import导入;为了简化类名的书写,关键字
import packb.hh.jhe.ee
import packb.hh.jhe.ee.*
import 导入的是包中的类。注意是类.不是子包
d:\haha\heihei\demo.class import d:\haha,这时没有导入demo.class,导入的只是haha目录下的类。
建议不要用通配符*(*前的目录下的类全部导入),用哪个久=就导入哪个
建议定义包名不要重复
d:\haha\heihei,如果haha和heihei中各有一个democ.class,这时建立democ的对象时,
必须要写上包名。
静态导入:
import Static
普通的import导入的是:包中的一个或者所有的类。
静态import导入的是:包中的一个所有的静态方法。
静态导入可以省去类名
不是所有的方法都可以省去类名,想toString() Array.toString(T[] t)就不能省,因为toString()是 从Object中继承的,为了避免导入的两个包中有同名的方法。所以要标记类名。
*