- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 JAVA语法解析
JAVA语法解析;概述
;;;;JAVA语法解析;JAVA语法解析;JAVA语法解析;JAVA语法解析;JAVA语法解析;关于构造方法声明和使用的几点说明
当一个类没有声明构造方法时,Java自动为该类生成一个默认的构造方法,默认构造方法无参数。默认构造方法的访问权限与其相应的类的权限相同。
当一个类声明了有参数的构造方法时,Java不再自动为该类生成一个无参数的构造方法。如果需要有多种参数的构造方法,则需要将构造方法重载。
在构造函数内可以调用构造函数,其他函数不能调用构造函数。;关于成员方法访问控制权限的说明
目前的针对的是在A类方法中定义或获得了B类对象局部变量,B类对象能够调用哪些成员。如果B类包含静态成员的话,A类中可以直接调用B类静态成员,
访问控制权限是面向类的,即根据B类与A类的关系,决定了B类的成员是否可以访问。
private访问控制权限,除非B类和A类为同一类,否则该成员在A类的方法中不可访问。
public则是无任何要求
默认访问控制权限,要求B类和A类在同一个包中,否则不可访问
protected在同一包中可以访问,不再同一包中但A类是B类的后代类,需要考虑当前成员是否是静态成员,静态成员可以访问,否则不可;关于静态成员几点说明
通过类名访问,而不用定义对象
也称其为类成员
类成员变量为了实现对象间数据共享
类成员空间只初始化一次
类成员方法只能访问类成员变量,或者方法内部变量
类成员方法中不能使用this和super引用
;关于this引用的一些说明
在本类的对象成员方法中应用,用于获取调用该方法的当前对象
重载构造函数中调用其他构造函数
当局部变量和成员变量同名,访问被隐藏的成员变量
将本对象作为实参传递给对象方法中某个函数
;JAVA语法解析;重写要注意以下几点
不应该有更窄的访问权限
覆盖的方法不应该产生更多的异常;
final方法不能重写;
抽象方法必须在具体类中覆盖;
Private成员不涉及重写问题
子类的静态方法不能覆盖父类的实例方法;子类的实例方法不能覆盖父类的静态方法; 子类的实例方法覆盖父类的实例方法,子类的静态方法隐藏父类的静态方法;
实例变量与静态变量可以相互隐藏;
;关于子类实例化的顺序
给父类静态变量默认值;
对父类静态变量赋值;
执行父类静态块;
给当前类静态变量默认值;
对当前类静态变量赋值;
执行当前类静态块;
给父类变量默认值;
对父类变量赋值;
执行父类构造函数;
给当前类变量默认值;
对当前类变量赋值;
执行当前类构造函数
;关于super引用的几点说明
设计该引用的原因是为了解决在子类中复用同名父类代码所需
常用操作:
在子类构造函数中,作为第一个语句,利用父类构造函数初始化继承自父类的成员
在子类方法中调用被复写的父类对象
super不能象this一样单独使用
super不能引用父类的私有成员
super不能在静态方法中应用
;JAVA语法解析;隐藏相关静态绑定的具体实现
前提:
上转型:将子类对象引用赋值给父类对象
覆盖:父类对象被隐藏
结果:父类对象调用父类方法
动态绑定的具体实现
前提:
上转型:将子类对象引用赋值给父类对象
覆盖:实例方法子类重新定义
结果:父类对象调用子类方法
子类调用父类继承的方法时,方法中的变量是父类继承变量,调用子类新增或重写的方法是时,方法中的变量是子类变量
;接口相关说明
不能有实例变量,只能有静态常量
不能有实例方法,只能有抽象方法
接口中的方法默认是public和abstract的(可省略)
接口中的所有抽象方法必须全部被实现接口的类或其子类覆盖
接口不能被实例化
接口是引用数据类型
public 接口可以被任何一个类使用,如果不加public,即友好接口,可以被同一包中的类使用。
文档评论(0)