当前位置:文档之家› JAVA实验二 类的继承和封装

JAVA实验二 类的继承和封装

计算机软件实验报告
课程名称:JAVA 程序设计
姓名
学号
设备名称及软件环境
实验名称 一.实验内容
类的继承和封装
班级
Eclipse 实验日期
成绩 2013-4-11
掌握类的定义,类的继承,及相关语法规则,掌握对类成员的使用,理解类的封装。
二.重点及难点
类的继承及相关语法规则,理解类的封装。
三.理论分析或算法分析
1
四.实现方法(含实现思路、程序流程图和源程序列表等) 1. final修饰符 //public class c4_6 extends P1 //错,用final修饰的类P1不能有继承类 public class ຫໍສະໝຸດ 4_6 extends Applet{
/** * final修饰符 */ public void paint(Graphics g){
P1 n=new P1(); n.f(g); n.i=40; n.j++; g.drawString("i+"+n.i, 20,70); g.drawString("j="+n.j, 20, 90); } } final class P1{//用final修饰的类P1 int i=7; int j=1; void f(Graphics g){ g.drawString("OK", 20, 50); } } 2. 形式参数与实际参数 public class c4_12 { /** * 形式参数与实际参数 */ public static void main(String[] args){ int a=2,b=7; double f1=2,f2=4,f3; add(a,b); System.out.println("a="+a+"\tb="+b); //f3=add1(f1,f2,3.5); //错,实参与形参的参数个数不一致 f3=2+add1(f1,f2); System.out.println("f1="+f1+"\tf2="+f2+"\tf3="+f3); } public static void add(double x,double y){ double z; z=x+y; System.out.println("z="+z); x=x+3.2; y=y+1.2; System.out.println("x="+x+"\ty="+y); }
1. final修饰符 用 final 修饰符修饰的类被称为最终类。最终类不能被任何其他类所继承。定义最终类
的目的有三: (1)用来完成某种标准功能; (2)提高程序的可读性; (3)提高安全性。
2. 形式参数与实际参数 一般来说,可通过如下的格式来引用成员方法: 成员方法名(实参列表) 引用时应注意以下几个重要问题: (1)引用无参的成员方法时方法名后的括弧不能省略; (2)实参的个数、顺序和数据类型必须与形式参数保持一致; (3)实参也可以是表达式,此时要注意数据类型的一致性; (4)只能由实参传递给形参,而不能有形参传递给实参。
3
五.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
六.结论
用 final 修饰符修饰某些重要的类可以提高程序的安全性,调用方法时要注意参数的类 型和个数,重写父类方法可以将子类和父类的共同属性和方法体现出来,提高程序代码的 可读性。
报告提交日期
2013-4-16
4
a1 p2=new a1(); c5_9 p1=new c5_9(); p1.Printme(); p2.Printme(); } public void Printme(){ System.out.println("z="+z); } } class a1{ int x=10; int y=31; public void Printme(){ System.out.println("x="+x+" y"+y); } }
3. 成员方法的覆盖(overload) 子类可重新定义与父类同名的成员方法,实现对父类方法的覆盖。方法的覆盖与数据
成员的隐藏的不同之处在于:子类隐藏父类的数据成员只是使之不可见,父类同名的数据 成员在子类对象中仍然占有自己独立的内存空间;子类方法对父类同名方法的覆盖将清除 父类方法占用的内存,从而使父类方法在子类对象中不复存在。
2
public static double add1(double y1,double y2){ double z; z=y1+y2+2.9; return z;
} } 3. 成员方法的覆盖(overload) public class c5_9 extends a1{
int z=35; /** * 成员方法的覆盖(overload) */ public static void main(String[] args) {
相关主题