西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE
20 20 10 10 (3) 对象是面向对象编程的核心部分,和现实世界一样,需要具有明确定义的状态和行为。 (4) 对象的特征——属性 a) 属性——对象具有的各种特征 b) 每个对象的每个属性都拥有特定值 (5) 对象的特征——方法 a) 方法——对象执行的操作 五、 类 (1) 人们为了更好地认识世界,将现实生活中的事物(对象)划分成类; (2) 同一类中的事物总是具有一些共性; (3) 类以共同的特性和行为定义实体; (4) 类是具有相同属性和行为的一组对象的集合。 (5) 类和对象的区别 a) 类是用来描述实体的“模板”或“原型”; b) 对象是实际的实体,每一个对象都是类的一个具体实例; c) 类用来定义对象所有的属性和方法,同一类的所有对象都拥有相同的特征和操作; d) 可以将类理解成生产产品的模具,而对象则是根据此模具生产的一个个产品。 六、 在Java中定义类 七、 创建对象的语法 (1) 和数组相似,对象也是引用数据类型,只能使用new运算符从堆中分配内存; (2) 创建对象的一般语法: (3) 类名 引用名 = new 类名(); (4) 使用已经定义好的类,创建该类对象的过程称为“实例化”。 八、 访问权限:public和private (1) C语言中结构体的成员可以从任何地方进行访问,这将给数据的安全留下极大的隐患; (2) 为了避免从类外部直接访问类成员而造成的数据损坏,Java对类成员的访问制定了约束; (3) 关键字public和private是访问修饰符,用来说明某个成员是否可以从类外部进行访问; (4) public修饰的成员可以在任何地方进行访问,不受任何约束; (5) private修饰的成员只能够被本类中的其它成员访问,而不能从类的外部进行访问。 第15页 共51页
西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE
15 55 九、 讨论:列举出生活中常见的类以及它们的对象。 由每个组一个代表发言,说出讨论结果。 十、 上机实验 (一) 练习一 (1) 请通过代码封装,实现如下需求: 编写一个类Book,代表教材: 1、具有属性:名称(title)、页数(pageNum)、出版社(publisher) 2. 为各属性设置赋值和取值方法 3、编写一个判断页数的方法judgePage(),其中判断输入的页数不能少于200页,否则输出错误信息,并赋予默认值200 4、具有方法:detail(),用来在控制台输出每本教材的名称和页数 (2) 编写测试类BookTest进行测试:为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确? (二)练习二 (1) 使用JAVA定义学生类Student! a) 要求学生类有姓名、性别、年龄、体重等属性,并且全部属性都要使用private修饰。 b) 提供public的set和get方法来设置和获取属性的值。 c) 提供dining() 吃饭 和walk 走路 ()。 (2) 编写测试类Teststudent进行测试:为Student对象的属性赋予初始值,并调用Student对象的dining(),walk()方法,看看输出是否正确? 作 业 布 置 课 后 总 结 (1) 教材P42 第八题。 (1) 只有40%的同学对面向对象的基本概念的理解和掌握;余下的大部分同学都属于一知半解;在这方面还需进一步加强练习。
第16页 共51页
西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE
教 案
编号:8
章节 面向对象开发方法概述 — 类和对象的Java实现 (1) 掌握类和对象的基本概念以及核心思想。 (2) 掌握构造方法的写法以及重载。 (3) 掌握对象在内存中的存放形式。 (4) 培养学生对客观事物的抽象能力。 (5) 培养学生系统分析的能力。 (6) 培养学生的项目展示能力。 (1) 构造方法。 (2) 方法重载。 授课方式 讲授+学生操作 教 学 目 的 教 学 重 点 教 学 难 点 时间 分配 Min 20 (1) 方法重载。 教 学 过 程 一、 作业点评(学生阐述+老师总结) 方式:由2-4个同学来讲述上周实验的实现思路以及具体实现,最后由老师总结出现的一些问题。 (1) 一个Java文件中出现多个class,需文件名的类修饰成public即主类。 (2) 建立测试类后,创建对象后访问对象的属性时未通过对象进行引用而直接访问属性。 (3) setter方法传参数出现问题,如obj.setTitle=\天龙八部\(4) char型出现char ch=\男\(5) 类中定义方法(行为)出现问题,即停留在C语言;()丢失。 (6) setter和getter方法命名不规范以及方法返回类型和方法体出现问题。 二、 构造方法 (1) 正是由于在实例化对象的同时会自动调用构造方法,所以构造方法一般用来给数据成员分配资源或初始化数据成员; (2) 构造方法的一般形式: 访问权限 类名(形参列表) { 方法体 } (3) 因为是由虚拟机来调用构造方法,所以构造方法一般应定义成public。 /*定义ConstructorDemo类,对构造方法进行测试*/ class ConstructorDemo { /*构造方法,方法名与类名完全一致 无需指定返回值类型,也不能有返回值*/ public ConstructorDemo() 第17页 共51页
西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE
20 20 120 { System.out.println(\这是构造方法\ } } /*Test类,用来容纳main方法 一般将包含有main方法的类声明为public*/ public class Test { /*main方法,程序入口*/ public static void main(String[] args) { /*实例化ConstructorDemo类的对象*/ ConstructorDemo cd = new ConstructorDemo(); } } 三、 方法重载 (1) 用于定义一组方法,这些方法具有相同的名称,并执行类似的操作,但是却使用不同的参数列表; (2) 编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法,如: /*abs方法的重载*/ int abs(int x) {……} float abs(float x) {……} double abs(double x) {……} long abs(long x) {……} (3) 方法重载的三大原则 a) 方法名相同 b) 参数不同(可以有三方面的不同) 数量不同 类型不同 顺序不同 c) 同一作用域 d) 温馨提示:方法重载跟方法的返回值类型没有任何关系。也就是说,只有返回值不同的方法不能构成重载。 /*错误的方法重载*/ void fun(int x) {……}; int fun(int x) {……}; 四、 上机实验 (1) 定义一个学生类,具有属性:姓名(name)、性别(sex)、年龄(age)、体重(weight)、银行帐户余额(money)!给每个属性提供set以及get方法。 (2) 为该学生提供学习方法(learn)、休息方法(rest)、显示信息方法(display)。在学习方法中,体重减一;在休息方法中,体重加一。 (3) 为学生类提供方法重载对成员变量进行灵活初始化。要求(a、无参的构造方法;b、只有姓名一个参数的构造方法;c、有姓名、性别两个参数的构造方法;d、有姓名、性别、年龄三个参数的构造方法;e、有姓名、性别、年龄、体重四个参数的构造方法;f、有姓名、性别、年龄、体重、银行帐户五个参数的构造方法。 (4) 在测试类中,实例化学生类,要求:通过6种不同的初始化方法,实现6个对象的创建,并显示具体学生的相关信息。 第18页 共51页
西南财经大学天府学院教案 TIANFU COLLEGE OF SWUFE
(5) 定义一个类AbsoluteValue(求绝对值),要求使用方法重载实现不同类型数值的取绝对值方法:abs。 作 业 布 置 课 后 总 结 (1) P193 11、12、13。 (1) 80%以上的同学掌握了windows应用程序的安装、卸载以及软件的注册。 (2) 90%以上的同学掌握了windows的基本快捷操作。 第19页 共51页