?包–是一组类的集合?一个包可以包含若干个类文件,还可包含若干个包–包的作用?将相关的源代码文件组织在一起?类名的空间管理,利用包来划分名字空间, 便可以避免类名冲突?提供包一级的封装及存取权限类的组织——包的概念?包的命名–每个包的名称必须是“独一无二”的– Java 中包名使用小写字母表示–命名方式建议?将机构的 域名反序,作为包名的前导?若包名中有任何不可用于标识符的字符,用下划线替代?若包名中的任何部分与关键字冲突,后缀下划线?若包名中的任何部分以数字或其他不能用作标识符起始的字符开头,前缀下划线?编译单元与类空间–一个 Java 源代码文件称为一个编译单元,由三部分组成?所属包的声明(省略,则属于默认包) ? Import (引入)包的声明,用于导入外部的类?类和接口的声明–一个编译单元中只能有一个 public 类,该类名与文件名相同,编译单元中的其他类往往是 public 类的辅助类,经过编译,每个类都会产一个 class 文件–利用包来划分名字空间,便可以避免类名冲突?包的声明–命名的包( Named Packages ) ?例如: package Mypackage ;–默认包(未命名的包) ?不含有包声明的编译单元是默认包的一部分?包与目录– Java 使用文件系统来存储包和类–包名就是文件夹名,即目录名–目录名并不一定是包名–用 javac 编译源程序时,如遇到当前目录(包)中没有声明的类,就会以环境变量 classpath 为相对查找路径,按照包名的结构来查找。因此,要指定搜寻包的路径,需设置环境变量 classpath ?引入包–为了使用其它包中所提供的类,需要使用 import 语句引入所需要的类– Java 编译器为所有程序自动引入包 – import 语句的格式 import package1[.package2 …]. ( classname |* ); ?其中 package1[.package2 …]表明包的层次,它对应于文件目录? classname 则指明所要引入的类名?如果要引入一个包中的所有类,则可以使用星号( *)来代替类名访问属性我们定义的每一个类,以及其中的每一个成员属性和成员方法都存在是否可以被他人访问的访问属性。不同的访问属性,标识着不同的可访问性。所谓可访问性是一种在编译时确定的静态特性。在 Java 语言中,也正是利用访问属性机制实现数据隐藏,限制用户对类及类中成员的访问权限。类成员的访问权限控制 Java 推出了“访问控制修饰符”的概念,允许类创建者声明哪些东西是类使用者可以使用的,哪些是不可以使用的。这些访问控制的级别在“最大访问”到“最小访问”范围之间,分别包括: public 、defaut (无修饰符)、 protected 、private 。 private 私有访问 protected 保护访问 defaut 缺省访问 Public 公共访问属性和方法的访问控制修饰符( 4种) defaut 缺省(友好)访问 public 公共访问类的访问修饰符( 2种) 为类、类中的成员属性和成员方法指定访问属性的格式为: [public] class ClassName ; [public|private|protected] memberVariableName ; [public|private|protected] emberMethodName(parameterList ); 由于除默认访问属性外,指定其他三种访问属性需要写在定义之前,所以,又将它们称为修饰符,默认访问属性又称为 friendly( 友好)。公共访问控制修饰符 public 为 Java 中的类加入访问控制修饰符只能是 public ,即公共类。一个类被声明为公共类,表明它可以被所有的其它类访问和引用,这里的访问和引用是指这个类作为整体是可见的和可使用的,程序的其它部分可以创建这个类的对象、访问这个类内部可见的成员属性和成员方法。一个类作为整体对于程序的其它部分可见,并不能代表类内的所有属性和方法也同时对程序的其它部分可见,前者是后者的必要条件,类内属性和方法能否被访问,还要看这些属性和方法自己的访问控制修饰符。另外,将实例属性的访问控制修饰应用 public 是一种糟糕的设计! ——破坏了封装性一个类作为整体对于程序的其它部分可见,并不能代表类内的所有属性和方法也同时对程序的其它部分可见,前者是后者的必要条件,类内属性和方法能否被访问,还要看这些属性和方法自己的访问控制修饰符。另外,将实例属性的访问控制修饰应用 public 是一种糟糕的设计! ——破坏了封装性
访问控制属性-课件【PPT演示稿】 来自淘豆网m.daumloan.com转载请标明出处.