第6讲 类的封装.pptVIP

  • 9
  • 0
  • 约 25页
  • 2016-04-05 发布于湖北
  • 举报
第六讲类的封装 本讲主要内容: 软件包的创建和使用 成员访问权限修饰符 类的访问权限修饰符 * 一、软件包的创建和使用 * 软件包的认识 软件包也是类库的封装机制,可解决不同包中的类同名的问题。 具体而言,软件包由一组类和接口组成。 * 软件包的建立 从示例程序理解 package mylib.simple; public class List{ public List(){ System.out.println(mylib.simple.List); } } 结论: (1) 包对应着文件系统的目录层次结构。 (2) 编译生成的字节码文件需置放到包中,即包名所指定的目录中。 * 软件包的创建 形式: package packagename; 要点: ? package语句必须是文件中的第一条语句。 ? 用“.”作为分隔符来指明包(目录)的层次。 ? 包名由小写字母组成。 ? 没有注明放入到某个包中去的类,自动地归在一个无名包中 * 软件包的使用 设置环境变量classpath:classpath环境变量存放包的搜索路径。 使用如下两种方法之一: 方法一:用import加载包中的类。 import 包名; 或import 包名.类名; 方法二:直接用包名.类名去访问类。 说明: import语句必须放在package语句和类的定义之间。 某个类若用到其他类,会优先在所在软件包中查找,继而在classpath指定的路径下查找。 * 软件包的使用(续) 例:在D盘上创建newjw目录,在此新目录下建立如下程序文件,阅读分析和理解软件包的使用。 import mylib.simple.List; class TestList{ public static void main(String[] args){ new List(); } } 试用方法二访问类,改写并编译执行以上程序。 * 软件包的使用(续) 思考? 1. 一个程序的首语句是package a.b.c.d;其意是? 2. 一个程序中可含多个类,它们可分放到不同的软件包吗? 3. 若要使用d:\javawork\lesson07下的软件包,classpath如何设置? 4. 如何用到不同目录下的软件包myclass.lib1中的类? 5. 同一个软件包中的类可否直接使用? 6. 一个类设计成可被到处使用,应声明为public类吗? 7. 一个类用到其他类时,编译时的类查找路径是? * 软件包的操作练习 1. 设计一个P类置入mylib.tools包中,该P类含rint和rintln方法,可实现数据的换行和不换行输出。 2. 设计一个Input类,含有来输入整数或字符串的方法,以使下面的程序能正确编译和执行。 import mylib.tools.Input; import mylib.tools.P; class TestInput{ public static void main(String[] args){ int y=Input.aInt(); P.rintln(y); String s=Input.aString(); P.rintln(s); } } * 二、Java访问权限修饰符 * Java访问权限修饰符 决定类成员的访问权限的修饰符有:public 、protected 、private。 权限的设定对于类的封装有着重要的意义。公开需要公开的,隐藏必须隐藏的。这样就让类的使用变得简明。 无权限修饰符的成员允许本类、同一软件包中的类访问。即享受“包访问权限”。 * public成员 public描述的是一个类中可向外公开的信息(属性和方法)。 允许本类、继承类、同一软件包中的类、不同软件包中的类访问。 示例:不同软件包之间一个类访问另一个类的public成员。 package mylib.lib1; //Base.java public class Base{ public int x=5; public void print(){ //本类访问 System.out.println(base+x); } } package mylib.lib2; //Derive.java class Derive { public static void main(String args[]){ mylib.lib1.Base b = new mylib.lib1.Base(); b.x=5; //不同软件包的类访问

文档评论(0)

1亿VIP精品文档

相关文档