- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[高等教育]3 类与对象
3.6 静态成员 在Java中声明类的成员变量和成员方法时,可以使用static关键字把成员声明为静态成员。静态变量也叫类变量,非静态变量叫实例变量;静态方法也叫类方法,非静态方法叫实例方法。 静态成员最主要的特点是它不属于任何一个类的对象,它不保存在任意一个对象的内存空间中,而是保存在类的公共区域中。所以任何一个对象都可以直接访问该类的静态成员,都能获得相同的数据值。修改时,也在类的公共区域修改。 本节介绍Java中静态成员,包含静态方法、变量和常量,以及一些特殊的静态方法,如main方法和factory方法。 3.6.1 静态方法和静态变量 通常情况下,方法必须通过它的类对象访问。但是如果希望该方法的使用完全独立于该类的任何对象,可以利用static关键字。通过该关键字可以创建这样一个方法,它能够被自己使用,而不必引用特定的实例。在方法的声明前面加上static即可。使用static关键字的方法即静态方法。 如果一个方法被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。但是在静态方法中,不能以任何方式引用this或super。 3.6.2 静态变量和常量 在Java中没有一个直接的修饰符来实现常量,而是通过静态成员变量的方式来实现的,如下代码说明了这个问题。 ? 1 //声明3个常量X、Y、Z 2 public static final int X=10; 3 static public final int Y=20; 4 final static public int Z=40; ? static表示属于类,不必创建对象就可以使用,因为常量应该不依赖于任何对象,final表示值不能改变。一般用作常量的静态成员变量访问权限都设置为public,因为常量应该允许所有类或对象访问。 3.6.3 静态成员的访问 上小节已经介绍过静态成员是属于类的,因此对其进行访问应该不需要创建对象,可以使用“类名.静态成员名”的语法调用静态成员变量。 下面分别从两个方面介绍同一个类中静态成员与非静态成员之间的访问,静态方法访问非静态成员和非静态方法访问静态成员。 3.6.4 main()方法 在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等。 因为main()方法是由Java虚拟机调用的,所以必须为public,虚拟机调用main()方法的时候不需要产生任何对象,所以main方法声明为static,且不需要返回值,所以声明为void 所以最终格式如下所示。 public static void main(String[] args) 3.6.5 Factory方法 Java的静态方法有一种常见的用途,就是使用Factory方法产生不同风格的对象,例如NumberFormat类使用Factory方法产生不同风格的格式对象。Factory Method是最常用的模式了,Factory方法在Java程序系统中可以说是随处可见。 Factory方法就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() ,Factory Method也是用来创建实例对象的,所以以后new时可以考虑实用工厂模式,虽然这样做,可能多做一些工作,但会给系统带来更大的可扩展性和尽量少的修改量。 3.7 包 在实际项目开发中,往往需要开发很多不同的类,能否方便高效地组织这些类对项目的开发与使用具有很重要的意义。Java中提供包(Package)将不同类组织起来进行管理,借助于包可以方便地组织自己的类代码,并将自己的代码与别人提供的代码库分开管理。 使用包的目的之一就是可以在同一个项目中使用名称相同的类,假如两个开发人员不约而同地建立了两个相同名字的类,只要将其放置在不同的包中,就不会产生冲突。本节将从类的放置与导入两个方面对包及其使用进行介绍。 3.7.1 包的定义 要想将类放入指定的包中,就必须使用package语句,语法如下。 package 包名; package语句必须放在源文件的最前面,其之前不可以有其他任何语句。每个源文件中最多有一句package语句,因为一个类不可能属于两个包,就如同不能把一件衣服同时放进两个箱子一样。包名可以是用点“.”分隔的一个序列,如java.lang,这就表示此源文件中的类在java包下的lang子包中。在实际开发中,包可能分很多级,越复杂的系统,包越多,级也可能越多。 3.7.2 类的导入 当一个类要使用与自己处
文档评论(0)