- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java基础第3章课件解读
3.5 垃圾回收 在例程3-13的Person类中定义了一个finalize()方法,该方法的返回值必须为void,并且要使用public来修饰。在main()方法中创建了两个对象p1和p2,然后将两个变量置为null,这意味着新创建的两个对象成为垃圾了,紧接着通过“System.gc()”语句通知虚拟机进行垃圾回收。从运行结果可以看出,虚拟机针对两个垃圾对象进行了回收,并在回收之前分别调用两个对象的finalize()方法。 3.6 static关键字 3.6.1 静态变量 在一个Java类中,可以使用static关键字来修饰成员变量,该变量被称作静态变量 静态变量被所有实例共享,可以使用“类名.变量名”的形式来访问 static关键字只能用于修饰成员变量,不能用于修饰局部变量,否则编译会报错,下面的代码是非法的。 3.6 static关键字 3.6.1 静态变量 例程3-14的Student类中定义了一个静态变量schoolName,用于表示学生所在的学校,它被所有的实例所共享。由于schoolName是静态变量,因此可以直接使用Student.schoolName的方式进行调用,也可以通过Student的实例对象进行调用,如stu2.schoolName。在第8行代码将变量schoolName赋值为“黄淮学院”,通过运行结果可以看出学生对象stu1和stu2的schoolName属性均为“黄淮学院”。 “黄淮学院”; 3.6 static关键字 3.6.2 静态方法 被static关键字修饰的方法称为静态方法 同静态变量一样,静态方法可以使用“类名.方法名”的方式来访问,也可以通过类的实例对象来访问。 在一个静态方法中只能访问用static修饰的成员,原因在于没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。 3.6 static关键字 3.6.2 静态方法 例程3-15的Person类中定义了静态方法sayHello(),在第8行代码处通过“Person.sayHello()”的形式调用了静态方法,由此可见静态方法不需要创建对象就可以调用。 3.6 static关键字 3.6.3 静态代码块 在Java类中,使用一对大括号包围起来的若干行代码被称为一个代码块,用static关键字修饰的代码块称为静态代码块 当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块只执行一次 在程序中,通常使用静态代码块来对类的成员变量进行初始化 3.6 static关键字 3.6.3 静态代码块 从图3-19所示的运行结果可以看出,程序中的两段静态代码块都执行了。在命令行窗口输入“java Example14”后,虚拟机首先会加载类Example14,在加载类的同时就会执行该类的静态代码块,紧接着会调用main()方法。在该方法中创建了两个Person对象,但在两次实例化对象的过程中,静态代码块只执行一次,这就说明类在第一次使用时才会被加载,并且只会加载一次 3.6 static关键字 3.6.4 单例模式 设计模式就是针对这些问题和需求,在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式 单例模式是Java中的一种设计模式,它是指在设计一个类时,需要保证在整个程序运行期间针对该类只存在一个实例对象 看一个实现了单例模式的类 3.6 static关键字 3.6.4 单例模式 类的构造方法使用private修饰,声明为私有,这样就不能在类的外部使用new关键字来创建实例对象了。 在类的内部创建一个该类的实例对象,并使用静态变量INSTANCE引用该对象,由于变量应该禁止外界直接访问,因此使用private修饰,声明为私有成员 为了让类的外部能够获得类的实例对象,需要定义一个静态方法getInstance(),用于返回该类实例INSTANCE。由于方法是静态的,外界可以通过“类名.方法名”的方式来访问 3.7 内部类 3.7.1 成员内部类 在一个类中除了可以定义成员变量、成员方法,还可以定义类,这样的类被称作成员内部类。 在成员内部类中可以访问外部类的所有成员 例程3-20中,Outer类是一
文档评论(0)