- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java课件第07章—static_final_抽象类_接口
static关键字用来修饰变量、方法和内部类,称这些变量、方法和内部类为静态变量、静态方法和静态内部类 类中的静态变量、方法或代码块属于类,而不属于某个特定的对象。 类的静态成员可以与类的名称一起使用,而无需创建类的对象。 静态变量或方法也称为类变量或类方法。 如果访问控制权限允许,可不必创建该类对象而直接使用类名加“.”调用 static 不可用于修饰构造器 类的静态方法只能访问其他的静态成员 静态方法没有this 静态方法不能被覆盖为非静态方法 static 除了用于修饰变量和方法外,还可以用于修饰类中的自由块 所谓类的“自由块”,就是在类中用“{}”包含起来的不属于任何方法或构造器的代码段 使用static来修饰的自由块只在类加载的时候执行一次,通常用于初始化静态变量 static自由块(初始化块) * Java类属性和对象属性的初始化顺序 首先找到类中的所有静态声明语句(不管位置在哪),把他们初始化为缺省值 然后再按照书写顺序依次处理每一个static的东西 把对象属性初始化为缺省值 按照书写顺序依次处理每一个对象属性的初始化语句 最后执行构造函数 内存分配,缺省的初始化进行 实例变量的初始化如下递归的进行 1. 调用对象的构造器 ,绑定构造器参数。 2. 如果构造器中有this()调用,则根据this()调用的参数调用相应的重载构造器。 3. 除java.lang.Object类外,调用父类的属性初始化,初始化块,然后调用父类构造器,如果在构造器中有super()调用,则根据super()中的参数调用父类中相应的构造器。 4. 设置实例变量的值为缺省的初始值 5. 使用初始化程序和初始化块初始化成员。 6. 执行构造器方法体中其他语句。 对象的构造和初始化分析 final---用于类、方法、变量前 final类---不可被继承,如java.lang.Math就是一个 final类,不可被继承 final变量---在初始化后不可改变变量值,用于常量定义。如果final变量是引用变量,则不可以改变它的引用对象,但可以改变对象的数据(属性) final方法---不可被覆盖 final关键字 * 抽象类 定义:一种类型,只提供部分方法的具体实现。 语法:abstract class 类名{….} 一般情况下,抽象类既包含具体方法,又包含抽象方法。 具体方法:既有方法的声明,又有方法的实现(即有方法体)。 抽象方法:只有方法的声明,而没有方法的实现(即没有方法体)。语法: abstract 返回类型 方法名(参数列表) 抽象类不能被实例化。 * 抽象类 抽象类就是用来继承的 子类必须为抽象类中的所有抽象方法提供具体实现,否则,子类也将是一个抽象类 抽象类中可以声明实例变量,这些实例变量就是为了提供给子类继承的 抽象类可以有一个或多个构造函数,它是提供给子类进行调用的 特别地,抽象类中的所有方法都可以是具体方法 * 抽象类示例 abstract class Employee { int basic = 2000; abstract void salary();//抽象方法 } class Manager extends Employee{ void salary() { System.out.println(薪资等于 +basic*5); } } class Worker extends Employee{ void salary() { System.out.println(薪资等于 +basic*2); } } 抽象方法没有方法主体 在子类中提供实现 在子类中提供实现 * Java接口 定义:一种类型,不包含任何具体方法。换言之,所有方法都是抽象方法 语法:public interface 接口名{…} 接口不能被实例化 接口中的抽象方法不需要abstract修饰 一个类可以继承接口,而且可以同时继承多个接口。一个类继承一个接口被称作“接口继承”;通过一个类同时继承多个接口可以在Java中实现“多重继承” * Java接口 接口中的方法被默认为是public的,所以在实现一个接口的时候,来自接口中的方法必须定义成public 接口中可包含基本数据类型的数据成员,但它们都默认为是public、static和final的,因此,这些数据成员是常量。 一个接口也可以继承一个或多个接口,语法为:interface 接口名 extends 接口1, …,接口n{… }
文档评论(0)