09面向对象程序设计3zw.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
09面向对象程序设计3zw

高级类特性(上) 面向对象程序设计3 ID:SCSJ001-Java Basic Syntax 课程目标 final关键字与常量 再谈对象的构造和初始化 final关键字 final---用于类、方法、变量前 final类---不可被继承,如java.lang.Math就是一个 final类,不可被继承 final变量---在初始化后不可改变变量值,用于常量定义。如果final变量是引用变量,则不可以改变它的引用对象,但可以改变对象的数据(属性) final方法---不可被覆盖 public final static double PI = 3.1415927; 这就是常量!! 为什么需要常量 生活中,一周有七天,如何用代码表示? 什么是常量 常量是一种标识符,它的值在运行期间恒定不变 常量标识符在程序中只能被引用,而不能被重新赋值 常量的优点 如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦? Java中常量的定义规则 加入final 关键字代表常量, 加入static 关键字代表类量 尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串 对象的构造和初始化分析 对象的构造和初始化如下递归的进行 1. 设置实例变量的值为缺省的初始值 2. 调用对象的构造器 ,绑定构造器参数。 3. 如果构造器中有this()调用,则根据this()调用的参数调用相应的重载构造器,然后,转到步骤5;否则转到步骤4。 4. 除java.lang.Object类外,调用父类的中的初始化块初始化父类的属性,然后调用父类构造器,如果在构造器中有super()调用,则根据super()中的参数调用父类中相应的构造器。 5. 使用初始化程序和初始化块初始化成员。 6. 执行构造器方法体中其他语句。 例子Object1 public class Object1 { private String name1 = object1; private String name2; {System.out.println(4—free Object1);} static {System.out.println(5--static free Object1);} public Object1() { System.out.println(1--Object1());} public Object1(String name) { this.name1 = name; System.out.println(2--Object1(name));} public Object1(String name1, String name2){ this(name1); this.name2 = name2; System.out.println(3--Object1(name1,name2));} public void showName() { System.out.println(name1+.+name2);} } 例子TestObject public static void main(String[] args) { Object1 obj1 = new Object1(); obj1 = new Object1(jack); obj1 = new Object1(jack,z); } 构造和初始化注意 1.如果子类的构造器中没有显式地调用父类构造器,也没有使用this关键字调用重载的其它构造器,则系统默认调用父类无参数的构造器 2.如果子类构造器中既未显式调用父类构造器,而父类中又没有无参的构造器,则编译出错 例子Object2 public class Object2 extends Object1 { private String name1 = Object2; {System.out.println(8--free Object2);} static {System.out.println(9--static free Object2);} public Object2() { System.out.println(6--Object2());} public Object2(String name){ super(name+.super); this.name1 = name; System.out.println(7--Object2(name));} public void showName(){ System.out.println(name1);} } 例子TestObject publi

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档