代码改变世界

黑马程序员-包

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中继承的,为了避免导入的两个包中有同名的方法。所以要标记类名。

        *