JAVA高级特性.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Inspur group Inspur group JAVA高级特性 学习目标 理解static变量、方法和静态初始化程序块 理解final类、变量、方法 能正确使用instanceof操作符 理解String和StringBuffer的异同 能正确编写toString()方法 理解“==”与equals()方法的异同 掌握包装类, 常用类的常用方法。 目录 static关键字 final关键字 instanceof运算符 String与StringBuffer类 如何编写toString方法 ==与equals方法 包装类和常用类 成员变量、类变量和实例变量 类中定义的变量称为类的成员变量 被static关键字修饰的成员变量称为类变量(或静态变量) 前面没有static标识的成员变量称为实例变量 类变量和实例变量的异同 类变量被同一个类的所有实例共享;不同的对象,只要所属类相同,类变量的值就相同;实例变量不能在对象之间共享。 访问实例变量需要先获得对象实例;访问类变量只需要指定类名 实例变量在对象创建时被初始化,在对象销毁时被销毁;类变量一旦创建就永驻内存 变量的内存分配 类变量的用途 1、public class Count { 2、 private int serialNumber; 3、 private static int counter = 0; 4、 public Count() { 5、 counter++; 6、 serialNumber = counter; 7、 } } 静态方法和非静态方法的比较 被static关键字修饰的方法称为静态方法(或类方法); 访问非静态方法需要先获取对象实例;访问静态方法只需要指定类名 非静态方法中可以使用类变量、实例变量;静态方法只能使用类变量 静态方法中不能使用this关键字 静态方法不能被覆盖 静态方法一 静态方法不需要使用对象来访问,可以用“类名.方法名” 如例子中的int c = GeneralFunction.addUp(9, 10)。 静态方法二 注意:static方法不能访问其它非static的变量 另外:main 方法是static的。 静态方法三 如果一个类的方法会被经常反复调用到,则建议把这个方法声明为static的。这样不用反复初始化实例对象,可以提高性能。 例如:java.lang.math 类的方法。 static类方法无法进行动态联编,所以不方便扩展。 静态初始化程序 用static修饰的初始化程序块即是静态初始化块。 静态初始化块会在类载入的时候执行一次,并且只执行一次。普通的初始化程序在每次创建对象时都会执行 静态初始化程序 public class StaticInitDemo { static int i = 5; //静态初始化块 static { System.out.println(Static code i= + i++ ); } } public class Test { public static void main(String args[]) { System.out.println(Main code: i=+ StaticInitDemo.i); } } 目录 static关键字 final关键字 instanceof运算符 String与StringBuffer类 如何编写toString方法 ==与equals方法 包装类和常用类 final关键字 final关键字可以被用来修饰类,方法或者变量。 final修饰的类不能被继承 final修饰的方法不能被覆盖的 final修饰的变量是常量 final类与安全 试图继承被声明为final的类会导致编译错误。 创建final类通常是出于安全性的考虑。例如java.lang.String就是一个final类。因为它保证,如果方法有字符串的引用,它肯定就是类String的字符串,而不是某个其它类的字符串,这样保证了 String不被恶意窜改,保证了其在程序中的稳定性 。 final方法 一个方法如果是被声明成final的,则这个方法是不能被覆盖的。这是出于安全的考虑。final保证方法有唯一的实现。 例如,Thread类的stop方法就被声明成final的,因为我们并不想让任何人覆写stop方法 。 final的方法不支持动态联编,所以运行的效率要高,但同时也失去了扩展性。 final变量 如果final关键字修饰的变量是常量 例如:public final int MAX_ARRAY_SIZE = 2

文档评论(0)

yan666888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档