文档详情

面向对象-教案(第10讲).doc

发布:2025-06-12约3.62千字共5页下载文档
文本预览下载声明

PAGE5

《面向对象程序设计》教案

第10讲

教学对象

计算机科学技术专业

授课内容

4.7静态变量与静态方法

4.8递归

4.9案例学习

课程标准

教学目标

(一)知识目标

1.重点掌握静态成员的定义和使用

2.掌握方法的递归调用

(二)能力目标

1.能够应用类、对象、封装、继承、多态等知识编写应用程序。

2.能够掌握面向对象理论与方法,进行创新性的编程设计

教学方法

课前预习、课堂讲授、课堂和课后练习。

学时及分配(第1学时50分钟)

课堂讲授30分钟

课堂练习20分钟

4.7.1静态变量

4.7.2静态方法

4.8递归

学时及分配(第2学时50分钟)

课堂讲授30分钟

课堂练习20分钟

4.9案例学习

课堂演练

知识点分析

重点:

静态成员的定义和使用。方法的递归调用

难点:

方法的递归调用

教学过程设计

内容

方式

问题导入

前面学习了实例变量和实例方法的定义和使用,这节来学习静态变量和静态方法的使用。另外还将学习方法的递归调用以及对象初始化等内容。

内容要点

4.7静态变量和静态方法

如果成员变量用static修饰,则该变量称为静态变量或类变量(classvariable),否则称为实例变量(instancevariable)。如果成员方法用static修饰,则该方法称为静态方法或类方法(classmethod),否则称为实例方法(instancemethod)。

4.7.1静态变量

实例变量和静态变量的区别是:在创建类的对象时,Java运行时系统为每个对象的实例变量分配一块内存,然后通过该对象来访问该实例变量。不同对象的实例变量占用不同的存储空间,因此它们是不同的。而对于静态变量,Java运行时系统在类装载时为这个类的每个静态变量分配一块内存,以后再生成该类的对象时,这些对象将共享同名的静态变量,每个对象对静态变量的改变都会影响到其他对象。

【程序4-10】类的实例变量和静态变量区别。Counter类定义了一个实例变量x和一个静态变量y。Counter.java

packagecom.boda.xy;

publicclassCounter{

publicintx;//实例变量

publicstaticinty=0;//静态变量

publicCounter(){

x=100;

}

}

对于静态变量通常使用类名访问,如下所示:

Counter.y=100;

Counter.y=200;

System.out.println(Counter.y);//输出200

可以通过实例名访问静态变量,但这种方法可能产生混乱的代码,不推荐通过实例访问静态变量。

Countera=newCounter();

Counterb=newCounter();

a.y=100;

b.y=200;

System.out.println(a.y);//输出结果为200

上述语句执行后的效果如图4-14所示。a和b两个对象共享一个y存储空间。

4.7.2静态方法

静态方法和实例方法的区别是:静态方法属于类,它只能访问静态变量。实例方法可以对当前的实例变量进行操作,也可以对静态变量进行操作。静态方法通常用类名调用,也可以用实例变量调用,实例方法必须由实例来调用。注意,在静态方法中不能使用this和super关键字。

【程序4-11】类的静态方法。静态方法属于类,可以访问类的静态成员,但不能方法实例成员。SomeClass.java

packagecom.boda.xy;

publicclassSomeClass{

intx=5;

staticinty=48;

//静态方法的定义

publicstaticvoiddisplay(){

可以访问静态变量y=y+100;

可以访问静态变量

System.out.println(y=+y);

编译错误,不能访问实例成员x=x*5;

编译错误,不能访问实例成员

System.out.println(x=+x);

}

}

关于类的静态成员和实例成员总结如下:实例方法可以调用实例方法和静态方法,以及访问实例变量和静态变量。静态方法可以调用静态方法以及访问静态变量。静态方法不能调用实例方法或访问实例变量,因

显示全部
相似文档