3.5 Java的包与访问控制符
目录 CONTENTS 3.5.1 包的定义与使用 访问控制符 3.5.2
3.5.1 包的定义与使用
3.5.1 包的定义与使用 包的概念 包(package):是一种松散的类的集合,包以目录形式存在。包是Java有效管理类的一个机制。 包访问性:同一个包中的类在缺省情况下可以互相访问,为了便于编程和管理,常把需要在一起工作的类放在一个包里。
3.5.1 包的定义与使用 Java的类库 Java类库: 已有的有特定功能的Java程序模块。 基础类库: Java的类库大部分是由SUN公司提供的,叫 JFC。 Java的类库 类库的组织方式: 根据功能不同,Java的类库被划分为若干个不同的包,每个包中都有若干个具有特定功能和相互关系的类和接口。
3.5.1 包的定义与使用 继承系统类,在用户程序里创建系统类的子类: 创建系统类的对象: 使用系统类库的方式 直接使用系统类: 如: public class SjApplet extends Applet 创建系统类的对象: 如:TextField input= new TextField(6) 使用系统类库的方式 直接使用系统类: 如:System.out.println() 注意:使用系统类之前,用户程序需要用import语句引 入所用到的系统类或系统类所在的包。 如: import java.awt.*; import java.awt.event.*;
3.5.1 包的定义与使用 Java中 常用的包 1) java.lang 包 2) java.io包 3) java.util包 是Java语言的标准输入/输出类库,包含了实现Java程序与操作系统、用户界面以及其他Java程序做数据交换所使用的类。 Java中 常用的包 3) java.util包 包含了Java语言中的一些低级的实用工具,如处理时间的Date类、处理变长数组的Vector类,栈Stack类、散列表HashTable类等。
3.5.1 包的定义与使用 Java中 常用的包 4) java.awt包 5) java.applet包 是Java语言用来构建图形用户界面(GUI)的类库。 低级绘图操作——Graphics类等 java.awt 图形控件和布局——Container类、 Checkbox类、LayoutManager接口等 界面用户控制和事件响应——Event类 Java中 常用的包 5) java.applet包 是用来实现在Internet浏览器中运行Java Applet的工具类,其中包含一个非常有用的类java.applet. Applet。 6) java.awt.event包 是对Event类的一个扩充,可以用不同方式来处理不同类型的事件,并使每个图形界面元素本身可以拥有处理它上面事件的能力。
3.5.1 包的定义与使用 缺省情况下,系统创建一个无名包,无名包中的类不能被其他包中的类引用和复用,为此需要创建有名字的包。建议包名全部采用小写字母。 语法:package 包名; //必须是整个java文件的第一个语句 如: package shapes; //在当前目录下创建子目录shapes package shapes.test //在当前目录下创建子目录 shapes, 又在shapes 目录下创建子目录test 包的定义 定义了包的类,编译后生产的字节码需要复制到该包名所指目录下才可以执行该类。可带参数编译实现自动复制: javac –d 路径 文件名.java
3.5.1 包的定义与使用
3.5.1 包的定义与使用 1) 加载需要使用的类 包的引用 2) 加载整个包 3) 使用包名、类名前缀 通常一个类只能引用与它在同一包中的类,若要引用其他包的public类,可使用下列方法: 1) 加载需要使用的类 例如: import card.X1; // 加载card包中X1类 包的引用 2) 加载整个包 例如: import card.*; //加载card包中所有的类 3) 使用包名、类名前缀 使用同一个包中的类,只须加上类名作为前缀; 若使用其他包中的类,则还须在类名前缀前加上包名前缀。
3.5.1 包的定义与使用
3.5.1 包的定义与使用 classpath是系统环境变量,指明所有缺省的类字节码文件 .class的路径;当程序找不到所需其他类的.class文件时,系统自动到classpath所指明的路径中寻找。 可以通过 控制面板—系统—高级系统设置—环境变量,新建 classpath 。 classpath 类路径 例:JDK的java解释器有开关参数-classpath java X1 -classpath d:\javamooc\card 表示X1文件不在当前目录,而在d:\javamooc\card 目录下。
3.5.1 包的定义与使用
3.5.2 访问控制符
1 2 3 4 3.5.2 访问控制符 Java的访问控制符种类: public 公共的,修饰类、属性和方法 单击此处添加段落文字内容 public 公共的,修饰类、属性和方法 1 单击此处添加段落文字内容 protected 受保护的,修饰属性和方法 2 单击此处添加段落文字内容 private 私有的,修饰属性和方法 3 单击此处添加段落文字内容 无符号的缺省定义 友好的, 修饰类、属性和方法 4 作用: 限定类、属性和方法被程序里的其他部分访问和调用
3.5.2 访问控制符 公共访问控制符 public public:修饰类、属性(成员变量)和方法。 修饰类: 修饰属性和方法: 当用public修饰成员变量和方法时,变量和方法可以被任何程序直接访问和修改。但这不利于保证数据的一致性,造成安全性和可靠性的下降。
3.5.2 访问控制符 保护访问 控制符 protected protected:修饰的属性和方法。 能被以下三种类访问和调用: 属性和方法所在的类 1 同一个包内的其它类(包含子类) 2 其它包(package)中该类的子类 3
3.5.2 访问控制符 private: 修饰属性和方法。 被private修饰的属性和方法是私有的,只能被定义它们的类访问和调用。 其它任何类都不能访问私有属性和私有方法。 私有访问控制符 private
3.5.2 访问控制符 缺省的修饰符 如果一个类、属性和方法前面没有被访问控制符修饰,说明它具有缺省的访问控制特性(也叫包访问特性) : 属性和方法所在的类 1 同一个包内的其它类 2
3.5.2 访问控制符 同一包内的访问示意图:
3.5.2 访问控制符 包间的访问示意图:
3.5.2 访问控制符 在声明类时,通常将成员变量声明为private权限,仅允许本类的方法访问成员变量,而将方法声明为public权限,供其他类调用。 构造方法一般声明为public权限。 构造方法应该与类的访问权限保持一致。 访问控制符使用习惯
谢谢观看!