第3章封装与类祥解.ppt

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

? Page * 静态和非静态初始化块 在类的范围中直接声明一个代码块(大括号括起的一些语句),不属于任何方法 这些代码块可以为类或一个对象实例完成额外的准备工作,称为初始化块 ( initializer block) 非静态初始化块会在构造对象时执行一次,静态初始化块(标为static块),会在类加载时执行一次 例子:ColorWheel.java ? Page * 静态和非静态初始化块 注意: 初始化块中除了初始化变量外,还可以调用其他方法 静态初始化块中不能初始化实例变量和调用实例方法 非静态初始化块中可以访问和调用静态变量和方法 静态常量(static final 修饰)如果不在声明同时赋值,则必须在静态初始化块中赋值 ? Page * this 位置:实例方法和构造方法中,但不可以出现在类方法中。 1.在实例方法中使用this 2.在构造方法中使用this 3.类方法中不可以使用this 4.使用this区分成员变量和局部变量 ? Page * 1. this在实例方法中 代表使用该方法的当前对象 调用成员变量: this.variable; 调用类的其它方法: this.Method ([paramlist]); 通常可以省略“this” ? Page * 2. this在构造方法中 代表使用该构造方法所创建的对象 下述例子9中的构造方法中出现了this,表示该对象在构造自己时调用了方法cry()。 调用类的其他重载的构造方法 this ([paramlist]); 调用构造方法的语句必须是该方法的第一条语句!! ? Page * 用this( )来调用其所在类的另一个重载构造函数,对于this( )要提供合适的实参以选择所需的构造方法 this()的参数不能用实例成员变量作实参(包括final实例常量),可以用类成员(static)作实参 如果构造方法调用了另一个构造方法,则必须作为其第一条语句 例子:Car.java ? Page * 3. this不可以在类方法中 为什么? 类方法可以通过类名直接调用,这时,可能还没有任何对象诞生。 ? Page * 4. 使用this区分成员变量和局部变量 成员变量在整个类内有效,局部变量仅在方法内有效。 局部变量:方法的参数在整个方法内有效,方法内定义的局部变量从它定义的位置之后开始有效。 如果局部变量与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效。如 如果在方法内使用成员变量,成员变量前必须加this,this不能省略,如,在类方法中,必须显式地使用类名操作类变量 package 包 格式:package 包名; 位置:必须作为Java源文件的第一条语句,指明该源文件定义的类所在的包。 目的:解决命名空间和访问冲突。 如果源程序中无package语句? 源文件中的类被隐含地认为是无名包的一部分,该包没有名字。 编译时和运行时,这些类的路径即认为是当前路径 无包的类对实验和测试非常有用 package 包 包名:合法的标识符,或若干个标识符加“.”分割而成。 package sunrise; package mytools.text; 程序如果使用了包语句,例如:package tom.jiafei; 则目录结构必须为 …\tom\jiafei 假设例子10的源文件保存到 …\tom\jiafei 编译: c:\1000\tom\jiafei\javac Example.java 运行:必须到tom\jiafei的上一层目录,如: c:\1000\java tom.jiafei.Example 使用参数“–d”编译源文件 javac -d指定生成的字节码文件所在的目录。 不使用参数-d,在当前目录生成字节码文件。 如果源文件没有包名,存放到指定的目录中, 如:javac –d F:\tsinghua\1000 MyFile.java 如果源文件声明了包名,使用参数-d时要格外小心。 假设源文件的包名是tom.jiafei, D:\2000\javac –d F:\tsinghua\1000 MyFile.java 存到 F:\ tsinghua\1000\tom\jiafei中 D:\2000\javac –d . MyFile.java ? Page * package 包 包名应该避免与其他包名冲突。 Sun公司建议大家使用自己所在公司的Internet域名倒置后做包名。 例如,将域名“”的倒置 “.sina”做包名。 ? Page * package 包 包名的各个分量为编译器和运行时系统找到文

文档评论(0)

光光文挡 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档