欢迎来到天天文库
浏览记录
ID:39968926
大小:686.31 KB
页数:48页
时间:2019-07-16
《java学习--第6章高级类特性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、江苏大学计算机学院Version2.0第6章高级类特性Page2本章内容Static关键字创建final类、方法和变量创建和使用枚举的类型使用静态导入语句创建抽象类和方法创建和使用接字符串相关类(String、StringBuffer、StringBuilder)Math类(不重要)File类Date类、Calendar类Page3static关键字在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所以对象来说,static成员变量只有一份。publ
2、icclassCount{privateintserialNumber;publicstaticintcounter=0;publicCount(){counter++;serialNumber=counter;}}publicclassTestCounter{publicstaticvoidmain(String[]args){Count.counter=100;CountC1=newCount();CountC2=newCount();}}static变量在某些方面与其他语言的全局变量类似,Java编
3、程语言中没有全局变量,但是static变量是一个可以被类的任何实例访问的变量Page4static关键字用static声明的方法为静态方法(又称类方法),在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。静态的方法不再是针对某个对象调用,所以不能访问非静态成员classCount{privateintserialNumber;publicstaticintcounter=0;publicCount(){counter++;serialNumber=counte
4、r;}publicstaticintgetCounter(){returncounter;}}publicclassTestCounter{publicstaticvoidmain(String[]args){System.out.println(Count.getCounter());CountC1=newCount();System.out.println(Count.getCounter());}}可以通过对象引用或类名(不需要实例化)访问静态成员。Page5Static属性:publicstati
5、cclass属性可没有类的实例从类的外部进行访问。Static方法:Static方法无需创建类的实例即可被调用。Static方法不能访问实例变量。Static初始化程序:类可在static块中包含在方法主体中不存在的代码。Static块代码在类被加载时仅执行一次。通常,static块用来初始化static(类)属性。static关键字(续)Page6final关键字final关键字用于安全性原因。它用来创建充当标准的类。它实现了以下限制:不能获取final类的子类,即final类不能被继承。不能覆盖fin
6、al方法。final变量是常量。在final类中的所有方法和数据成员是显式的。引用类型的final变量,不能引用任何其他变量Page7空final变量final变量不在其声明中被初始化;其初始化被延迟:空final实例变量必须在构建器中被赋值。空final本地变量可在方法的主体内随时被设置。它仅可设置一次。Page8枚举的类型enum类型字段由一组固定的常量组成。可使用enum关键字来定义enum类型。例如,指定一周每一天的enum类型:publicenumDay{SUNDAY,MONDAY,TUESDA
7、Y,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY}enum类型只能取特定值的一个。所有enums从java.lang.Enum显示扩展。因为Java不支持多重继承,enum不能扩展为任何别的内容。Page9静态导入J2SE5.0提供静态导入功能,能够不受限制的访问静态成员,而不必使用类的名字限制它们。从类中导入静态成员:importstatic..;或importstatic.8、ame>.*;单个或集中导入成员:importstaticcards.domain.Suit.SPADES;或importstaticcards.domain.Suit.*;无需确定静态常量的资格:PlayingCardcard1=newPlayingCard(SPADES,2);过度使用静态导入功能,使程序不可读或者无法维持,而且会破坏其命名空间和所有导入的静态成员Page10抽象类用abstract关键字来修饰一个类时,这
8、ame>.*;单个或集中导入成员:importstaticcards.domain.Suit.SPADES;或importstaticcards.domain.Suit.*;无需确定静态常量的资格:PlayingCardcard1=newPlayingCard(SPADES,2);过度使用静态导入功能,使程序不可读或者无法维持,而且会破坏其命名空间和所有导入的静态成员Page10抽象类用abstract关键字来修饰一个类时,这
此文档下载收益归作者所有