资源简介 课 堂 教 学 计 划 表课程名称 Java程序设计 教师姓名 专业班级授课时间 授课地点 学时数 8授课题目 § 3 面向对象基础知识教学目标及要求 知识目标 理解面向对象的程序设计方法;掌握简单的类与对象设计与实现方法;技能目标 学生面向对象编程的思维和提高逻辑思维能力;学生发现问题、分析问题和解决问题的能力;用Java语言进行基本的面向对象程序设计;教学重点 理解类与对象关系,对象的成员调用;类的定义,创建,访问控制;教学难点 类与对象关系;static的理解及用法;项目描述 项目1:学生信息管理系统教学方法 问题导引法:通过给学生提出实际编程中出现的问题来引入教学内容,使学生在主动分析、讨论和解决问题的过程中掌握所学知识;案例分析法:通过演示典型案例来讲解相关知识和技术的具体使用过程,使学生在具体的应用环境中加深对概念的理解;任务驱动法:通过完成项目中的各个任务逐步增强实战技能;教学过程设计 新课导入与项目展示首先通过提问、讨论等互动的形式引入课程新知识;然后通过演示本章项目来激发学生的学习兴趣,增强学生学习的积极性、主动性;项目任务分解带领学生分析本章项目并对项目进行任务分解,各项目分解任务如下:项目1:学生信息管理系统任务1:抽象学生类,并创建学生对象任务2:确定输出学生信息的方法任务3:数据隐藏的“隐私”程序设计任务分析根据项目及任务的描述和要求,对项目的各个任务进行分析,然后总结出完成该任务所需要的知识、技能和主要操作步骤;相关知识点针对各个任务分析阶段得到的知识和技能,并结合本章知识和技能目标对相关知识点进行详细讲解和说明;任务实施该阶段以完成各个任务为目的,教师利用相关知识和技能以演示的方式为学生详细讲解每个任务的完整实现过程;同时,该阶段要求学生进行跟随练习,以加深对知识和技能的理解和掌握;技能拓展在保证学生掌握了各个任务所涉及的基本知识和技能的基础上,再通过介绍一定的附加知识并辅导学生完成指定的“技能拓展任务”,最终使学生对所学知识达到举一反三,融会贯通的学习目的;指导与评价对学生的任务实施过程进行指导,并对其中出现的问题进行总结,给出评价;课后作业 完成课后相关习题;课后分析 主要问题:面向对象思想的培养;教 案 正 文新课导入与项目展示思考:分析“学生”这一类群体的基本属性和行为有哪些?运行各个源程序,为学生演示本章项目各个任务的实现效果。运行结果如下:项目任务分解本章项目可以划分为以下主要任务:项目1:学生信息管理系统任务1:抽象学生类,并创建学生对象任务2:确定输出学生信息的方法任务3:数据隐藏的“隐私”程序设计任务1-1:抽象学生类,并创建学生对象任务分析对于这个实例,从所有的要求看来,都是围绕着学生,所以提取一个类,就是学生类。这个类中的变量是根据实例要求而定义的,这些变量就是类中的属性。相关知识点对象的概念对象(Object)是现实世界中实际存在的某个具体实体。如:人对象具有性别、姓名、身高、年龄、文化程度等特征,具备说话、吃饭、睡觉、工作等功能(行为)。对象也可以是无形的,例如:象棋的输赢规则。对象包含特征和行为。特征是指对象的外观、性质、属性等,行为指对象具有的动作、功能等。类的基本概念我们把客观世界众多的事物进行归纳、分类,把具有相同特征及相同行为的对象的集合称为一类对象。分类的原则是抽象。因此类是同种对象的集合与抽象。类是抽象的,对象是具体的,对象是类的实例化。【实例3-1:电视机类】(程序代码详见教材)类与对象的关系类是一组具有共同性质的对象的集合,而对象是类的具体实例。类是模板,对象是类的实例化。类的定义类是通过class 来定义的。定义格式如下:[修饰符] class 类名{//定义属性部分成员变量1;成员变量2;…成员变量n;//定义方法部分方法1;方法2;…方法n;}类的修饰类包括public 、default、private、protected、abstract、final,一般的类只有两种访问权限:public、default,公有的类可以在不同包中引用,默认类只能在同一包中引用。在 java语言中,一个类还可以定义在另一个类的内部,称为内部类。内部类可以有private 、protected权限。class关键字:class是java定义使用的关键字,用在修饰符和类名中间,使用空格隔开。类名:类名要符合java的命名规范,同时要见其名知其义,即能反映出类的功能,类名的第一个字母通常大写,如果类名是由多个单词构成的,每个单词的首字母都应大写。包含main()方法的类为主类,主类可以独立运行。类的成员变量与方法类的成员变量用于描述类的特征或属性,如:姓名、大小、身高等名词。类的成员变量可以是基本数据类型、也可以是对象、数组等复合数据类型。类的成员变量的声明格式如下:[修饰符] 数据类型 成员变量名[=初值];成员变量的修饰符包括public 、default、private、protected、static、final,这些修饰符用于确定成员变量的被访问范围及创建过程。static:它说明此变量是一个静态变量或者称为类变量,而一个静态变量同此类的所有实例对象所共享。在编译时,静态变量保存在为类声明的存储单元中,同时我们在访问静态变量时也无需事先初始化它所在的类。static修饰的成员变量为类的成员变量,而不是一个类对象的成员变量。对于此类的任何一个具体对象而言,经过static修饰的成员变量被保存在此类内存的公共存储单元中,而不是保存在某个对象的内存区中,所以任何一个类对象在访问它时都会获得相同的数值。同样任何一个对象对类的成员变量修改后,其它类的对象会得到修改过的值,而且所得数值相同。如果要访问类成员变量时,应该为类名.类变量 或 对象名.类变量。【实例3-2:定义一个通讯类】【实例3-3:定义一个学生档案类】(程序代码详见教材)创建对象格式为:类名 对象名=new 类名 ([参数1,参数2…]);例如:创建通讯类对象 Communication c;c= new Communication();或Communication c= new Communication ();对象的使用创建类的对象是为了能够使用类中已经定义好的成员变量和成员方法。对象通过使用运算符”.”可以实现对类的成员变量的访问和成员方法的调用。调用语法如下:对象名.成员变量任务实施代码实现【程序文件:TestStudent.java】(程序代码详见教材)技能拓展类的出现,让程序都是以模块化结构来编写的,为程序员编写程序的思路清晰,带来了很大的好处。任务中对Student01类的调试是在测试类TestStudent类中进行的,在项目中每一个有实际含义的类都要单独定义。另外:类变量不需要对类进行实例化就可以直接访问,但实例变量首先要进行实例化后方能进行访问。任务1-2:确定输出学生信息的方法任务分析分析项目中需要程序员做什么事情,而要做的事情就是类中的方法。观察项目中的4 个要求,主要需要做的事情是输出和排序,那么类的方法中必须要有输出方法和排序方法。相关知识点类的方法方法定义的格式:[访问修饰符]<修饰符>返回值类型 方法名称([参数列表]){方法体}返回值类型:表示方法返回值的数据类型。如果方法不返回任何值,则必须声明为void(空),否则必须有return语句。方法返回值类型必须与return语句后面表达式的数据类型保持一致。方法名称:定义符合java标识符的规范,且第一个字母一般小写,有多个单词时,从第二个单词开始首字母大写。参数列表:参数用于方法接收调用者传递的数据信息,有多个参数时应该用逗号间隔,参数格式为:数据类型 参数名 。方法中的参数为形参,调用者传入的参数为实参。方法的使用:定义类的方法目的是供对象调用,以实现其功能。先创建对象,然后对象名 .方法名([实参1,实参2…]);来调用若两方法在同一类中,可以直接使用方法名([实参1,实参2…]);来调用使用static修饰的方法调用时无需定义对象,可以通过类名直接使用。【实例3-4:方法的引用】【实例3-5:使用类方法统计某个班级的学生成绩】(程序代码详见教材)构造方法方法定义的格式:public 类名([参数列表]){成员变量的初始化;}构造方法区别于一般方法的特殊性在于:构造方法的名字必须与类的名字完全相同;构造方法不返回任何数据类型,也不需要使用 void关键字声明;构造方法的作用是创建对象并初始化成员变量;在创建对象时,系统会自动调用类的构造方法;构造方法一般用public声明,这样保证在程序任意位置创建对象;每个类至少有一个构造方法。如果不定义,java 提供一个默认的不带参数的且方法体为空的构造方法。如果类中显示定义了构造方法,则系统不再提供默认的不带参数且方法体为空的构造方法。【实例3-6:使用不同的构造方法对Person对象进行初始化】(程序代码详见教材)方法重载方法重载是指多个方法具有相同的名称,但是参数不同。参数的不同主要包括参数的个数、类型、顺序的不同。当一个重载方法被调用时,Java根据参数的类型和数量确定调用的重载方法。例如:Person(Person p) {name = p.name;sex = p.sex;age = p.age;}Person(String name, char sex, int age) {this.name = name;this.sex = sex;this.age = age;}任务实施代码实现【程序文件:TestStudent.java】(程序代码详见教材)技能拓展在调用static方法时可以使用“类名.方法名”的方式调用,而不用象非static方法使用“对象名. 方法名”的方式,因为非static方法首先要创建对象。Java类库Math类提供了实现常用数学函数运算的标准方法,这些方法都是static方法。引用数学函数类方法的格式如下:类名.数学函数方法名(类型 实参1,…类型 实参n)任务1-3:数据隐藏的“隐私”程序设计任务分析在现实生活中,人的年龄不能小于0,所以要求使用封装来完成对属性的控制,当年龄输入错误时提示出错。相关知识点封装的概念所谓封装就是类的设计者只为使用者提供类对象可以访问的部分(包含类的成员变量和方法),而对于类中其他成员变量和方法都隐藏起来,用户不能访问。如何实现封装Java为对象变量提供四种访问权限:public、private、protected、default。如果不想让其它类对其进行访问,或者是只允许类中的方法来访问当前类中的成员变量和方法,那就可以使用private来定义。private :私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)。私有只在本类中有效。【实例3-7:实现封装】(程序代码详见教材)任务实施代码实现【程序文件:Student.java】(程序代码详见教材)技能拓展构造方法也有public和private之分,public修饰的构造方法可以在程序的任何地方被调用,新创建的对象也可以自动调用。但如果构造方法为private,则无法在此构造方法所在的类以外的地方被调用,这样没法成功创建对象。 展开更多...... 收起↑ 资源预览