程序员玩转算法清华教程_第1页
程序员玩转算法清华教程_第2页
程序员玩转算法清华教程_第3页
程序员玩转算法清华教程_第4页
程序员玩转算法清华教程_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

33象的程序设计方掌握类、对象的基本学习目455了677认识系统<--->问题空间<--->解决空面面象80年代初的定义面•899式 基本思对象:性和从更抽象的角度看对对象提供了的抽象描述,其包类实例化-->对象抽象化-->类的基本概封封 的— 封封封装的原则在上的反映是:要求使部错误对它的“交叉”,使错误部存取和的程度。 继继例如轮船、客轮;人类通常称一般类为父类(superclass,超 point.draw();消 main主动对面面OOA-ObjectOOD-ObjectOrientedOOI-ObjectOrientedJava语言的面对象特第类类 |final]classclassName[extendssuperclassName][implements//成员方}[public|protected|private[static][final][transient][volatile]type [public|protected|private[static][final| ][native][synchronized]returnTypemethodName([paramList])[throwsexceptionList]{class类[public|protected|private[static][final][transient][volatile]type static:静态变量( 常transient: 成员[public|protected|private][static][final| native]synchronized]returnTypemethodName([paramList])[throwsexceptionList] //方法方 类方法,可通过类名直接调 抽象方法,没有方法 方法不能 集成其它语言的 控制多个并发线成员方法成员方法(值参传递publicclassPassTest{floatpublicstaticvoidmain(String{intPassTestpt=ne System.out.println(“OriginalInt成员方法(值参传递System.out.pringln(“IntValueafterChangeis:”+val);System.out.println(“ptValueafterChange 成员方法成员方法(值参传递publicvoidvalue){}publicvoidchangeObjValue(PassTestref){ref.ptValue=99f;} OriginalIntValueis:11IntValueafterChangeis:OriginalptValueis:101.0ptValueafterChangeis:99.0成员方法(值参传递成员方法成员方法(方法体。 成员方法(方法体例classintx=0,y=0,z=0; voidinit(intx,inty){this.x=x;intz=5; System.out.println(“**ininit**”);System.out.(“x=”+x+“y=”+y+“成员方法成员方法(方法体publicclassVariableTest{publicstaticvoidmain(Stringargs[]){Variablev=newVariable();System.out.println(“**beforeinit**”);System.out.println(“x=”+v.x+“y=”+ 成员方法(方法体System.out.println(“x=”+v.x+“y=”+}}成员方法成员方法(方法体c:\>java**beforeinit**x=0 **ininit**x=20y=30z=5**afterinit**x=20y=30z=0它的值是调用该方法的对象当前对象 成员方法(方法体方法重载方法重载(Method例MethodOverloading{voidreceive(inti){……}voidreceive(intx,inty){……}voidreceive(doubled){……}voidreceive(Strings){……}}方法重publicMethodOverloadingTest{publicstaticvoidmain(Stringargs[]){mo.receive(“veryinteresting,isn’t}方法重ReceiveoneintdataReceivetwointdatas ReceiveonedoubledataReceiveas=veryinteresting,isn’t}Point(intx,intthis.x=x; }例Point{int构造方对对象进 收集前,系统自动调protectedvoidfinalize()throwsthrowable……//cleanupcodeforthisclass}对对publicclassoWorldApp{publicstaticvoidmain(String{ }} 生使清空间包 、实例化和初始格式typeobjectName=new:type 它有关数据类型的信息以及当前对 问和例:p.xtx=newPoint(//statementswhen}调用对象的方格式newPoint(if(p.equal(20,30)) //statementswhen}…封装继承多态象特面class{[public|protected|private[static][final][transient][volatile]type [public|protected|private[static][final| ][native][synchronized]returnTypemethodName([paramList])[throwsexceptionList] //}******protected* 修饰词根类: 格式classSubClassextendsSuperClass…}创建子SuperClass{intx;…voidsetX( x=0;}}classSubClassextendsSuperClass{intx; //hidexin…voidsetX(){//overridemethodsetX()x=5;} 重super }SuperClass{intx;SuperClass({}voiddoSomething()}classSubClassextends{intSubClass()super(); //callconstructorofsuperclass //super(要放在方法中的第一句System.out.println(“inSubClass:x=“+x);}voiddoSomething()super.doSomething();//callmethodofsuperclass }}publicclassinheritancepublicstaticvoidmain(String{SubClasssubC=newSubClass();} inSuperClass:x=3inSubClass: inSubClass.doSomething()super.x=3sub.x=5调用规则:根据实例voidcallme() }classBA{voidcallme(){ }publicclasspublicstaticvoidmain(String{Aa=newa.callme(}}重写方法的调用规c:\>javaInsideB’scallme() 方法重写应遵循的原classpublicvoidfunction()}}classChildextendsParent{privatevoidfunction()} publicclassOverriddenTest{publicstaticvoidmain(String{Parent }p2.function();}}对象状态的确定Manager和Contractor都是Employee的子publicvoidmethod(Employee{if(einstanceof…//dosomethingasa elseif(einstanceofContractor)…}//dosomethingasaContractorelse{ //dosomething}finalfinalfinaltypevariableName;finalreturnType…}finalclass…}final关键statictypestaticreturnTypeclassMethod({paramlist])…}类变通过对象 这些实例变实例变量和类变类方法中不能使用this或类实例方法和类方例class{staticintclassVar;intstaticvoidsetClassVar(int{// //can’taccessnostaticstaticint{returnclassVar;}{classVar=i; instanceVar=i;}intgetInstanceVar({returninstanceVar;}实例方法和类方publicclasspublicstaticvoidmain(String{Memberm1=newMember();Memberm2=newMember();}}实例方法和类方c:\>java 类类 :比较两个对象 〕是否相 来修 Class{ 用接接用接包括接 和接口完整的接口listOfSuperInterface]{…}常量定义:typeNAME=value;该常量被实现该接口的多个类共享具有public,finalstatic方法体定义:(具有public和 returnTypemethodName([paramlist]) }例interfaceintvoidadd(Objectobj);voiddelete(Objectobj);Objectfind(ObjectintcurrentCount(接口定voiddelete(Objectobj){…Objectfind(Objectobj){…}intcurrentCount{…} {… }classInterfaceTypepublicstaticvoidmain(String{Collectionc=new…}接口类型的使InnerInner•类: importjava.awt.*;importjava.awt.*;publicclass{privateFramef;privateTextFieldtf;publicstaticvoidmain(String{TwoListenInnerthat=newTwoListenInner(); InnerInnerInnerpublicvoidgo()f=newFrame(“Twolistenersf.add(“North”,newLabel(“Clickanddragthetf=newTextField(30); publicclassMouseEventHandlerextendsMouseAdapter{…}}publicclassMouseMotionHand

温馨提示

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

评论

0/150

提交评论