Java语言程序设计-第06章_第1页
Java语言程序设计-第06章_第2页
Java语言程序设计-第06章_第3页
Java语言程序设计-第06章_第4页
Java语言程序设计-第06章_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第六章,面向对象的程序设计概念,一、面向对象的基本概念,符合人们日常自然的思维习惯;降低、分解问题的难度和复杂性,提高整个求解过程的可控制性、可监视性和可维护性;获得较高效率和较满意效果。,面向对象程序设计:,对象与类,简单地说:对象是表示现实世界中某个具体的事物;类是对对象的抽象描述。,面向对象设计思想,1、抽象:是从特定的实例中抽取共同的性质以形成一般化概念的过程。,对象(object),计算机世界中的对象是把数据及其相关的操作封装在一起所构成的实体。封装的实体=数据+方法(行为)数据:属性或状态方法:作用于数据上的操作封装:属性的访问和变化通过方法完成,二、类(class)的概念,类:是一种抽象的数据类型,它是所有具有一定共性的对象的抽象。本质上可以认为是对对象的描述,使创建对象的“模板”。类的某一个对象则被称为是类的一个实例,是类的实例化结果。,实例化,抽象,通信的相关性,利用通信实现一个对象与另一个对象的信息传递,信息传递的三个要素:信息接收对象;接收对象中哪个方法完成指定动作;此方法需要的参数;,消息(message),消息对象之间相互请求或相互协作的途径,是要求某个对象执行某项操作的规格说明消息内容通常包含接收对象及请求接收对象完成的功能信息发送对象发出消息,请求接收对象响应接收对象收到消息后,经过解释,激活方法,予以响应,方法(method),方法是对象的行为方式(操作)对象与外界的接口作用改变对象的属性返回对象的属性,object1,object2,面向对象方法的主要优点,与人类习惯的思维方法一致可重用性性可扩展性可管理性,三、定义类,修饰符class类名extends父类implements接口名类成员变量声明;类方法声明;,Java实例定义类,classPointprivateintx,y;publicvoidsetPoint(inta,intb)x=a;y=b;publicintgetX()returnx;publicintgetY()returny;publicStringtoString()return+x+,+y+;,四、对象的定义,修饰符类名对象名=new类名(实参列表);或修饰符类名对象名;对象名=new类名(实参列表);,创建对象,类名对象名;PointthePoint;注意:类属于复合数据类型,因此,在声明对象时,系统并没有为对象分配空间,用户需要应用new完成分配空间的任务。thePoint=newPoint();,对象的引用,引用成员变量对象名.成员变量名引用方法对象名.方法名(参数列表),Java实例创建对象,续接Java实例定义类publicclassPointExcisepublicstaticvoidmain(Stringargs)PointthePoint=newPoint();thePoint.setPoint(3,5);System.out.println(“坐标x=”+thePoint.getX();System.out.println(“坐标y=”+thePoint.getY();System.out.println(thePoint.toString();,对象的初始化,类中包含有成员变量和方法,当使用类声明并创建对象时,使用new关键字,这时系统为对象创建自己的内存区域并自动调用构造方法初始化成员变量。,构造方法,构造方法是一个特殊的成员方法,它与类名相同。在创建对象空间后,系统自动根据参数调用相应的构造函数。构造函数的主要功能是为数据成员赋初值。,构造方法的特点,构造方法名与类名相同;构造方法没有返回类型,也不是void;构造方法的主要作用是对类对象的初始化。如果没有定义构造方法时,各种类型的默认值;构造方法不能由编程人员显式地直接调用;使用不同数量、不同类型的参数对类初始化会拥有多个构造方法;,Java实例定义构造方法,classStudentStringname;Stringaddress;Stringgrade;Student(Stringx1,Stringx2,Stringx3,inty)/定义构造方法name=x1;address=x2;grade=x3;,publicstaticvoidmain(Stringargs)Student1zhang;/声明并创建zhang对象zhang=newStudent1(张三,西安市兴庆路1号,2003级国际贸易3班);Student1wang;/声明并创建wang对象wang=newStudent1(王五,西安市翠华路12号,2003级电子技术3班);System.out.println(+zhang.address+zhang.grade);System.out.println(+wang.address+wang.grade);,Java实例(续),使用new创建对象时,Java系统自动调用与类同名的构造方法。,Java实例类为方法参数,classPositionprivateintX,Y;Position(intx,inty)X=x;Y=y;publicintgetX()returnX;publicintgetY()returnY;publicdoubledistance(Positiona,Positionb)/计算两个Position对象a,b两点的距离returnMath.sqrt(a.getX()-b.getX()*(a.getX()-b.getX()+(a.getY()-b.getY()*(a.getY()-b.getY();/计算距离的公式,Java实例(续),publicstaticvoidmain(Stringargs)intx1,x2,y1,y2;doubledis;Positionsource=newPosition(0,0);/创建Position对象sourcePositiontarget=newPosition(5,8);/创建Position对象targetx1=source.getX();y1=source.getY();x2=target.getX();y2=target.getY();System.out.println(第一个点的坐标位置为(+x1+,+y1+);System.out.println(第二个点的坐标位置为(+x2+,+y2+);dis=source.distance(source,target);System.out.println(两个点的距离是:+dis);,五、类成员变量的定义,定义:访问权限符staticfinal类型变量名权限修饰符有:public、protected和privatestatic:在成员变量前说明该变量是静态变量。final:在成员变量前说明该变量是一个最终变量,修饰符static,static可以修饰类中的属性和方法。静态属性在类定义时静态地分配空间。它属于类,不属于某个特定的对象,因此可以通过类进行访问。往往将属于类的公共属性说明成static。,Java实例static成员变量,classStaticTestpublicintx=1;publicstaticinty=1;publicclassStaticTesterpublicstaticvoidmain(Stringargs)inti;StaticTest.y=StaticTest.y+1;StaticTestm=newStaticTest();StaticTestn=newStaticTest();m.x=m.x+3;m.y=m.y+3;n.x=n.x+5;n.y=n.y+5;System.out.println(m.x=+m.x+m.y=+m.y);System.out.println(n.x=+n.x+n.y=+n.y);,Java实例static方法,classSta_methodintwidth,height;publicstaticdoublearea(intwidth,intheight)returnwidth*height;publicstaticvoidmain(Stringargs)inti,j;doublef;i=Integer.parseInt(args0);j=Integer.parseInt(args1);f=Sta_method.area(i,j);/直接引用此方法System.out.println(Area=+i+*+j+=+f);,修饰符final,用final声明的类(最终类)不能再有子类;方法(最终方法)不能再被覆盖或重载;成员变量(最终属性)初始化后,不能再被赋值也就是修改成员变量的值(如PI=3.1415926是不能改变的)。,Java实例final,classFinalCalprivatedoubler;finaldoublePI=3.14159;finaldoublearea(doubler)return(PI*r*r);publicstaticvoidmain(Stringargs)FinalCald=newFinalCal();/定义类对象ddSystem.out.println(“Area=”+d.area(12.3);/引用类中的area()方法,修饰符this,将当前对象的引用变量传递给另一个方法;如果方法体内部定义的变量与成员变量名字相同或方法的入口参数与成员变量名相同。如:classTestColorintr,g,b;TestColor(intr,intg,intb)this.r=r;this.g=g;this.b=b;,Java实例this,classPointprivateintx,y;publicvoidsetPoint(inta,intb)x=a;y=b;publicintgetX()returnx;publicintgetY()returny;publicStringtoString()return+this.getX()+,+this.getY()+;/引用类的方法publicstaticvoidmain(Stringargs)inti,j;i=Integer.parseInt(args0);j=Integer.parseInt(args1);Pointdot=newPoint();dot.setPoi

温馨提示

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

评论

0/150

提交评论