欢迎来到天天文库
浏览记录
ID:37710466
大小:121.00 KB
页数:17页
时间:2019-05-29
《java修饰符使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java主要修饰符的使用1摘要Java程序在定义类时,除了使用class关键字标识之外,还可以在class之前增加若干类的修饰符来修饰限定所定义的类的特性。类的修饰符分为访问控制符和非访问控制符两大类。修饰符之间的先后排列次序对类的性质没有任何影响。2关键字java,修饰符3修饰符的介绍一,非访问修饰符。1. 抽象类: 凡是用abstract修饰符修饰的类被称为抽象类。抽象类就是没有具体对象的概念类。 抽象类是一种经过优化的概念组织方式:把共同特点抽象出来;其后在描述和处理某一种具体对象时,就只需描述不同的特殊之处。这种组织方
2、式使得所有的概念层次分明,简洁洗练,非常符合人们日常的思维习惯。 17由于抽象类是它的所有子类的公共属性的集合,所以使用抽象类的一个优点就是可以充分利用这些公共属性来提高开发和维护程序的效率。 值得一提的是,面向对象技术是要用更接近于人类思维方式的方法来处理实际问题,抽象类的设立就是这种思想的具体体现之一,它是模仿人类的思维模式的产物。2.最终类: 如果一个类被final修饰符所修饰和限定,说明这个类不可能有子类。 被定义为final的类通常是一些有固定作用、用来完成某种标准功能的类。如Java系统定义好的用来实现网络
3、功能的InterAddress、Socket等类都是final类。 abstract和final修饰符不能同时修饰一个类,因为abstract类自身没有具体对象,需要派生出子类后在创建子类的对象;而final类不可能有子类。这样放在一起修饰就没有意义了。 3.有些类的修饰符也可以用来修饰类中的域或方法: (1) 域:是类和对象的静态属性,定义域的操作就是说明变量或创建对象的操作。 <1>静态域: 用static修饰符修饰的域是仅属于类的静态域。静态域是类中每个对象共享的域。他们是类的域,不属于任何一个类的具体对象。是
4、一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值。17 <2>静态初始化器: 静态初始化器是由关键字static引导的一对大括号括起的语句组。作用是:在加载时,初始化类的静态域。 与构造函数相同,他们都是用来完成初始化的工作,但是静态初始化器与构造函数有三点不同: ①构造函数是对每个新创建的对象初始化,而静态初始化器是对类自身进行初始化。 ②构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载到内存时由系统调用执行。 ③不同于构造函数,静态初始化器不
5、是方法,没有方法名、返回值和参数列表。 <3>最终域: 用final修饰的域,实际上就是Java中的常量。 用final修饰符说明常量时,需要注意以下几点: ①需要说明常量的数据类型。 ②需要同时指出常量的具体取值。 ③因为所有类对象的常量成员,其数值都固定一致,为了节省空间,常量通常声明为static。 <4>易失域: 17如果一个域被volatile修饰符所修饰,说明这个域可能同时被几个线程所控制和修改,即这个域不仅仅被当前程序所掌握,在运行过程中可能在其他未知的程序操作影响和改变该域的取值。在使用当中应该
6、特别注意。 通常,volatile用来修饰接受外部输入的域。如表示当前时间的变量将系统的后台线程随时修改,以保证程序中取到的总是最新的当前系统时间,所以可以把它定义为易失域。 (2)方法:是类的动态属性,标志了类所具有的功能和操作。小括号是方法的标志。 <1>抽象方法: 修饰符abstract修饰的抽象方法是一种仅有方法头,而没有具体的方法体和操作实现的方法。使用抽象方法的目的是使所有的子类,对外都呈现一个相同名字的方法,是一个统一的接口。所有的抽象方法,都必须存在于抽象类之中。下面举个抽象类应用的具体例子。abstractc
7、lassObjectStorage{intobjectnum=0;Objectatorage[]=newObject[100];abstractvoidput(Objecto);abstractObjectget();}classStackextendsObjectStorage{17privateintpoint=0;publicvoidput(Objecto){storage[point++]=o;objectnum++;}publicObjectget(){objectnum--;returnstorage[--point];}
8、}classQueueextendsObjectStorage{privateinttop=0;privateintbottom=0;publicvoidput(Objecto){storage[top++]=o;obj
此文档下载收益归作者所有