5. 分析上面main方法的每一步中,哪些成员变量和方法可以访问,哪些不能访问?填写下面表格中的预测结果,可以访问的填“Y”,不可以访问的填“N”。
表4-1-1 实验结果
6. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果,并填写表5-1-1中的验证结果。
二. 成员变量的隐藏和方法覆盖练习
1. 以下程序具有继承、成员的覆盖与隐藏的概念。 2. 源代码如下:
3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。 ● 子类Son中隐藏了父类Father哪个变量?覆盖了哪个方法? ● 根据上述程序,分析方法重载与方法覆盖的区别。 三.类的多态性的练习
1. 下面源代码演示了多态的各种特性。 2. 源代码如下:
3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。
● 分析上述代码中的who.var和who.staticVar、who.method()和who.staticMethod()的输出结果有什么不同?为什么存在这种现象?
● 分析以下代码,编译时会有什么问题?为什么? ● 分析以下代码,如何能让who访问Sub类的成员?
● 分析以下代码,运行会有什么问题?为什么?
四.接口相关练习
1. 定义一个rec_Area_Peri接口,里面有两个方法getArea()和getPerimeter(),分别表示“计算面积”和“计算周长”;再定义一个Rectangle类,实现接口rec_Area_Peri。 2. 源代码如下:
3. 使用Eclipse开发工具,编写上述代码,编译运行代码,查看程序执行结果。 ● 在实现类Rectangle中注释掉一个方法后进行编译,看发生了什么?为什么?
● 在实现类Rectangle中将各实现方法前的public修饰符去掉再进行编译,看发生了什么?为什么? ● 将接口rec_Area_Peri中定义的两个方法前加上abstract修饰符再编译,看对程序有影响否?为什么? ● 将接口rec_Area_Peri中定义的两个方法拆分定义成两个接口,即每个接口只定义一个方法,程序将如何修改? 五. 包的相关练习
1. 创建两个java文件,一个是mypack.java文件,定义两个类classA和classB,类修饰符为默认。另一个是主类文件TestPackage.java,在该类中使用classA和classB。两个java文件都在package1包中。 2. mypack.java源代码如下: