第04章 面向对象技术基础.ppt_第1页
第04章 面向对象技术基础.ppt_第2页
第04章 面向对象技术基础.ppt_第3页
第04章 面向对象技术基础.ppt_第4页
第04章 面向对象技术基础.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章面向对象程序设计基础,主要内容,4.1面向对象的基本概念4.2类的定义4.3类和对象的使用4.4包package4.5成员变量及方法的访问权限4.6final、this及其它,4.1面向对象的基本概念,、为什么要面向对象?什么是面向对象?、面向对象的发展史3、面向对象的基本概念和基本原理,面向对象的基本概念和基本原理,对象类抽象性封装性继承性多态性,第4章面向对象程序设计基础,4.1面向对象的基本概念4.2类的定义4.3类和对象的使用4.4包package4.5成员变量及方法的访问权限4.6final、this及其它,4.2类的定义,4.2.1类声明4.2.2类体4.2.3实例化对象4.2.4构造方法说明4.2.5对象的清除4.2.6方法重载,4.2.1类声明,一个类的实现包括两个部分:类声明和类体。,4.2.1类声明,类声明的格式如下:修饰符class类名extends超类名implements接口名列表修饰符可能的选项有:publicabstract|final,4.2.1类声明,类的声明举例:classCirclepointcenter;/属性或成员floatradius;/属性或成员doublegetArea()/方法returnradius*radius*3.1415926;,4.2.2类体,类体中定义了该类所有的成员变量和该类所支持的方法,其格式说明如下:成员变量说明成员方法说明,4.2.2类体,类体:public|protected|privatestaticfinaltransientvolatiletypevariableName;/成员变量public|protected|privatestaticfinal|abstractnativesynchronizedreturnTypemethodName(paramList)throwsexceptionListstatements/成员方法通常成员变量的声明在成员方法声明之前。,4.2.2类体,1成员变量说明修饰符成员变量类型成员变量名列表;例如:privateintnumber;成员变量的修饰符有以下几种:缺省访问修饰符、public、protected、private、final、static、transient和volatile。,4.2.2类体,2、成员方法说明方法首部说明的格式如下:方法修饰符返回值类型方法名(形参列表)throws异常列表可能的选项有:public|protected|privatestaticfinal|abstractnativesynchronizedreturnTypemethodName(paramList)throwsexceptionList/方法声明,4.2.2类体,3、方法体由“”和“”括起来的语句序列构成。方法体也可以是一个分号“;”,表示无方法体,该方法没有实现。当且仅当方法的修饰符中有abstract或native时,方法才无方法体。,4.2.2类体,例如求解三角形问题时可以编写Triangle类,在Triangle类可以有如下的个方法。程序如下:classTriangledoublesideA,sideB,sideC;/三角形的三边voidsetSide(doublea,doubleb,doublec)/该方法用来赋初值sideA=a;sideB=b;sideC=c;booleanisOrNotTriangle()/判断是否是三角形的方法if(sideA+sideBsideC,4.2.3实例化对象,创建一个对象包括对象的声明、为对象分配内存空间和赋初值三个步骤。,4.2.3实例化对象,【例4-1】下面的例子将建立雇员信息类EmpInfo,并实例化对象,然后打印出若干信息。/EmpInfo.javapublicclassEmpInfoStringname;/雇员的姓名Stringdesignation;/雇员的职务Stringdepartment;/雇员的部门voidprint()/成员方法System.out.println(name+is+designation+at+department);,4.2.3实例化对象,publicstaticvoidmain(Stringargv)EmpInfoemployee=newEmpInfo();/创建对象并实例化=RobertJavaman;/给成员变量赋值employee.designation=Manager;/给成员变量赋值employee.department=CoffeeShop;/给成员变量赋值employee.print();/调用方法print()运行结果如下:RobertJavamanisManageratCoffeeShop,4.2.4构造方法,构造方法说明形式如下:构造方法修饰符方法名(形式参数列表)throws异常列表方法体构造方法修饰符一般为public,方法名与类名相同。构造方法无返回值,只能用new关键字调用。,4.2.4构造方法,4.2.4构造方法,构造方法分为缺省的构造方法(不带参数)和带参数的构造方法。带参数的构造方法带有参数的构造方法可以按需要将一些指定的参数传递给对象的变量。,4.2.4构造方法,【例4-3】在例4-1的基础上编写带参数的构造方法。/EmpInfoC.javapublicclassEmpInfoCStringname;/雇员的姓名Stringdesignation;/雇员的职务Stringdepartment;/雇员的部门/带参数的构造方法publicEmpInfoC(Stringname,Stringdesignation,Stringdepartment)=name;this.designation=designation;this.department=department;voidprint()/成员方法System.out.println(name+is+designation+at+department);,4.2.5对象的清除,Java运行时系统通过垃圾收集器周期性地释放无用对象所使用的内存,完成对象的清除。,总结,固定格式声明的三个方法:、构造方法、publicstaticvoidmain(stringargs),4.2.6方法重载,成员方法重载构造方法重载,4.2.6方法重载,【例4-4】关于成员方法重载的例子/DemoOverload.javaclassDemo2inta,b;intmethod()/成员方法一returna+b;intmethod(intc)/成员方法二returna+b+c;intmethod(intc,intd)/成员方法三returna+b+c+d;Demo2(inta,intb)/构造方法this.a=a;this.b=b;,4.2.6方法重载,【例4-4】关于成员方法重载的例子publicclassDemoOverloadpublicstaticvoidmain(Stringargs)Demo2aDemo2=newDemo2(1,2);/实例化inta=aDemo2.method();/调用成员方法一System.out.println(a);intb=aDemo2.method(3);/调用成员方法二System.out.println(b);intc=aDemo2.method(3,4);/调用成员方法三System.out.println(c);上面程序的运行结果为:3610,4.2.6方法重载,【例4-5】构造方法也可以重载,/ConstructionOverload.javaclassDemointa,b,c;/成员变量publicDemo()/构造方法1publicDemo(inta)/构造方法2this.a=a;publicDemo(inta,intb)/构造方法3this.a=a;this.b=b;publicDemo(inta,intb,intc)/构造方法4this.a=a;this.b=b;this.c=c;,第4章面向对象程序设计基础,4.1面向对象的基本概念4.2类的定义4.3类和对象的使用4.4包package4.5成员变量及方法的访问权限4.6final、this及其它,4.3类和对象的使用,4.3.1实例变量和类变量4.3.2实例方法和类方法,【例4-6】下面是关于实例变量的例子,/instVar.javaclasskoAinta;publicvoiddisplay()System.out.print(a=+a);publicclassinstVarpublicstaticvoidmain(Stringargs)koAa1=newkoA();a1.a=10;/a1是一个实例对象koAa2=newkoA();a2.a=20;/a2是另一个实例对象a1.display();a2.display();运行结果为a=10a=20,【例4-7】下面是类变量的例子,/classVar.javaclasskoBstaticinta;publicvoiddisplay()System.out.print(a=+a);publicclassclassVarpublicstaticvoidmain(Stringargs)koBa1=newkoB();a1.a=10;/a1是一个实例对象koBa2=newkoB();a2.a=20;/a2是另一个实例对象koB.a=50;/直接访问类变量a1.display();a2.display();运行结果为:a=50a=50,4.3.2实例方法和类方法,【例4-1】下面的例子将建立雇员信息类EmpInfo,并实例化对象,然后打印出若干信息。/EmpInfo.javapublicclassEmpInfoStringname;/雇员的姓名Stringdesignation;/雇员的职务Stringdepartment;/雇员的部门voidprint()/成员方法System.out.println(name+is+designation+at+department);,4.3.2实例化对象,publicstaticvoidmain(Stringargv)EmpInfoemployee=newEmpInfo();/创建对象并实例化=RobertJavaman;/给成员变量赋值employee.designation=Manager;/给成员变量赋值employee.department=CoffeeShop;/给成员变量赋值employee.print();/调用方法print()运行结果如下:RobertJavamanisManageratCoffeeShop,4.3.2实例方法和类方法,【例4-8】下面是类方法使用的例子/classMethodTest.javaclassmemberstaticintclassVar;intinstanceVar;staticvoidsetClassVar(inti)classVar=i;/instanceVar=i;/在类方法中不能引用实例成员。,staticintgetClassVar()returnclassVar;voidsetInstanceVar(inti)classVar=i;instanceVar=i;intgetInstanceVar()returninstanceVar;,4.3.2实例方法和类方法,publicclassclassMethodTestpublicstaticvoidmain(Stringargs)memberm1=newmember();memberm2=newmember();m1.setClassVar(1);m2.setClassVar(2);System.out.println(m1.classVar=+m1.getClassVar()+m2.classVar=+m2.getClassVar();m1.setInstanceVar(11);m2.setInstanceVar(22);System.out.println(m1.InstanceVar=+m1.getInstanceVar()+m2.InstanceVar=+m2.getInstanceVar();运行结果为:m1.classVar=2m2.classVar=2m1.InstanccVar=11m2.InstanceVar=22,第4章面向对象程序设计基础,4.1面向对象的基本概念4.2类的定义4.3类和对象的使用4.4包package4.5成员变量及方法的访问权限4.6final、this及其它,4.4包package,4.4.1package语句4.4.2import语句4.4.3编译和运行包,第4章面向对象程序设计基础,4.1面向对象的基本概念4.2类的定义4.3类和对象的使用4.4包package4.5成员变量及方法的访问权限4.6final、this及其它,4.5成员变量及方法的访问权限,4.5.1公共类型(public)4.5.2保护类型(protected)4.5.3私有类型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论