十二、java类的结构

上传人:汽*** 文档编号:470027515 上传时间:2022-08-13 格式:DOCX 页数:16 大小:28.84KB
返回 下载 相关 举报
十二、java类的结构_第1页
第1页 / 共16页
十二、java类的结构_第2页
第2页 / 共16页
十二、java类的结构_第3页
第3页 / 共16页
十二、java类的结构_第4页
第4页 / 共16页
十二、java类的结构_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《十二、java类的结构》由会员分享,可在线阅读,更多相关《十二、java类的结构(16页珍藏版)》请在金锄头文库上搜索。

1、十二、java类的结构(属性、方法、构造函数)上一篇分析了什么是类,并例举了一些例子,这里在继续对类进行分析和讲解。一、类的定义形式类定义的一般形式如下类定义修饰符class 类名( 类体成员变量声明构造函数成员方法)前面说过,在描述java语法时,方括号中的内容都是可以省略掉的。实际上任何程序设计相关语法都是如此,这是国际通行的标准。那么,要定义一个最简单的类就是如下的写法:class Test)这个类因为类体没有包含任何内容,所以什么也不干,同时如果直接调试该程序,可以编译,但是运行错误,提示错误信息如下:错误:在类Test中找不到主方法,请将主方法定义为:public static vo

2、idmain(String arg。)”为什么会出现这个错误呢?因为讲过前面,一个java程序或者说一个 java项目,必须有一个主类(主类内容接下来会讲),主类必须有一个 主方法,主方法就是程序的入口,即程序首先是从主类的主方法中开始 运行的,所以运行该程序自然会提出错误信息。二、类的定义解释1、 类的定义:类的定义通过关键字class来实现,所定义的类名应符 合标识符的规定。类的名字必须由大写字母开头而单词中的其他字母均 为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写 例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字 母均应大写,如:XMLExample

3、。还有一点命名技巧就是由于类是设计 用来代表对象的,所以在命名类时应尽量选择名词。2、类定义修饰符修饰符:修饰符可以省略,也可以是public, protected, private, static, final,其中 public、protected , private 三个最多只能出 现其中之一,可以与static, finaf组合起来修饰属性。3、成员变量声明成员变量是类的属性,声明的一般格式为:变量修饰符 变量修饰符:public、protected private、和默认(frieddlly)。4、构造函数一般我们讲的“函数”就是“方法”,构造函数是一个特殊的函数,虽 然在类定义的过

4、程中用方括号括起来,即我们可以不写构造函数,但是 java系统会默认自动为每个类生成一个缺省的不带任何参数的构造函 数,在创建对象时系统会调用缺省的构造函数。如果程序中定义了构造 函数,系统将不再提供该缺省的构造函数。构造函数具有如下特点:(1) 构造方法的方法名必须与类名相同,其它方法不能和类名相同。(2)构造方法没有返回类型,也不能定义为void,在方法名前面 不声明方法类型。(3)构造方法的主要作用是完成对象的初始化工作,它能够把定 义对象时的参数传给对象的域。(4)构造方法不能由编程人员调用,而由系统调用。(5)一个类可以定义多个构造方法,如果在定义类时没有定义构 造方法,则编译系统会

5、自动插入一个无参数的默认构造器,这个构造器 不执行任何代码。(6)构造方法可以重载,以参数的个数,类型,或排列顺序区分。使用无参数构造函数的例子java view plaincopy1. class Test 2. String name;3. Test()4. 5. 6. )7. 8. 9. 10. 11. 12. 13. name=韦小宝;public static void main(String argsTest t1=new Test();System.out.println(t1.name);t1.name=康熙;System.out.println(t1.name);执行程序,输

6、出结果如下:韦小宝康熙在程序中并没有对对象t1的name变量进行赋值,而打印输出 tl.name输出结果是“韦小宝”,此时Test类的构造函数中对name变量 进行了初始化,输出的就是初始化的值;而对t1对象的name属性进 行了赋值后,此时输出结果就是重新赋值后的值,即“康熙”。使用有参 数构造函数的例子java view plaincopy1. class Test 2. String name;3. Test()4. name=韦小宝”;5. 6. Test(String myName)7. this.name=myName;8. 9. publicstatic void main(St

7、ring args)10. Test t1=new Test();11. System.out.println(t1.name);12. Test t2=new Test(康熙);13. System.out.println(t2.name);14. 15. 16. /span执行程序,输出结果如下:韦小宝康熙5、成员方法成员方法定义的类的操作和行为,一般形式为:方法修饰符 方法返回值类型 方法名(参数列表)方法体)成员方法修饰符主要有 public、private、protected final、static、abstract和synchronized七种,前三种的访问权限、说明形式和含义与

8、成员变 量一致。与成员变量类似,成员方法也分为实例方法和类方法。如果方法定义中 使用了 static,则该方法为类方法。public static void main(String args) 就是一个典型的类方法三、类的修饰符及其访问范围前面说了修饰符,但是没有说起含义,这里讲解一下常见的类访问修饰符:可见度publicprotectedprivate缺省同一类中可见是是是是同一包中对子类可见是是否是同一包中对非子类可见是是否是不同包中对子类可见是是否否不同包中对非子类可见是否否否关于包、子类概念之后讲解。Java程序在定义类时,除了使用class关键字标识之外,还可以在class 之前增加

9、若干类的修饰符来修饰限定所定义的类的特性。类的修饰符分 为访问控制符和非访问控制符两大类。修饰符之间的先后排列次序对类 的性质没有任何影响。一)非访问修饰符。1,抽象类:凡是用abstract修饰符修饰的类被称为抽象类。抽象类就是没有具体 对象的概念类。抽象类是一种经过优化的概念组织方式:把共同特点抽象出来;其后 在描述和处理某一种具体对象时,就只需描述不同的特殊之处。这种组 织方式使得所有的概念层次分明,简洁洗练,非常符合人们日常的思维 习惯。由于抽象类是它的所有子类的公共属性的集合,所以使用抽象类的一 个优点就是可以充分利用这些公共属性来提高开发和维护程序的效率。值得一提的是,面向对象技术

10、是要用更接近于人类思维方式的方法来 处理实际问题,抽象类的设立就是这种思想的具体体现之一,它是模仿 人类的思维模式的产物。2, 最终类:如果一个类被final修饰符所修饰和限定,说明这个类不可能有子类。被定义为final的类通常是一些有固定作用、用来完成某种标准功能的类。如Java系统定义好的用来实现网络功能的InterAddress、Socket 等类都是final类。abstract和final修饰符不能同时修饰一个类,因为abstract类自身没有具体对象,需要派生出子类后在创建子类的对象;而final类不可 能有子类。这样放在一起修饰就没有意义了。3, 有些类的修饰符也可以用来修饰类中

11、的域或方法:(1)域:是类和对象的静态属性,定义域的操作就是说明变量或创建 对象的操作。静态域:用static修饰符修饰的域是仅属于类的静态域。静态域是类中每个对 象共享的域。他们是类的域,不属于任何一个类的具体对象。是一个公 共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值。静态初始化器:静态初始化器是由关键字static引导的一对大括号括起的语句组。作 用是:在加载时,初始化类的静态域。与构造函数相同,他们都是用来完成初始化的工作,但是静态初始化 器与构造函数有三点不同: 构造函数是对每个新创建的对象初始化,而静态初始化器是对类 自身进行初始化。 构造函数是在用new运算符产生

12、新对象时由系统自动执行,而静 态初始化器则是在它所属的类加载到内存时由系统调用执行。 不同于构造函数,静态初始化器不是方法,没有方法名、返回值 和参数列表。最终域:用final修饰的域,实际上就是Java中的常量。用final修饰符说明常量时,需要注意以下几点: 需要说明常量的数据类型。 需要同时指出常量的具体取值。 因为所有类对象的常量成员,其数值都固定一致,为了节省空间,常量通常声明为static o易失域:如果一个域被volatile修饰符所修饰,说明这个域可能同时被几个线 程所控制和修改,即这个域不仅仅被当前程序所掌握,在运行过程中可 能在其他未知的程序操作影响和改变该域的取值。在使用

13、当中应该特别 汪意。通常,volatile用来修饰接受外部输入的域。如表示当前时间的变量 将系统的后台线程随时修改,以保证程序中取到的总是最新的当前系统 时间,所以可以把它定义为易失域。(2)方法:是类的动态属性,标志了类所具有的功能和操作。小括号是 方法的标志。抽象方法:修饰符abstract修饰的抽象方法是一种仅有方法头,而没有具体的方 法体和操作实现的方法。使用抽象方法的目的是使所有的子类,对外都 呈现一个相同名字的方法,是一个统一的接口。所有的抽象方法,都必 须存在于抽象类之中。静态方法:用static修饰符修饰的方法,是属于整个类的类方法,不用的是对象 或实例的方法。调用这种方法时,应该使用类名作前缀;这种方法在内 存中的代码段将随着类的定义而分配和装载,不被任何一个对象专有; 只能处理属于整个类的成员变量。最终方法:用final修饰符修饰的类方法。功能和内部语句不能再更改的方法, 不能再被继承。注意:所有已被private修饰符限定为私有的方法,以及所有包含在 final类中的方法,都被缺省地认为是final的。本地方法:用native修饰符声明其他语言书写方法体并具体实现方法功能的特 殊的方法。这

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号