清华大学java第2章讲解材料.ppt

  1. 1、本文档共138页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
this关键字的使用 可以使用this关键字在一个构造方法中调用另外的构造方法 代码更简洁,维护起来也更容易 通常用参数个数比较少的构造方法调用参数个数最多的构造方法 2.3.1 构造方法(续) ——this关键字的使用 对象初始化和回收 使用this关键字,修改BankAccout类中无参数和二参数的构造方法 对象初始化和回收 public BankAccount() { this("", 999999, 0.0f); } public BankAccount(String initName, int initAccountNumber) { this(initName, initAccountNumber, 0.0f); } public BankAccount(String initName, int initAccountNumber, float initBalance) { ownerName = initName; accountNumber = initAccountNumber; balance = initBalance; } 2.3.1 构造方法(续) ——BankAccount.java 内存回收技术 当一个对象在程序中不再被使用时,就成为一个无用对象 当前的代码段不属于对象的作用域 把对象的引用赋值为空 Java运行时系统通过垃圾收集器周期性地释放无用对象所使用的内存 Java运行时系统会在对对象进行自动垃圾回收前,自动调用对象的finalize()方法 2.3.2 内存回收技术 对象初始化和回收 垃圾收集器 自动扫描对象的动态内存区,对不再使用的对象做上标记以进行垃圾回收 作为一个线程运行 通常在系统空闲时异步地执行 当系统的内存用尽或程序中调用System.gc()要求进行垃圾收集时,与系统同步运行 2.3.2 内存回收技术(续) ——垃圾收集器 对象初始化和回收 finalize()方法 在类java.lang.Object中声明,因此 Java中的每一个类都有该方法 用于释放系统资源,如关闭打开的文件或socket等 声明格式 protected void finalize() throws throwable 如果一个类需要释放除内存以外的资源,则需在类中重写finalize()方法 2.3.2 内存回收技术(续) ——finalize()方法 对象初始化和回收 同C和C++的区别 C语言中通过free来释放内存 C++中则通过delete来释放内存 在C和C++中,如果程序员忘记释放内存,则容易造成内存泄漏甚至导致内存耗尽 在Java中不会发生内存泄漏情况,但对于其它资源,则有产生泄漏的可能性 2.3.2 内存回收技术(续) ——同C和C++的区别 对象初始化和回收 对银行帐户类BankAccount进行一系列修改和测试 声明BankAccount类 声明toString()方法 声明存取款方法 使用DecimalFormat类 声明类方法生成特殊的实例 声明类变量 2.4 应用举例 包括状态、构造方法、get方法及set方法 public class BankAccount{ private String ownerName; private int accountNumber; private float balance; public BankAccount() { this("", 0, 0); } public BankAccount(String initName, int initAccNum, float initBal) { ownerName = initName; accountNumber = initAccNum; balance = initBal; } 应用举例 2.4.1 声明BankAccount类 public String getOwnerName() { return ownerName; } public int getAccountNumber() { return accountNumber; } public float getBalance() { return balance; } public void setOwnerName(String newName) { ownerName = newName; }

文档评论(0)

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

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

1亿VIP精品文档

相关文档