ch04Java面向对象编程技术.ppt
《ch04Java面向对象编程技术.ppt》由会员分享,可在线阅读,更多相关《ch04Java面向对象编程技术.ppt(76页珍藏版)》请在三一文库上搜索。
1、第4讲 Java面向对象编程技术,授课课时:8课时(360分钟) 主编:刘志成,2,主要内容,本课目标 新课引入与项目展示 案例1 编写描述学生的Java类 案例2 编写描述大学生的Java类 案例3 方法重载与方法重写 案例4 定义形状 案例5 实现电视机遥控器 案例6 读取队列元素 案例7 操作字符串 课堂实践 巩固与提高,3,本课目标,4,教学情境引入新课,熟练掌握类的定义,对象的创建及对象之间的交互,子类和抽象类的定义及多态的实现与使用。,工作任务,项目展示,5,教师示范与讲解1,任务一:编写描述学生的Java类,案例分析,6,面向对象的基本概念,1对象 对象(Object)就是客观存
2、在的任何事物。 2类 类(class)是对象的模板。即类是对一组有相同静态特性和相同动态行为的对象的抽象,一个类所包含的属性和方法描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。,7,面向对象的基本概念,3接口 如果我们把客观世界看成由不同的系统(或类)组成,这些系统(或类)之间需要通过一个公共的部件进行交流,我们把这个公共的部件称为接口(Interface)。 4消息 消息就是对象之间进行通信的一种规格说明,对象之间进行交互作用和通信的工具。,8,面向对象的基本特性,1封装性 封装是一种信息隐蔽技术,它体现于类的说明中,是对象的重要特性。 封装的目的在于把
3、对象的设计者和对象的使用者分开,使用者不需要知道行为实现的细节,只需用设计者提供的消息来访问该对象。 在Java语言中,类是封装的最基本单位。 封装有助于提高类和系统的安全性。,9,面向对象的基本特性,2继承性 继承是类不同抽象级别之间的关系,是子类自动共享父类数据和方法的机制。 3多态性 对象根据所接收的消息产生行为,同一消息为不同的对象接收时可产生完全不同的行动,这种现象称为多态性。 多态允许对任意指定的对象自动地使用正确的方法,并通过在程序运行过程中将对象与恰当的方法进行动态绑定来实现。,10,类的定义,Java中的类的定义包括类声明和类体两部分内容。 类声明的格式如下: publica
4、bstractfinal class 类名 extends 父类名 implements 接口名表 类体的通用格式如下: publicabstractfinal class 类名 extends 父类名 implements 接口名表 成员域定义部分; 方法定义部分; ,11,课堂演示-编写描述学生的Java类,【案例4-1】判断指定数的奇偶性 【案例学习目标】理解面向对象的基本概念,掌握Java语言中类的基本格式,能够简单实现对客观事物到Java类的抽象。 【案例知识要点】类的含义、类的定义、Java类的声明方法、Java类体的定义方法。 【案例完成步骤】 学生对象分析 类的定义,12,课堂
5、演示-编写描述学生的Java类,学生对象分析,13,课堂演示-编写描述学生的Java类,类的定义 public class Student public static int iCounter=0; String sName; boolean bGender=false; /false代表“女“ int iAge; double dHeight; /单位为厘米 double dWeight; /单位为公斤 public static void getCounter() System.out.println(“学生总数:“+ +iCounter); ,14,课堂演示-编写描述学生的Java类,p
6、ublic void getInfo() System.out.print(“姓名:“+sName+“t“); System.out.print(“性别:“+bGender+“t“); System.out.print(“年龄:“+iAge+“岁t“); System.out.print(“身高:“+dHeight+“厘米t“); System.out.println(“体重:“+dWeight+“公斤“); public void setInfo(String n,boolean g,int a,double h,double w) sName=n; bGender=g; iAge=a; d
7、Height=h; dWeight=w; ,15,学生模仿1,16,教师示范与讲解2,17,成员变量定义,成员变量描述了类的静态特性。 类的静态特性包括两部分:类的特性和对象的特性信息。对应的Java也将成员变量分为两种:类变量和实例变量。 在变量定义时,可同时给其赋初值,将其初始化 类的成员变量定义的一般格式如下: 存取修饰符 final transient static volatile 类型 变量名 = 值 或表达式,变量名 = 值或表达式;,18,成员方法定义,方法是一个包含一条或多条语句的代码块,用来完成一个相对独立的功能 方法有自己的名称以及可以重复使用的变量 与类成员变量一样,方
8、法也分为类方法(也称为静态方法)和实例方法两种 类的成员方法定义的一般格式如下: 存取修饰符 final staticabstractnativesynchronized 方法返回类型 方法名( 形式参数表) throws 异常表 可执行代码; ,19,构造方法,构造方法的主要用途有两个:一是通知Java虚拟机创建类的对象,二是对创建的对象进行初始化 如果在程序中没有显式的定义类的构造方法,Java编译器将自动提供一个构造方法,称为默认构造方法 可以在【案例4-1】中,添加一个构造方法: public Student() iAge=36; dHeight=170; dWeight=65; ,2
9、0,创建对象,1创建对象的步骤 在已经定义好的类的基础上,创建对象的过程分为如下3步: (1)创建对象引用变量; (2)创建类的实例对象; (3)将对象的引用赋值给对象引用变量。,21,创建对象,2new运算符 通过new运算符创建对象时,Java虚拟机将在堆中开辟一个内存空间,用于存放对象的实例变量,并根据指定的构造方法和类的定义初始化这些实例变量。new运算符的一般格式为: 对象引用变量 new 对象构造方法; 3调用对象的成员 对象的成员(实例变量与实例方法)的调用采用“.”运算符,引用的一般格式为: 对象引用变量.类的成员,22,类的继承,在Java中,从一个现有类的基础上定义新的类的
10、过程称为派生。 新定义的类称为派生类,也称为直接子类。 基础类称为父类或超类。这种一个类派生出另一个类的关系即为继承关系,一个派生类将继承其父类的所有特性和操作。 如果要创建一个继承父类的子类,只需在类的声明中通过extends关键字指定要继承的类名就可以。,23,课堂演示-编写描述大学生的Java类,【案例4-2】编写描述大学生的Java类 【案例学习目标】理解继承的基本思想,理解父类和子类的关系,能在父类的基础上创建子类 【案例知识要点】父类和子类的概念、子类的实现、extends关键字 【案例完成步骤】 编写程序 编译并运行程序,24,课堂演示-编写描述大学生的Java类,编写程序 pu
11、blic class College extends Student private String sMajor; public void getMajor() System.out.println(“专业:“+sMajor);/调用子类的实例变量 System.out.println(“身高:“+dHeight);/引用父类的实例变量 public static void main(String args) College wangym; wangym=new College(); wangym.getInfo();/调用父类的实例方法 wangym.getMajor();/调用子类的实例方
12、法 ,25,课堂演示-编写描述大学生的Java类,运行结果,26,学生模仿2,27,教师示范与讲解3,任务一:方法重载与方法重写,案例分析,28,this和super,this代表当前对象本身。 通过this变量不仅可以引用当前对象的实例变量,也可引用当前对象的实例方法;但由于类变量与类方法不属于具体的类对象,因此不能通过this变量引用类变量和类方法,在类方法中也不能使用this变量。 在引用实例变量时,使用this变量是一种很好的习惯,它能使程序更加清晰,且不容易出错。 super代表当前类的父类。通过super可以调用父类的构造方法和父类的成员(成员变量和成员方法)。,29,方法重载与方
13、法重写,方法重载指类的同名方法在向其传递不同的参数时可以有不同的动作,实现不同的功能 子类从父类中继承方法时,需要修改父类中定义的方法(即只修改方法体,方法的参数类型、个数、顺序以及返回值保持相同),这就是方法的重写,30,课堂演示方法重载与方法重写,【案例4-3】方法重载与方法重写 【案例学习目标】理解方法重载的含义和应用场合,理解方法重写的含义和应用场合,掌握实现方法重载的方法,掌握实现方法重写的方法,能在实际应用中合理选择方法重载或方法重写。 【案例知识要点】方法重载的含义、方法重写的含义、方法重载的方法、方法重写的方法。 【案例完成步骤】 编写程序 编译并运行程序,31,课堂演示-方法
14、重载与方法重写,编写方法重载的程序 public class OverLoadDemo void purchase() System.out.println(“买菜“); void purchase(String what) System.out.println(“买“+what); void purchase(String what,int number) System.out.println(“买“+number+“斤“+what); void purchase(String what,String where) System.out.println(“到“+where+“买“+what)
15、; ,32,课堂演示-方法重载与方法重写,void purchase(String what,int number,String where) System.out.println(“到“+where+“买“+number+“斤“+what); void purchase(String what,int number,String where,String when) System.out.println(when+“到“+where+“买“+number+“斤“+what); public static void main(String args) OverLoadDemo old=new
16、OverLoadDemo(); old.purchase(); old.purchase(“大米“); old.purchase(“大米“,100); old.purchase(“大米“,“步步高超市“); old.purchase(“大米“,100,“步步高超市“); old.purchase(“大米“,100,“步步高超市“,“下午“); ,33,课堂演示-方法重载与方法重写,方法重载运行结果,34,课堂演示-方法重载与方法重写,编写方法重写的程序 class Stu String sName; void display(String name) System.out.println(“我
17、是一名学生,我的名字是:“+name); class CollegeStu extends Stu String sMajor; void display(String name) System.out.println(“-“); System.out.println(“我是一名大学生,我的名字是:“+name); sMajor=“计算机“; System.out.println(“我学习的专业是:“+sMajor); ,35,课堂演示-方法重载与方法重写,class MiddleStu extends Stu String sSubject; void display(String name
18、) System.out.println(“-“); System.out.println(“我是一名中学生,我的名字是:“+name); sSubject=“理科“; System.out.println(“我学习的科目是:“+sSubject); ,36,课堂演示-方法重载与方法重写,public class OverrideDemo public static void main(String args) Stu stu=new Stu(); CollegeStu cstu=new CollegeStu(); MiddleStu mstu=new MiddleStu(); Stu s;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ch04Java 面向 对象 编程 技术
链接地址:https://www.31doc.com/p-2140686.html