第4章 Java面向对象编程基础.ppt
《第4章 Java面向对象编程基础.ppt》由会员分享,可在线阅读,更多相关《第4章 Java面向对象编程基础.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JAVA第第4章章 Java面向对面向对象编程基础象编程基础1教学内容教学内容面向对象的基本概念面向对象的基本概念4.1类的定义类的定义4.2案例分析:定义银行账户类案例分析:定义银行账户类 4.3对象的定义和引用对象的定义和引用 4.4案例分析:银行账户对象的创建案例分析:银行账户对象的创建 4.5静态成员与实例成员静态成员与实例成员 4.6方法的重载方法的重载 4.72 2教学内容教学内容案例分析:银行账户类构造案例分析:银行账户类构造方法的重载方法的重载 4.8类的封装和访问控制类的封装和访问控制 4.4.9案例分析:简单的银行账户案例分析:简单的银行账户管理程序管理程序 4 4.103
2、 3教学目标教学目标v了解并熟悉面向对象的基本概念。了解并熟悉面向对象的基本概念。v掌握什么是类,以及如何定义类。掌握什么是类,以及如何定义类。v掌握构造方法的定义、作用,以及如何实现类的掌握构造方法的定义、作用,以及如何实现类的构造方法。构造方法。v掌握如何创建类对象、如何使用类对象。掌握如何创建类对象、如何使用类对象。v掌握静态成员和实例成员的使用方法,以及二者掌握静态成员和实例成员的使用方法,以及二者之间的区别。之间的区别。v掌握类成员的访问权限的设置方法,以及使用的掌握类成员的访问权限的设置方法,以及使用的原则。原则。4 4教学重点教学重点Z本本章章首首先先介介绍绍面面向向对对象象的的
3、一一些些基基本本概概念念,让让读读者者初步了解面向对象基本概念初步了解面向对象基本概念Z接接着着详详细细讲讲解解在在JavaJava中中类类的的含含义义、如如何何定定义义类类、如何由类定义对象以及二者的关系如何由类定义对象以及二者的关系Z然然后后讲讲解解对对象象的的使使用用方方法法、静静态态成成员员、实实例例成成员员、成员权限的设置等内容。成员权限的设置等内容。Z本本章章将将通通过过一一个个实实例例涵涵盖盖本本章章的的各各个个知知识识点点,让让读者由浅入深、由少到多、逐步深入与扩充读者由浅入深、由少到多、逐步深入与扩充Z最最终终形形成成一一个个完完整整的的案案例例,帮帮助助读读者者理理解解和和
4、运运用用本章知识点。本章知识点。5 5v类和对象类和对象 :类是一类对象的抽象或原形,它定义了该类对象的共同的类是一类对象的抽象或原形,它定义了该类对象的共同的属性属性属性属性和和方法方法方法方法。真实世界中每个看得见的东西都是对象真实世界中每个看得见的东西都是对象用户可以使用类的定义来生成该类的对象,生成的对象将用户可以使用类的定义来生成该类的对象,生成的对象将可以使用该类的所以组件。可以使用该类的所以组件。v属性与方法:属性与方法:(1)(1)属性属性成员成员(field)(field)域:是存储数据项的变量。成员域域:是存储数据项的变量。成员域也称也称类的数据成员(类的数据成员(类的数据
5、成员(类的数据成员(data memberdata memberdata memberdata member)。“属性属性”是对象的是对象的静态描述。静态描述。(2)(2)方法方法(method)(method):定义了用户可以进行的操作,也决定了:定义了用户可以进行的操作,也决定了利用类的对象可以做的事情。利用类的对象可以做的事情。“方法方法”则是对象的动态则是对象的动态描述,或解释为操作对象的方式描述,或解释为操作对象的方式 。4.1 4.1 面向对象的基本概念面向对象的基本概念6 6v例如:例如:如何描述如何描述“银行账户银行账户”这个对象呢?这个对象呢?将它分为将它分为属性与方法属性与
6、方法两个方面考虑,与两个方面考虑,与“银行账银行账户户”对象相关的静态属性主要有银行账号、户名、对象相关的静态属性主要有银行账号、户名、密码、账户余额等密码、账户余额等而与而与“银行账户银行账户”相关的动态方法有存款、取款、相关的动态方法有存款、取款、查询余额、更改密码等。查询余额、更改密码等。事实上对象本来就应该只是一个抽象的轮廓,因事实上对象本来就应该只是一个抽象的轮廓,因为必须依问题的不同来描述不同的对象,而不是为必须依问题的不同来描述不同的对象,而不是详细地将一个对象描述出来。详细地将一个对象描述出来。4.1 4.1 面向对象的基本概念面向对象的基本概念7 7v用来描述继承最简单的一句
7、话就是用来描述继承最简单的一句话就是“保留、修改与保留、修改与新增新增”。v在继承关系下,原来的对象称作在继承关系下,原来的对象称作父类对象父类对象,而新对而新对象称作象称作子类对象子类对象,父类和子类之间具有,父类和子类之间具有“相同种类相同种类”的关系。的关系。对象的继承对象的继承8 8v一是当用户在创造新对象时,应该以继承现有对象一是当用户在创造新对象时,应该以继承现有对象为前提,而不是绞尽脑汁再去创造另一个全新的对为前提,而不是绞尽脑汁再去创造另一个全新的对象;象;v另一方面是应该尽量以现成的对象来建构程序另一方面是应该尽量以现成的对象来建构程序v例如例如假使定义了一个假使定义了一个“
8、人人”对象,那么当定义对象,那么当定义“导游导游”对象时应该以继承对象时应该以继承“人人”对象为出发点,然后对象为出发点,然后进一步去做进一步去做“保留、修改和新增保留、修改和新增”的工作,就可的工作,就可在所有需要导游对象的程序中重复使用在所有需要导游对象的程序中重复使用 最佳例子最佳例子,就是,就是JavaJava所提供的各种所提供的各种APIAPI,这些,这些APIAPI中的类间可相互继承,并不断派生新增功能中的类间可相互继承,并不断派生新增功能 对象的重用对象的重用9 9v就是将就是将对象的属性和方法对象的属性和方法作适当程度的作适当程度的“包装包装”,只留下操作的接口只留下操作的接口
9、v封装也可以说成是一种封装也可以说成是一种“信息隐藏信息隐藏”(information hiding)。v封装的最大好处封装的最大好处就是会使对象容易使用就是会使对象容易使用,用户无须,用户无须去关心其内部的细节去关心其内部的细节。v例如例如,“录音机录音机”是一个对象,无论其内部构造有是一个对象,无论其内部构造有多复杂,用户总是由各种多复杂,用户总是由各种“录音键录音键”、“播放键播放键”、“停止键停止键”等按键来操作录音机。等按键来操作录音机。对象的封装对象的封装1010v是指在一般类中定义的属性或服务被特殊类继承之是指在一般类中定义的属性或服务被特殊类继承之后,可以后,可以具有不同的数据
10、类型或表现出不同的行为。具有不同的数据类型或表现出不同的行为。v这使得同一个属性或服务在一般类及其各个特殊类这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。中具有不同的语义。v例如:例如:“几何图形几何图形”的的“绘图绘图”方法,方法,“椭圆椭圆”和和“多多边形边形”都是都是“几何图形几何图形”的子类,但其的子类,但其“绘图绘图”方法功能不同。方法功能不同。对象的多态性对象的多态性1111vJavaJava中使用类的语法:中使用类的语法:存取修饰词存取修饰词 classclass 类名称类名称 extendsextends 单一父单一父类类 implements implemen
11、ts 接口接口1,1,接口接口22 /属性属性;/方法方法;v用户在指定用户在指定“类名称类名称”时必须遵守时必须遵守JavaJava的命名规则。的命名规则。v另外,在另外,在JavaJava语言中,英文字母大小写视为不同。语言中,英文字母大小写视为不同。4.2 4.2 类的定义类的定义1212v属性成员是具有某种数据类型的属性成员是具有某种数据类型的变量或常量变量或常量 。v定义属性成员的语法如下:定义属性成员的语法如下:访问权限修饰符访问权限修饰符 final staticfinal static 数据类数据类型型 名称;名称;v最简单的属性成员定义如下:最简单的属性成员定义如下:数据类型
12、数据类型 名称;名称;v属性成员的数据类型可分为属性成员的数据类型可分为原始数据类型和派生数原始数据类型和派生数据类型两大类。据类型两大类。属性成员的定义属性成员的定义1313v【例例4-14-1】定义定义“银行账户银行账户”类,主要包括姓名、账号、类,主要包括姓名、账号、密码及账户余额四个属性成员。密码及账户余额四个属性成员。class class CustCust /CustCust类类 /定义属性成员定义属性成员 String name;/String name;/字符串字符串 intint ID;/ID;/整型变量整型变量 String PWD;/String PWD;/字符串字符串
13、intint money;/money;/整型变量整型变量 属性成员的定义属性成员的定义1414v【例例4-24-2】修改上例定义的修改上例定义的“银行账户银行账户”类,声明四类,声明四个属性成员时直接为属性变量赋值。个属性成员时直接为属性变量赋值。class class CustCust /CustCust类类 /声明变量并指定变量值声明变量并指定变量值 String name=String name=张三张三;/;/字符串字符串 intint ID=001;/ID=001;/整型变量整型变量 /声明常数,并指定常数值声明常数,并指定常数值 /将串将串123456123456指定给字符串变量
14、指定给字符串变量PWDPWD final String PWD=123456;final String PWD=123456;/将常数将常数5000050000指定给整型变量指定给整型变量moneymoney final final intint money=50000;money=50000;属性成员的定义属性成员的定义1515v方法成员,是数行程序代码的集合,用来操作类中方法成员,是数行程序代码的集合,用来操作类中的属性成员。其包括方法头和方法体两个部分。的属性成员。其包括方法头和方法体两个部分。v定义方法成员的语法如下:定义方法成员的语法如下:访问权限修饰符访问权限修饰符 final s
15、tatic final static abstractabstract 返回值数据类型返回值数据类型 名称名称(参数列表参数列表)throws)throws异常类异常类 /方法主体方法主体 方法成员的定义方法成员的定义1616v例如例如在前述的在前述的“银行账户银行账户”类中,需要进行取钱和类中,需要进行取钱和存钱,可以定义方法如下:存钱,可以定义方法如下:intint getMoney(intgetMoney(int deposit)deposit)return money=return money=moneymoney-deposit;-deposit;void void saveMone
16、y(intsaveMoney(int deposit)deposit)money=money=moneymoney+deposit;+deposit;方法成员的定义方法成员的定义1717v方法成员,是数行程序代码的集合,用来操作类中方法成员,是数行程序代码的集合,用来操作类中的属性成员。其包括方法头和方法体两个部分。的属性成员。其包括方法头和方法体两个部分。v定义方法成员的语法如下:定义方法成员的语法如下:访问权限修饰符访问权限修饰符 final static final static abstractabstract 返回值数据类型返回值数据类型 名称名称(参数列表参数列表)throws)t
17、hrows异常类异常类 /方法主体方法主体 方法成员的定义方法成员的定义1818v1.1.案例描述案例描述建立一个银行账户类,要求能够存放用户的账号、建立一个银行账户类,要求能够存放用户的账号、姓名、密码和账户余额等个人信息,并包含存款、姓名、密码和账户余额等个人信息,并包含存款、取款、查询余额和修改账户密码等操作取款、查询余额和修改账户密码等操作 v2.2.案例分析案例分析本案例创建一个银行账户类即可,属性成员包含本案例创建一个银行账户类即可,属性成员包含四项:四项:密码和账户姓名可以定义为密码和账户姓名可以定义为StringString类型类型账号和账户余额可以定义为账号和账户余额可以定义
18、为intint类型类型方法成员,即各项操作,只需通过参数的传递,方法成员,即各项操作,只需通过参数的传递,修改类中相应的属性成员即可修改类中相应的属性成员即可4.3 4.3 案例分析:定义银行账户类案例分析:定义银行账户类1919v3.3.案例实现案例实现见见Cust1.javaCust1.javav4.4.归纳与提高归纳与提高本例中,应掌握类的定义的形式和方法。本例中,应掌握类的定义的形式和方法。在定义类时,根据属性成员的实际含义选用恰当在定义类时,根据属性成员的实际含义选用恰当的类型,并提供需要的方法成员,即操作。的类型,并提供需要的方法成员,即操作。v注意注意类中定义的属性成员在本类中都
19、可见,要区别其类中定义的属性成员在本类中都可见,要区别其与形参的不同。与形参的不同。形参的作用域是其所定义的方法体内形参的作用域是其所定义的方法体内而类的属性成员的作用域是整个类的范围。而类的属性成员的作用域是整个类的范围。4.3 4.3 案例分析:定义银行账户类案例分析:定义银行账户类2020v可以把类看成一个数据类型,这种数据类型就是可以把类看成一个数据类型,这种数据类型就是对对象类型。象类型。v对象类型和基本数据类型有着本质上的区别对象类型和基本数据类型有着本质上的区别声明对象变量之后,必须用运算符声明对象变量之后,必须用运算符newnew创建对象实创建对象实体之后,才能使用对象。体之后
20、,才能使用对象。vnewnew关键字关键字的作用有以下几点:的作用有以下几点:(1 1)为对象分配内存空间。)为对象分配内存空间。(2 2)调用类的构造方法。)调用类的构造方法。(3 3)为对象返回一个引用。)为对象返回一个引用。4.4 4.4 对象的定义和引用对象的定义和引用2121v构造方法必须以构造方法必须以类名作为方法的名称,且不返回任类名作为方法的名称,且不返回任何值何值v也就是说构造方法是名称为类名的特殊方法。也就是说构造方法是名称为类名的特殊方法。v【例例4-34-3】定义定义“银行账户银行账户”类的构造方法,实现对类的构造方法,实现对银行账户属性变量的赋值操作。银行账户属性变量
21、的赋值操作。CustCust(String(String newNamenewName,intint newIDnewID,String,String newPWDnewPWD,intint newMoneynewMoney)name=name=newNamenewName;ID=ID=newIDnewID;PWD=PWD=newPWDnewPWD;money=money=newMoneynewMoney;构造方法构造方法2222v在在JavaJava类中,类中,最少要有一个构造方法最少要有一个构造方法。v类的构造方法可以类的构造方法可以显式定义,也可以隐式定义显式定义,也可以隐式定义。v系统
22、使用默认的构造方法来初始化对象时,将类中系统使用默认的构造方法来初始化对象时,将类中的变量自动初始化为该类型的默认值。的变量自动初始化为该类型的默认值。整型初始化为整型初始化为0 0浮点型初始化为浮点型初始化为0.00.0字符型初始化为字符型初始化为u0000u0000逻辑型初始化为逻辑型初始化为falsefalse类对象初始化为类对象初始化为nullnull等等构造方法构造方法2323v构造方法是一个特殊的方法,其具有以下特点:构造方法是一个特殊的方法,其具有以下特点:(1 1)构造方法的方法名称必须与类名相同。)构造方法的方法名称必须与类名相同。(2 2)构造方法没有返回类型,也不能定义为
23、)构造方法没有返回类型,也不能定义为voidvoid。(3 3)构造方法的主要作用是完成对象的初始化工)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。作,它能够把定义对象时的参数传给对象的域。(4 4)构造方法不能由编程人员调用,而由系统调)构造方法不能由编程人员调用,而由系统调用。用。(5 5)一个类可以定义多个构造方法,即构造方法)一个类可以定义多个构造方法,即构造方法可以重载。但如果没有定义构造方法,则编译系可以重载。但如果没有定义构造方法,则编译系统会自动插入一个无参数的默认构造方法,这个统会自动插入一个无参数的默认构造方法,这个默认构造方法没有任何代
24、码。默认构造方法没有任何代码。构造方法构造方法2424v为为了了在在程程序序中中使使用用对对象象,首首先先要要声声明明和和创创建建一一个个对对象,然后给它发送消息,即调用它的方法。象,然后给它发送消息,即调用它的方法。v例如例如:CustCust myCustmyCust;CustCust=new Cust(Tom,100,12345,10000);=new Cust(Tom,100,12345,10000);v等效于等效于CustCust myCust myCust=new =new Cust(Tom,100,12345,10000);Cust(Tom,100,12345,10000);对象
25、的创建对象的创建2525对象的创建对象的创建Cust myCust;myCust=new Cust(Tom,100,12345,10000);0 x0012ff70myCustTom1234510010000nameIDPWDmoney0 x0012ff702626v类、引用和对象之间的关系如图类、引用和对象之间的关系如图4-34-3所示。所示。对象的创建对象的创建类类对象对象引用变引用变量量声明声明创建创建引用引用2727v在类的作用域中,一个类中声明的成员变量和方法可由类中在类的作用域中,一个类中声明的成员变量和方法可由类中的所有方法访问,并的所有方法访问,并可用它的名称进行引用。可用它的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 Java面向对象编程基础 Java 面向 对象 编程 基础
限制150内