实验五 Java 访问控制管理;封装类;内部类;内存管理与垃圾收集
一、实验目的
1、 掌握this 关键字的作用;
2、 掌握static 属性、static 方法的声明及使用;
3、 掌握static 使用的限制;
4、 掌握Java 中的三种代码块的定义及使用;
5、 掌握对象数组的使用;
6、 掌握对象数组的静态及动态初始化;
7、 掌握内部类的优缺点;
8、 掌握内部类的使用格式。
二、实验学时
2 学时
三、实验类型
验证性实验
四、实验需求
1、硬件
每位学生配备计算机一台
2、软件
Windows XP 操作系统,JDK,eclipse,MySQL
3、网络无
4、工具无
五、实验理论与预备知识
1、 this 关键字的作用;
2、 static 属性、static 方法的声明及使用、static 使用的限制;
3、 Java 中的三种代码块的定义及使用;
普通代码块、构造块、静态代码块
4、 对象数组的使用、对象数组的静态、动态初始化;
5、 内部类的优缺点、内部类的使用格式。
对于成员内部类,必须先产生外部类的实例化对象,才能产生内部类的实例化对象。而静 态内部类不用产生外部类的实例化对象即可产生内部类的实例化对象。
创建静态内部类对象的一般形式为: 外部类类名.内部类类名 xxx = new 外部类类名.内部类类名();
创建成员内部类对象的一般形式为: 外部类类名.内部类类名 xxx = 外部类对象名.new 内部类类名();
六、实验内容与结果
1、 简述垃圾对象的产生。
垃圾一般在发生引用传递时产生。一块堆内存可以被不同的栈内存所引用,每一块栈内存都会表示一个堆内存的地址信息,并且一块栈内存只能保存一个堆内存的地址信息,所以当一块栈内存已经保存了一个堆内存的地址信息,这个时候如果想要改变这个栈内存的引用指向时,就必须抛弃原来保存的地址信息,再保存新的堆内存的地址信息,而这个时候就发生了引用传递,产生了没有引用所指向的垃圾对象。
2、 根据注释填写(1),(2),(3)处的代码。
(1)Test test=new Test();
Test.Bean1 bean1=test.new Bean1();
` (2) Test.Bean2 bean2=new Test.Bean2();
(3) Bean bean=new Bean();
Bean.Bean3 bean3=bean.new Bean3();
3、 写出下面这段代码的输出结果。
局部变量:3
内部类变量:2
外部类变量:1
4、 写出下面代码的输出结果。
false
5、详述Java 中public 、private、 protected、 default 的区别。
public(公共访问级别):这是一个最宽松的访问控制级别,如果一个类或者类的成员被public访问控制符修饰,那么这个类或者类的成员能被所有的类访问,不管访问类与被访问类是否在同一个包中。
private(私有的):如果类的成员被private访问控制符来修饰,则这个成员只能被该类的其他成员访问,其他类无法直接访问。类的良好封装就是通过private关键字来实现的。
protected(受保护的):如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其他类访问,也能被不同包下该类的子类访问。
default(默认访问模式):如果一个类或者类的成员不使用任何访问控制符修饰,则称它为默认访问控制级别,这个类或者类的成员只能被本包中的其他类访问。