- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch5Java高级特性
Java面向对象特性
目标
了解静态方法和静态变量。
了解final关键词。
理解抽象类的作用。
掌握接口在面向对象编程中的意义
掌握抽象类与接口的使用方法。
能够熟练使用访问控制符进行访问控制。
理解包的概念与作用。
掌握内部类的特性。
熟悉基本类型的包装类。
熟悉常用的集合类。
类成员
在类的定义中还可以定义一种特殊的成员,一般称为类成员,它包括类变量和类方法。
不同对象的成员其内存地址是不同的。
不同对象的类变量将共享同一内存空间。
类变量(static /class variable)
在该类所有实例之间是共享的。在加载该类时,只分配
一次空间,并初始化。
例:class Employee {
…
static int com ;
…
}
则运行时,
4
类成员
类成员示意图:
类变量
在程序设计中,有时需要让一个变量为类的多个实例对象所共享,以实现多个对象之间的通信,或用于记录已被创建的对象的个数。
Java语言中没有全局变量的概念,类变量从某种意义上来说相当于其他程序设计语言中的全局变量。
类变量是唯一为类中所有对象共享的变量。
类变量
如果一个类变量同时还被定义为public类型,那么其他类也同样可以使用这一变量,
引用类变量时无须生成一个该类的对象,而是直接利用类名即可指向它。
类方法
与类变量类似,如果需要用到在尚未创建一个对象实例的时候就去引用它的程序代码,那么标记上关键字static即可实现。这样的方法称为类方法(或静态方法)。
分析程序11-7
class GeneralFunction{
public static int addUp(int x,int y){
return x+y;
}
}
public class UseGeneral{
public static void main(String args[]){
int a = 9;
int b = 10;
int c = GeneralFunction.addUp(a,b);
System.out.println(addUp() gives +c);
}
}
类方法
使用静态方法时,有两个特别的限制必须注意:
由于静态方法可以在没有定义它所从属的类的对象的情况下加以调用,故不存在this值。正由于此,一个静态方法只能使用其内部定义的参数或静态变量,如果企图使用非静态变量将引起编译错误。
静态方法不能被覆盖。也就是说,在这个类的子孙类中,不能有相同名称、相同参数的方法。
分析程序11-8
public class Wrong{
int x;
public static void main(String args[]) {
x = 9; // 出现编译错误!
}
}
静态初始化块
以static关键词修饰的语句块,不属于任何方法体。
静态语句块常用来进行类变量的初始化。
在类加载时执行,并且只执行一次。
多个 静态语句块按声明顺序运行。
关键字final
Java中有一个重要的关键字——final
final既可以用来修饰一个类,也可以修饰类中的成员变量或成员方法。
用final进行修饰的类或类的成员都是不能改变的。
终极类
被标记为final的类将不能被继承,这样的类称之为终极类。
其声明的格式为:
final class finalClassName{ ... }
终极类
出于安全性和面向对象设计的考虑,有的时候一些类是不能被继承的。
某个类的的结构和功能已经很完整,不需要生成它的子类,这时也应该在这个类的声明中以关键字final进行修饰。
例如:类Java.lang.String。
分析程序11-10:
final public class FinalClass{
int memberar;
void memberMethod(){};
}
class SubFinalClass extends FinalClass{
int submembervar;
void subMemberMethod(){};
}
终极方法
成员方法也可被标记为final成为终极方法(final method),被标记final的方法将不能被覆盖。
出于安全考虑,这样调用final类型的方法时可以确保被调用的是正确的、原始的方法,而不是已被更改的子方法。
有时也用于优化。因为编译器编译此类方法生成的代码允许对该方法直接调用,而不再像对待一般成员方法那样使用通常的虚拟调用,即在执行时再决定究竟调用哪个方法,从而提高了编译运行效率。
终极方法
终极方法的定义格式为:
final returnType finalMethod([paramlist]){ ...
您可能关注的文档
最近下载
- 基于SpringBoot技术的论坛系统设计与实现.docx
- 本科毕业设计—110kv变电站电气一次部分设计 发电厂课程设计报告.doc VIP
- 世界甲状腺日甲状腺健康科普PPT.pptx VIP
- 电力线路维保服务投标方案(技术方案).pdf VIP
- 2024-2025学年中职思想政治中国特色社会主义高教版(2023)教学设计合集.docx
- 第32课《让思维活跃起来》课件2024北师大版心理健康七年级下册 .ppt
- 山东省(烟台市、德州市)2025届高三高考适应性测试化学试题及答案.docx VIP
- 黑龙江高职高专:畜牧兽医专业建设方案.doc
- 公司对项目经理部的授权范围及项目部岗位职责.docx
- 孙中山全集(第九卷).pdf
文档评论(0)