第3讲面向对象类与对象精选文档.ppt
《第3讲面向对象类与对象精选文档.ppt》由会员分享,可在线阅读,更多相关《第3讲面向对象类与对象精选文档.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3讲面向对象类与对象本讲稿第一页,共七十七页课前思考课前思考什么是对象?什么是类?什么是对象?什么是类?类与对象之间的关系类与对象之间的关系?对象的初始化对象的初始化java语言在面向对象编程方面有何独特的特点吗?语言在面向对象编程方面有何独特的特点吗?第三章第三章 面向对象面向对象类与对象类与对象本讲稿第二页,共七十七页学习目标学习目标本章主要讲述了本章主要讲述了java语言的面向对象技术语言的面向对象技术面向对象的基本概念、面向对象的程序设计方法;面向对象的基本概念、面向对象的程序设计方法;java中的类、对象、面向对象的特性;中的类、对象、面向对象的特性;通过本章的学习,可以使用面向对
2、象技术编写通过本章的学习,可以使用面向对象技术编写java程序程序第三章第三章 面向对象技术面向对象技术本讲稿第三页,共七十七页学习指南学习指南应深刻理解面向对象的相关概念,使用前面讲的编程基础知识及本章面向对象技术,编写简单的java类,由浅至深,养成风格良好的编程习惯重重 点点仔细体会面向对象编程的思想,熟练理解类和对象的概念,理解面向对象的特性,会编写简单的类,逐渐掌握面向对象编程的方法;第三章第三章 面向对象技术面向对象技术本讲稿第四页,共七十七页Java是一种完全面向对象的编程语言,程序中的所有数据与函数都封装在类中;Java实现了封装、继承、多态等面向对象属性,降低了程序的复杂性、
3、实现了程序的可重用性;要掌握两个核心概念要掌握两个核心概念类类对象对象;要理解面向对象的三个核心特性:要理解面向对象的三个核心特性:类的类的封装封装、继承继承和和多态多态第三章第三章 面向对象技术面向对象技术本讲稿第五页,共七十七页类:现实世界的模型(协作图CollaborationDiagram)人与汽车(客户与服务器)消息驱动状态、属性、标识、行为、封装第三章第三章 面向对象技术面向对象技术本讲稿第六页,共七十七页1.编辑编辑源程序源程序:Fish.java【例例3-1】定义一个描述鱼的类定义一个描述鱼的类FishpublicclassFish/关键字class用来定义类FishStrin
4、gname;/描述Fish的名字StringtheColor;/描述Fish的颜色voidsetValue(Stringn,Stringc)/设置值:名字,颜色name=n;theColor=c;voidswimming()/Fish最大的特性是能游泳System.out.println(icanswimming.);voidoutput()System.out.println(mynameis:+name+ilike:+theColor);publicstaticvoidmain(Stringargs)FishclownFish=newFish();/创建Fish“变量”clownFishc
5、lownFish.setValue(nemo,red);/调用Fish中的方法(函数)为f赋值clownFish.output();/输出f所描述的鱼的信息clownFish.swimming();/Fish会游泳定义了一个类定义了一个类类中的类中的变量变量描述类的属性,描述类的属性,用来用来存储数据存储数据类的类的函数函数描述类的行描述类的行为,完成对数据的为,完成对数据的处理处理创建对象创建对象本讲稿第七页,共七十七页2.编译这个程序,在当前目录下生成编译这个程序,在当前目录下生成Fish.class的文件的文件;d:javajavacFishe.java3.然后输入以下命令,运行这个程序
6、然后输入以下命令,运行这个程序:d:javajavaFish执行这个程序,将输出如下图所示:JavaJava程序程序-实例说明实例说明本讲稿第八页,共七十七页Fish是程序中定义的一种新型数据类型描述鱼的属性属性name,theColor描述鱼的行为行为swimming()及对数据处理的setValue()和output()方法(函数)并把它们封装集成起来,这就是本章要学习掌握的,面向对象编程中最重要的概念类类JavaJava程序程序-实例说明实例说明本讲稿第九页,共七十七页作为类这种数据类型的变量,如例3.1中Clownfish,是面向对象程序设计中的另外一个重要概念对象对象对象是类的一个实
7、例,类是创建对象的模版,其实,对象就是类这种数据类型的变量,通过对象可以引用类中定义的各个成员变量和成员方法类类是一种新的“数据类型数据类型”,描述了一类对象的共同特性,它把数据的存储与对数据的处理封装为一个整体学习Java编程必须要学会如何定义类,理解类与对象的关系。JavaJava程序程序-实例说明实例说明本讲稿第十页,共七十七页1.首先,首先,编辑编辑软件源程序软件源程序:Date.java【例例3-2】定义一个日期类定义一个日期类publicclassDatepublicintyear,month,day;publicvoidsetDate(inty,intm,intd)year=y;
8、month=m;day=d;publicintgetYear()returnyear;publicStringtomorrow()day+;Stringd=month+”_”+day+”_”+year;returnd;定义了一个类定义了一个类类中的变量描述类的属性,类中的变量描述类的属性,用来存储数据用来存储数据类的函数描述类的行类的函数描述类的行为,完成对数据的处为,完成对数据的处理理算法不完整算法不完整本讲稿第十一页,共七十七页2.编译这个程序,在当前目录下生成编译这个程序,在当前目录下生成Birthday.class的文件的文件;d:javajavacDate.java3.然后输入以下命
9、令,运行这个程序然后输入以下命令,运行这个程序:d:javajavaDate执行这个程序执行这个程序,将输出一些信息,如下图所示:错误提示错误提示:没有定义main方法JavaJava程序程序-实例说明实例说明本讲稿第十二页,共七十七页4.再用文字编辑软件输入以下源程序:useDate.javaJavaJava程序程序-实例说明实例说明publicclassuseDatepublicstaticvoidmain(Stringargv)Dateb1,b2;b1=newDate();b2=newDate();b2.setDate(1950,11,01);System.out.println(b1.
10、getYear();System.out.println(b2.tomorrow();定义一个类定义一个类类成员方法类成员方法main()是程序执行是程序执行的入口的入口Date是是一种数据类型,一种数据类型,声明该类型的变量声明该类型的变量b1,b2使用使用new创建变量,并为之分配创建变量,并为之分配存储空间存储空间通过通过b1,b2调用类的方法,完成对数调用类的方法,完成对数据的处理据的处理 b2.setDate调用函数,完成对对调用函数,完成对对象象b2中的变量赋值中的变量赋值本讲稿第十三页,共七十七页5.编译并运行程序编译并运行程序useDate.java,输出信息如下图,输出信息如
11、下图JavaJava程序程序-实例说明实例说明本讲稿第十四页,共七十七页JavaJava程序程序-实例说明实例说明第二个程序useDate.java,这是个可独立运行的应用程序,其中,main方法中的前两条,看上去象是声明变量:Dateb1=newDate();Dateb2=newDate(1949,10,01);Date是已经定义的类,后面的程序就可以直接来定义这种新型数据类型的变量;也就是定义Date类型的变量b1、b2我们将Date称为类,而将b1和b2称为对象类是表示一类事物,而对象则是类的一个个体,一个实例类是表示一类事物,而对象则是类的一个个体,一个实例;Birthday看作一种特
12、殊的数据类型;而对象就是这种特殊数据类型的变量本讲稿第十五页,共七十七页使用new运算符创建对象创建对象,创建对象同时对其初始化:1.Dateb1=newDate();创建变量为对象分配存储空间;将对象b1的三个变量year,month和day分别初始化为0JavaJava程序程序-实例说明实例说明本讲稿第十六页,共七十七页JavaJava程序程序-实例说明实例说明使用new运算符创建对象创建对象,创建对象同时对其初始化:2.Dateb1=newDate();创建变量为对象分配存储空间;将对象b1的三个变量year,month和day分别初始化为0b2.setDate(1949,10,01);
13、调用函数setDate(inty,intm,intd)year=y;month=m;day=d;通过参数传递,分别赋值给对象b2的三个变量:1949赋值给year,10赋值给month,1赋值给day本讲稿第十七页,共七十七页类:是一个逻辑抽象的概念,它声明了一种新的“数据类型数据类型”,描述了一类对象的共同特性;它把描述其属性的数据及对数据处理的函数封装在一起;如定义Date类中,既有数据属性类中,既有数据属性year、month、day,还有描述其,还有描述其动作,即完成对数据处理的函数动作,即完成对数据处理的函数getYear(),tomorrow()类就是一种包含数据存储与对数据处理的
14、一种新的数据类型;系统定义类(JDKAPI)和用户程序定义类对象:对象:在面向对象的世界里,我们把类的具体的一个个的个体称为它所属它所属类类的的对象对象在本章中,我们引入全新的编程思想面向对象程序设计方法,其核心就是类核心就是类 3.2 3.2 类的定义类的定义本讲稿第十八页,共七十七页如果把如果把日期日期看作一个抽象的类的,那么某一天就是看作一个抽象的类的,那么某一天就是日期日期类的一个实例,类的一个实例,即一个对象;即一个对象;日期的年、月、日都是描述日期的日期的年、月、日都是描述日期的数据属性数据属性可以定义相应的可以定义相应的变量变量来描述类中这些类的属性来描述类中这些类的属性而函数而
15、函数getYear()、tomorrow()完成对数据的处理得到预期的结果;完成对数据的处理得到预期的结果;类中的变量,称为类中的变量,称为成员变量成员变量类中对数据操作的函数,称为类中对数据操作的函数,称为成员方法成员方法这些变量和函数都是属于类的,所以是类的成员这些变量和函数都是属于类的,所以是类的成员 3.3 3.3 类与对象类与对象本讲稿第十九页,共七十七页java类的定义格式分为两部分:类声明和类主体:类的一般格式类的一般格式:类主体;类主体;类的声明类的声明定义了类的定义了类的名称名称、访问权限访问权限、与其他类的关系与其他类的关系类主体类主体定义了该类的成员:定义了该类的成员:成
16、员变量与成员方法成员变量与成员方法;3.3.1 3.3.1 类的声明类的声明本讲稿第二十页,共七十七页java类的定义格式分为两部分:类声明和类主体:类的一般格式类的一般格式:类主体;类主体;3.3.1 3.3.1 类的声明类的声明如下面定义类的例子。classBook.上面的例子声明了一个Book类,class是关键字用来定义类Book类名必须是合法的Java标识符,不能是关键字为提高程序的易读性,类名第一个字符一般大写常常是一个单词或几个单词的组合,如,Car,Student,Employee等本讲稿第二十一页,共七十七页类体类体是类的主体部分,要完成类的是类的主体部分,要完成类的成员变量
17、成员变量与与成员方法成员方法的定义与实现:的定义与实现:class 3.3.2 3.3.2 类体类体与与C+不同:不同:java类中的成员方法的定义类中的成员方法的定义必须在类体内完成必须在类体内完成Java是一门纯粹的面向对象语言,所有的变量和方法都在类体内定义,没有游离于类之外的变量和方法所以称为类的成员变量成员变量和和成员方法成员方法本讲稿第二十二页,共七十七页1.声明成员变量(数据成员)声明成员变量(数据成员)类的状态需要成员变量来描述,简单变量的语法如下:变量类型变量类型变量名变量名必须给出必须给出变量名变量名与与所属类型,如所属类型,如声明一个表日期类声明一个表日期类Date1,有
18、三个成员变量:,有三个成员变量:publicclassDate1intyear,month,day;声明成员变量声明成员变量成员变量必须在类主成员变量必须在类主体内声明,且不包含体内声明,且不包含在方法体中在方法体中本讲稿第二十三页,共七十七页1.声明成员变量(数据成员)声明成员变量(数据成员)类的状态需要成员变量来描述,简单变量的语法如下:变量类型变量类型变量名变量名必须给出必须给出变量名变量名与与所属类型,如所属类型,如例如例如,定义一个描述学生的类,含有,定义一个描述学生的类,含有7个成员变量:个成员变量:name,age,sex,dept分别描述学生的姓名,年龄,性分别描述学生的姓名,
19、年龄,性别和系别;别和系别;english,math,computer用来表示三门科用来表示三门科目成绩。目成绩。:publicclassStudentStringname,dept,sex;intage,english,math,computer;声明成员变量声明成员变量成员变量必须在类主成员变量必须在类主体内声明,且不包含体内声明,且不包含在方法体中在方法体中本讲稿第二十四页,共七十七页2.声明成员方法(成员函数)声明成员方法(成员函数)JDKAPI和用户自定义方法类中定义的方法通常起到两种作用:1)围绕着类的属性进行各种操作;2)与其他的类或对象进行数据交流、消息传递等操作其声明与实现分
20、两个部分:方法声明与方法体其声明与实现分两个部分:方法声明与方法体修饰符修饰符返回值类型返回值类型方法名方法名()throws异常类异常类方法体:方法体:局部变量声明;局部变量声明;语句序列;语句序列;声明成员方法声明成员方法声明中必须有方法名,方声明中必须有方法名,方法的返回类型,如果没参法的返回类型,如果没参数,可以空数,可以空本讲稿第二十五页,共七十七页2.声明成员方法(成员函数)声明成员方法(成员函数)如下面的程序段定义了类Student,它包括一个成员方法total();三个int类型的成员变量,三个String类型的成员变量。方法total()的返回值是int类型,用来计算学生的总
21、成绩publicclassStudentStringname,dept,sex;intage,english,math,computer;inttotal(inte,intm,intc)returne+m+c;声明成员方法声明成员方法声明中必须有方法名,方声明中必须有方法名,方法的返回类型,如果没参法的返回类型,如果没参数,可以空数,可以空本讲稿第二十六页,共七十七页publicclassDate1intyear,month,day;voidsetdate(inty,intm,intd)year=y;month=m;day=d;booleanisleapyear()return(year%40
22、0=0)|(year%100!=0)&(year%4=0);voidprint()System.out.println(“dateis”+year+-+month+-+day);publicstaticvoidmain(Stringargs)Date1d=newDate1();d.setdate(2004,9,18);d.print();System.out.println(d.year+isaleapyear,+d.isleapyear();/类声明类声明/成员变量,表示年、月、日成员变量,表示年、月、日/成员方法,设置日期值成员方法,设置日期值/成员方法,判断年份是否为闰年成员方法,判断年
23、份是否为闰年/输出日期值,无返回值输出日期值,无返回值,无参数无参数/主方法,程序执行的开始主方法,程序执行的开始/创建对象创建对象/通过对象,调用成员方法通过对象,调用成员方法【例例3-3】创建日期类创建日期类Date1本讲稿第二十七页,共七十七页publicclassDate1intyear,month,day;voidsetdate(inty,intm,intd)year=y;month=m;day=d;booleanisleapyear().voidprint().publicstaticvoidmain(Stringargs)Date1d=newDate1();d.setdate(2
24、004,9,18);d.print();System.out.println(d.year+isaleapyear,+d.isleapyear();本讲稿第二十八页,共七十七页类类是现实世界一类对象的共同特征(属性和操作)的表示,是是创创建建对对象的模板象的模板;对对象象是类的实例,在程序中创建每一个对象将在内存中开辟一块空间,存储该对象的属性和方法每个对象都属于一种类型,即所属的类;程序是一大堆对象的组合;通过消息传递 3.3.3 3.3.3 创建对象创建对象本讲稿第二十九页,共七十七页1.1.声明对象声明对象;对对象象是类的实例,即对象是一个已定义的实例,定义一个对象,必须声明该对象所属的
25、类;对象的声明格式:;如,Datetoday;对象声明仅仅告诉编译器,对象所属的类,并没有真正为对象分配存储空间,只有使用new运算符才能实例化对象 3.3.4 3.3.4 创建对象创建对象本讲稿第三十页,共七十七页2.2.创建创建(实例化实例化)对象对象创建对象需要使用new运算符,通过new运算符为对象申请存储空间,用来存储对象的成员变量;创建对象的一般格式创建对象的一般格式:对象名对象名=new类名类名(参数列表参数列表);如,如,day=newDate();功能功能:是在创建对象,并把对象的成员变量初始化为是在创建对象,并把对象的成员变量初始化为“空值空值”;3.3.4 3.3.4 创
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 精选 文档
限制150内