访问控制符的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键词)、private1.包:库单元 package
包内包含有一组类,它们在单一的名字空间之下被组织在了一起。
import关键字:如果要导入单一的类 import java.util.ArrayList
想要导入其下所有的类 import java.util.*
包机制:为了解决名字空间、名字冲突
当编写一个Java源代码文件时,此文件通常被称为编译单元。每个编译单元都必须有一个后缀名.Java而在编译单元内可以有一个(只能有一个)public类,该类的名称必须与文件的名称相同。如果在该编译单元
还有别的类,在包之外是无法看到的,因为它们不是public类,它们为public类提供支持。
1.代码组织
package语句:必须是文件中除注释以外的第一句程序代码
package和import关键字将单一的全局名字空间分隔开,使得无论多少人使用Internet以及Java开始编写类,都不会出现名称冲突问题。
2.创建独一无二的包名
按照惯例:package名称的第一部分是类的创建者的反顺序的internet域名。
Java解释器运行过程:首先,找出环境变量CLASSPATH。CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH根中产生一个路径名称。得到的路径名称会与CLASSPATH的各个不同的项相连接,解释器就在这些目录中查找与你所要创建的类名称相关的.class文件。
冲突:将两个含有相同名称的类库以“*”形式同时导入,将会出现冲突。为了解决冲突,必须明确指出调用类的全路径。
3.定制工具类
可以创建自己的工具库来减少或消除重复的代码。
4.用import改变行为
在不同的包中编写相同名称但行为不同的类,通过导入不同的类,可以改变类的行为。
5.对使用包的忠告
2.Java访问权限修饰词无论何时创建包,都已经在给定包的名称的时候隐含地指定了目录结构。
1.包访问权限
默认访问权限没有任何关键字,通常是指包访问权限。
包访问权限允许将包内所有相关的类组合起来,以使它们彼此之间可以轻松地相互作用。
取得一个类中某个成员的访问权的唯一途径:
1.使该成员成为public
2.通过不加访问控制权限修饰词并将其他类放置于同一个包内的方式给成员赋予包访问权。
3.继承访问public和protected成员,只有继承的两个类都处于同一个包内时,它才可以访问包访问权限的成员。
4.提供访问器和变异器(get和set方法)
2.public:接口访问权限
使用关键字public,就意味着public之后紧跟着的成员声明自己对每个人都是可用的。
默认包:处于相同的目录并且没有给自己设定任何包名称。Java将这样的文件自动看作是隶属于
该目录的默认包中,于是它们为该目录中所有其他的文件都提供了包访问权限。
3.private:你无法访问
private:除了包含该成员的类之外,其他任何类都无法访问这个成员。
4.protected:继承访问权限
子类继承父类,子类可以访问父类protected成员
5.作用域public,private,protected,以及不写时的区别:
当前类 同一package 不同package子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×3.类的访问权限
1.每个编译单元都只能有一个public类
2.public类的名称必须完全与含有该编译单元的文件名相匹配
3.编译单元内完全不带public类也是可能的,这种情况下,可以随意对文件命名。
注:对于类的访问权限:仅有两个:包访问权限或public