欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    JAVA类和对象的高级特征.docx

    • 资源ID:1394221       资源大小:29.91KB        全文页数:20页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JAVA类和对象的高级特征.docx

    JAVA类和对象的高级特征(1)第四章JAVA类和对象的高级特征教案名称:教案大小:教案类型:WORD文档星级评定:教案简介:本讲主要讲解并描述了java语言中面对对象的高级特征,包括抽象类、接口和包的特性。通过本讲的学习,同学们可以运用java语言中较为深化的技术编写面对对象程序。下载一1.什么是抽象类、接口?它们各自又有哪些特性?2.你知道java语言在面对对象编程方面有何独特的特点吗?本讲主要讲解并描述了java语言中面对对象的高级特征,包括抽象类、接口和包的特性。通过本讲的学习,同学们可以运用java语言中较为深化的技术编写面对对象程序。应深刻理解各学问点的概念,运用上讲的编程基础学问及面对对象技术,编写各种java类,由浅至深,养成风格良好的编程习惯。1.细致体会面对对象编程的思想,娴熟理解类和对象的概念,理解面对对象的特性,会编写各种java类,渐渐驾驭面对对象编程的方法。2.留意java语言中,不允很多重继承,而运用接口的方法。1.理解方法抽象类和接口,不要混淆了两者的运用。2.接口的运用。4.1抽象类4.2接口4.3包4.4JAVA应用程序编程接口java语言中,用abstract关键字来修饰一个类时,这个类叫做抽象类,用abstract关键字来修饰一个方法时,这个方法叫做抽象方法。格式如下:abstractclassabstractclass抽象类abstractreturnTypeabstractMethod(paramlist)/抽象方法抽象类必需被继承,抽象方法必需被重写。抽象方法只需声明,无需实现:抽象类不能被实例化,抽象类不确定要包含抽象方法。若类中包含了抽象方法,则该类必需被定义为抽象类。接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。它的用处体现在下面几个方面:通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。O通过接口指明多个类须要实现的方法。O通过接口了解对象的交互界面,而无需了解对象所对应的类°1接口的定义包括接口声明和接口体。接口声明的格式如下:publicinterfaceInterfaceNameextends1istOfSuperlnterfaceextends子句与类声明的extends子句基本相同,不同的是一个接口可有多个父接口,用逗号隔开,而一个类只能有一个父类。接口体包括常量定义和方法定义常量定义格式为:typeNAME=Value:该常量被实现该接口的多个类共享;具有public,final,static的属性。方法体定义格式为:(具有public和abstract屈性)returnTypemethodName(paramist);2在类的声明中用implements子句来表示一个类运用某个接口,在类体中可以运用接口中定义的常量,而且必需实现接口中定义的全部方法。一个类可以实现多个接口,在implements子句中用逗号分开。3接口作为一种引用类型来运用。任何实现该接口的类的实例都可以存储在该接口类型的变量中,通过这些变量可以访问类所实现的接口中的方法。进行面对对象的设计时,一项基本的考虑是:如何将发生变更的东西与保持不变的东西分隔开。这一点对于库来说是特殊重要的。那个库的用户(客户程序员)必需能依靠自己运用的那一部分,并知道一旦新版本的库出台,Fl己不须要改写代码。而与此相反,库的创建者必需能自由地进行修改与改进,同时保证客户程序员代码不会受到那些变动的影响。为达到这个目的,需遵守确定的约定或规则。例如,库程序员在修改库内的一个类时,必需保证不删除已有的方法,因为那样做会造成客户程序员代码出现断点。然而,相反的状况却是令人苦痣的。对于一个数据成员,库的创建者怎样才能知道哪些数据成员已受到客户程序员的访问呢?若方法属于某个类唯一的一部分,而且并不确定由客户程序员干脆运用,那么这种苦痛的状况同样是真实的。假如库的创建者想删除一种旧有的实施方案,并置入新代码,此时又该怎么办呢?对那些成员进行的任何改动都可能中断客户程序员的代码。所以库创建者处在一个尴尬的境地,好像根本动弹不得。为解决这个问题,Java推出了访问指示符的概念,允许库创建者声明哪些东西是客户程序员可以运用的,哪些是不行运用的。这种访问限制的级别在最大访问和最小访问的范围之间,分别包括:public.友好的(无关键字),protected以及PrivaIeo依据前一段的描述,大家或许已总结出作为一名库设计者,应将全部东西都尽可能保持为private(私有),并只展示出那些想让客户程序员运用的方法。这种思路是完全正确的,尽管它有点儿违反那些用其他语言(特殊是O编程的人的宜觉,那些人习惯于在没有任何限制的状况下访问全部东西。到这一章结束时,大家应当可以深刻体会到Java访问限制的价值。然而,组件库以及限制谁能访问那个库的组件的概念现在仍不是完整的。仍存在这样一个问题:如何将组件绑定到单独一个统一的库单元里。这是通过Java的package(打包)关键字来实现的,而且访问指示符要受到类在相同的包还是在不同的包里的影响。所以在本章的开头,大家首先要学习库组件如何置入包里。这样才能理解访问指示符的完整含义。4.3.1我们用import关键字导入一个完整的库时,就会获得包(PaCkage)。例如:importjava.util.*;它的作用是导入完整的好用工具(Utility)库,该库属于标准Java开发工具包的一部分。由于VCCior位于java.Util里,所以现在要么指定完整名称java.util.Vector(可省略import语句),要么简洁地指定一个VeCtor(因为import是默认的)。若想导入单独一个类,可在import语句里指定那个类的名字:importjava.util.Vector;现在,我们可以臼山地运用VectOFo然而,java.Util中的其他任何类仍是不行运用的。之所以要进行这样的导入,是为了供应一种特殊的机制,以便管理命名空间(NameSpace)。我们全部类成员的名字相互间都会隔离起来。位于类内的一个方法f不会与位于类B内的、拥有相同签名(自变量列表)的f()发生冲突。但类名会不会冲突呢?假设创建一个stack类,将它安装到已有一个StaCk类(由其他人编写)的机器上,这时会出现什么状况呢?对于因特网中的Java应用,这种状况会在用户宅不知晓的时候发生,因为类会在运行一个Java程序的时候自动下载。正是由于存在名字潜在的冲突,所以特殊有必要对Java中的命名空间进行完整的限制,而且须要创建一个完全独一无二的名字,无论因特网存在什么样的限制。迄今为止,本书的大多数例子都仅存在于单个文件中,而且设计成局部(木地)运用,没有同包名发生冲突(在这种状况下,类名置于默认包内)。这是一种有效的做法,而且考虑到问题的简化,本书剩下的部分也将尽可能地采纳它。然而,若安排创建一个对因特网友好或者说适合在因特网运用的程序,必需考虑如何防止类名的重第。为Java创建一个源码文件的时候,它通常叫作一个编辑单元(有时也叫作翻译单元)。每个编译单元都必需有一个以.java结尾的名字。而且在编译单元的内部,可以有一个公共(PUbliC)类,它必需拥有与文件相同的名字(包拈大小写形式,但解除.java文件扩展名)。假如不这样做,编译器就会报告出错。每个编译单元内都只能有一个public类(同样地,否则编译器会报告出错)。那个编译单元剩下的类(假如有的话)可在那个包外面的世界面前隐减起来,因为它们并非公共的(非public),而且它们由用于主PUbIiC类的支撵类组成。编译一个.java文件时,我们会获得一个名字完全相同的输出文件;但对于java文件中的每个类,它们都有一个.CIaSS扩展名。因此,我们最终从少量的.java文件里有可能获得数量众多的.class文件。如以前用一种汇编语言写过程序,那么可能已习惯编译器先分割出一种过渡形式(通常是一个.Obj文件),再用一个链接器将其与其他东西封装到一起(生成一个可执行文件),或者与一个库封装到一起(生成一个库)O但那并不是Java的工作方式。一个有效的程序就是一系列.class文件,它们可以封装和压缩到一个JAR文件里(运用Java1.1供应的jar工具)。Java说明器负责对这些文件的找寻、装载和说明(注释)。:Java并没有强制确定要运用说明器。一些固有代码的Java编译器可生成单独的可执行文件。库也由一系列类文件构成。每个文件都有一个public类(并没强迫运用一个public类,但这种状况最很典型的),所以每个文件都有一个组件。假如想将全部这些组件(它们在各自独立的.java和.class文件里)都归纳到一起,那么package关键字就可以发挥作用)。若在一个文件的开头运用下述代码:packagemypackage:那么package语句必需作为文件的第一个非注释语句出现。该语句的作用是指出这个编译单元属于名为mypackage的一个库的一部分。或者换句话说,它表明这个编译单元内的public类名位于mypackage这个名字的下面。假如其他人想运用这个名字,要么指出完整的名字,要么与mypackage联合运用import关键字(运用前面给出的选项)。留意依据JaVa包(封装)的约定,名字内的全部字母都应小写,甚至那些中间单词亦要如此。例如,假定文件名是MyClass.java。它意味着在那个文件有一个、而且只能有一个public类。而且那个类的名字必需是MyClass(包括大小写形式):packagemypackage;publicclassMyClass/.现在,假如有人想运用MyClass,或者想运用mypackage内的其他任何public类,他们必需用import关键字激活mypackage内的名字,使它们能够运用。另一个方法则是指定完整的名称:mypackage.MyClassm=newmypackage.MyClassO:import关键字则可将其变得简沾得多:importmypackage.*;/.MyClassm=newMyClassO;作为一名库设计者,确定要记住package和import关键字允许我们做的事情就是分割单个全局命名空间,保证我们不会遇到名字的冲突无论有多少人运用因特网,也无论多少人用Java编写Fl己的类。1创建独一无二的包名大家或许已留意到这样一个事实:由于一个包恒久不会真的封装到单独一个文件里面,它可由多个.ClaSS文件构成,所以局面可能略微有些混乱。为避开这个问题,最合理的一种做法就是将某个特定包运用的全部.ClaSS文件都置入单个书目里。也就是说,我们要利用操作系统的分级文件结构避开出现混乱局面。这正是Java所实行的方法。它同时也解决了另两个问题:创建独一无二的包名以及找出那些可能深藏于书目结构某处的类。正如我们在第2章讲解并描述的那样,为达到这个目的,须要将.ClaSS文件的位置路径编码到PaCkagC的名字里。但依据约定,编译器强迫package名的第一部分是类创建者的因特网域名。由于因特网域名确定是独一无二的(由InterNIC保证注释,它限制着域名的安排),所以假如按这一约定行事,package的名称就确定不会重复,所以恒久不会遇到名称冲突的问题。换句话说,除非将自己的域名转让

    注意事项

    本文(JAVA类和对象的高级特征.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开