课件程序设计_第1页
课件程序设计_第2页
课件程序设计_第3页
课件程序设计_第4页
课件程序设计_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

学习目学习目•o•••类的定类的定•类的定义包括类声明与类•类是可以公类不能被子类化(“[extends{}[implements类是可以公类不能被子类化(“[extends{}[implements class 类的可见•类的可见•Abstract一个给出抽象结Abstract一个给出抽象结构、但不给出每实现的类,叫抽象类抽象类不能直接用new操作符生成实例类定义用关键字abstract只能被子类化,不能被实须定义为抽象类••••••AbstractProvideaAbstractProvideacontractbetweenaserviceprovideranditsclients.AnabstractclasscanprovideAbstractAbstractInterface.s.AbstractAbstractcanincludemethodInterface.s.AbstractAbstractcanincludemethodMethodsignaturesandpublic,staticandfinalvariables;DoesnotmethodMethodExceptHowto#ofparentclass/Final不能被继承的类Final不能被继承的类,e.g.oo类•oo类•oo方方法变量类和继第五类的定类和继第五类的定修饰••••方类的继实现嵌套的••[accessLevel][static][final][transient][volatile]type[accessLevel][static][final][transient][volatile]typetypeAccess尽可能对成员使用最严格的访问级别,i.e.•修饰同一同一子Access尽可能对成员使用最严格的访问级别,i.e.•修饰同一同一子不同√√√√√√√*√√*√Example privateExample privatedouble}classvoidSavinga=newa}}ExamplepackageExamplepackageclassprotecteddouble}classvoidBanka=newBank();a.account=10;}}ExampleExampleclassSaving{double}Debit{voidSavingb=new}AccessExample:修饰同一同一子不同√√√√√√√*√AccessExample:修饰同一同一子不同√√√√√√√*√√*√WhydoweWhydoweneedHidesensitiveConditionExample:Final-“不可改变Final-“不可改变变量的值不可改publicfinalintFINALVARIABLE=••Example:•静态成员变量:类变静态成员变量:类变量e.g.Mathclass唯一性,可以使对象总是访问同一个值••••成员变量的初始成员变量的初始实例变量的初始化可以在构造函数中进,当类实例化时才被赋初值•••类变量的初始类变量的初始静态初始化块不能有向前的依赖关系类可以有任意数量的静态初始化块,静态初始化可以出现在类体的任何地方,运行时系统按它们在源代中出的次序用。Example:•••••类和继第五类的定类和继第五类的定修饰••••方类的继实现嵌套的••returnTypemethodName([paramlist])[throwsexceptions]returnTypemethodName([paramlist])[throwsexceptions]Returntypethrows方法的声(Signature):方法的名称和方法的声(Signature):方法的名称和参数列表••••方法标方法名不能与类名相同,类名和(override)或隐藏了超类方法的重载(•Access修饰同一同一子不同√√√√√√√*√√*Access修饰同一同一子不同√√√√√√√*√√*√FinalFinal•OverrideaprivateOverrideaprivate抽象方这些没有完整实现抽象方这些没有完整实现的方法叫抽象方法,必须•由子类来重抽象方法只需声明,不需实现其声明前有关键字abstract抽象的子或者实现了它的超的所有抽象方法,或者也被声明为抽象。含有抽象方法的类必须声明为抽象(abstract),非抽象类AbstractAbstractStatic类方法(静态Static类方法(静态方法)不存在多态,不能被子类类方法只能对类变量进行操作,而不能直接引用实例(态)变量和引用实例(非静态)方法o但可通过对象的引用可以在方法中不能使用this和super来非静量和方法。类方法可以由例象用,也可以由名直接Example:StaticMetod,c•••••StaticStaticReturn声明为void的方Return声明为void的方法不返回值,否则必须return语句来返回值返回类型可以是接口,这时返回的对须实现了指•••方法体中使用的两个关键方法体中使用的两个关键•用来在实例方法或构造子中引用当前对的成在构造子中用来调用该类当中子(称式用构造子,这时显式用构造子必是构造子的第一行句)ThisThis方法体中使用的两方法体中使用的两个键子类的成员变量或方法与超类的成员变或方法同名时,超类的成员变量或方法被隐,这时需用super指明超类的成员变➢➢在构造子中用来调用超类的构SuperSuper类和继第五类的定类和继第五类的定修饰••••方类的继实现嵌套的••超类(父类)、子类和继超类(父类)、子类和继由继承而得到的类为子子类继承超类的状态和行为,同时也可以修改超类的状态或重写超类的行为,并添加新的状和行。在Java中,所有的类都是通过直接或间接地继类java.lang.Object得到•••••创建子创建子•••构造函数构造函数 构造子是不能从超类中继运行系自地不包含构造子的提供一个无参数的默构造子,它不做任何事。•••••••构造子的调构造子的调如果没有显式说明一个类的构造子,系统提供含的构造子,含的构造子没有参数他往上用的是超的没有参数的构造子。只要程序员定义了构造子,Java就不会该类创建隐含的•••CastingObjects-­­­对象也会“变脸ForceConvert:CastingObjects-­­­对象也会“变脸ForceConvert:子类=(子类)父类Example:AutoConvert,将消息传递给方法将消息传递给方法或构造可以将任何类型的参数传递给方法注意值传递(基本类型)和引用传递(引用类型••••覆盖(errie)-­­­让众口不再覆盖(errie)-­­­让众口不再实例方法的覆盖实例方法的覆盖覆盖方法可以具有不同的ows子句,条件是它没有指定被覆盖方法的ows的任何型。Example:SubClass•••••类方法的类方法的隐OverrideandHideDefiningamethodOverrideandHideDefiningamethodwiththesamesignatureasasuperclass’SuperclassinstanceGeneratesacompile-­­­timeerrorGeneratesacompile-­­­timeAFew到底调编译的时候,可以调AFew到底调编译的时候,可以调•实例方法执行哪个方法是对象的类型决oo•oExample:重载Javaallowsto重载Javaallowstohavemultiplemethodshavingthesamename,aslongastheparameterlistsareExample:Returntypeisnottakeninto两大原则两大原则•Example:Object万类Object万类Object类提供的方Object类提供的方••••••Object类提供的方方法返回一个对Object类提供的方方法返回一个对象的类的运行时表示。•方法返回一个Class象,象包含了的信息的名称、超、的接口等。不能覆盖ss方法。例:voidPrintClassName(ObjectSystem.out.println(“TheObject’snameis“+obj.getClass().getName());}InstanceofInstanceof或者某个类的子类-让对象告诉你它的类是谁•ReturnaBooleanExample:NestedSoNestedSofar,oneclass,onefile,onepublicStaticNestedClassesStaticNestedClassesv.s.InnerTheinnerclasshasaccesstoallthefieldsandmethodsoftheouterclass(includingprivatemembers)Staticnestedclassesdonothaveaccesstoothermembersoftheouterclass.WhyUseWhyUseNestedItisawayoflogicallygroupingclassesthatareonlyusedinoneplace.ItincreasesGivenouterclassAandnestedclassThesensitivemembersofAcanbedeclaredasBitselfcanbehiddenfromtheoutsideNestedclassescanleadtomorereadableandmaintainablecode.StaticNestedStaticNestedAstaticnestedclassisassociatedwithitsouterItcannotreferdirectlytoinstancevariablesormethodsdefinedinitsenclosingclass—itcanusethemonlythroughanobjectreference.HowtoaccessstaticnestedOuterClass.StaticNestedClassnestedobject=newOuterClass.StaticNestedClass();InnerAninnerInnerAninnerclassisassociatedwithaninstanceofitsouterclass→→itcannotdefineanystaticmembersDirectAninstanceofInnerClasscanexistonlywithinaninstanceofOuterClassOuterClass.InnerClassinnerObject=outerObject.newInnerClassesforDeclareaninnerInnerClassesforDeclareaninnerclassforaspecificprivateclassResetListenerimplementsWithininnerclassimplement••publicvoidactionPerformed(ActionEvent}{•AddananonymousobjectinstanceofinnerclassasthelistenerforthecomponentjbtnReset.addActionListener(newLocalAnlocalclassisLocalAnlocalclassisaninnerclassdeclaredwithinamethodoftheouterclass•PublicClass{publicvoid{classMyListenerActionListener{...button1.addActionListener(newMyListener()}}AnonymousAnonymousclassesarelocalclasseswithoutnamesAnonymousAnonymousclassesare

温馨提示

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

最新文档

评论

0/150

提交评论