- 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文档。上传文档
查看更多
3-java对象构造及对象引用
Java对象设计之对象构造和对象引用 复习一个Java程序的开发过程 Java对象的生命周期 1、对象的构造函数 在Java中,“定义”和“初始化”是一体的,两者不可能彼此脱离而独立存在。 构造函数是一种特殊函数,确保每个对象产生时,初始化动作一定被执行。 构造函数和类名相同,可以有参数但没有返回值 构造函数由编译器唤起,分配必要的内存 1、对象成员初始化 Java保证,变量绝对会在使用之前初始化。强迫程序员一定在使用前给定初始值是不切实际的,但放任变量持有无意义的初值也很危险。 在类成员定义时,指定初值。缺点:对象创建时都是相同的初值。 在构造函数中进行初始化。 static成员只一次初始化,不在定义时,仅在第一个对象创建时。 1、对象创建(上) 对象的创建一般有两种方式,一种是用new操作符,另一种是在一个Class对象上调用newInstance方法。其创建实际过程是一样的。 首先为对象分配内存空间-包括其所有父类的可见或不可见的变量的空间,并初始化这些变量为默认值,如int类型为0,boolean类型为false,对象类型为null。然后用下述5个步骤来初始化这个新对象:1)分配参数给指定的构造方法;2)如果这个指定的构造方法的第一个语句是用this指针显式地调用本类的其它构造方法,则递归执行这5个步骤;如果执行过程正常则跳到步骤5; 1、对象创建(下) 3)如果构造方法的第一个语句没有显式调用本类的其它构造方法,并且本类不是Object类(Object是所有其它类的祖先),则调用显式(用super指针)或隐式地指定的父类的构造方法,递归执行这5个步骤;如果执行过程正常则跳到步骤5;4)按照变量在类内的定义顺序来初始化本类的变量,如果执行过程正常则跳到步骤5;5)执行本类这个构造方法中余下的语句,如果执行过程正常则过程结束。 1、对象初始化时序图 实例:PetStore class?Animal?{????Animal()?{????????System.out.println(Animal);????}}class?Cat?extends?Animal?{????Cat()?{????????System.out.println(Cat);????}}class?Store?{????Store()?{????????System.out.println(Store);????}} 1、构造函数重载 构造函数名称只有一个,当你想以多种方式创建对象该如何做?重载对于构造函数来说是必然的。 语言中同一个字可以有不同的意义,例如:清洗。 每个重载函数必须有独一无二的参数列 Tree() {…} //幼苗 Tree(int i) {…} //一定高度的树苗 1、构造函数要注意几点 类的构造函数不能被继承! 继承子类在创建对象时,一定会先调用父类的构造函数,一次让所有继承阶层上的构造函数串联起来,保证对象初始化的正确性。 设计原则:尽可能简单地让对象进入就绪状态;如果可能,避免调用任何方法。在构造方法内唯一能安全调用的是基类中具有final属性的方法或者private方法(private方法会被编译器自动设置final属性)。final的方法因为不能被子类覆盖,所以不会产生问题。 错误示例: (1)不佳的基类构造 public?abstract?class?BaseDlg?extends?JDialog?{????public?BaseDlg(Frame?frame,?String?title)?{????????super(frame,?title,?true);????????this.getContentPane().setLayout(new?BorderLayout());????????this.getContentPane().add(createHeadPanel(),?BorderLayout.NORTH);???????this.getContentPane().add(createClientPanel(),?BorderLayout.CENTER);????????this.getContentPane().add(createButtonPanel(),?BorderLayout.SOUTH);????} ...????//?创建对话框客户区域,交给子类实现????protected?abstract?JPanel?createClientPanel();} 错误示例: (2)出错的子类创建 public?class?ChildDlg2?extends?BaseDlg?{????JTextField?jTextFieldName
您可能关注的文档
- 3 等值线及一般规律.ppt
- 3 管理思想及理论及演变.ppt
- 3 计算方法常微分方程及差分方法.ppt
- 3 三重积分及计算-1.ppt
- 3 信号分析及处理.ppt
- 3 信号及系统 复习.ppt
- 3 动生电动势及感生电动势.ppt
- 3 多元数量值函数及导数及微分-1 偏导数.ppt
- 3 多元数量值函数及导数及微分-2 全微分.ppt
- 3 复变函数及积分.ppt
- 2025年网络文学平台版权运营模式创新与版权保护体系构建.docx
- 数字藏品市场运营策略洞察:2025年市场风险与应对策略分析.docx
- 全球新能源汽车产业政策法规与市场前景白皮书.docx
- 工业互联网平台安全标准制定:安全防护与合规性监管策略.docx
- 剧本杀剧本创作审核标准2025年优化与行业自律.docx
- 2025年新能源电动巡逻车在城市安防中的应用对城市环境的影响分析.docx
- 全渠道零售案例精选:2025年行业创新实践报告.docx
- 2025年网约车司乘纠纷处理机制优化与行业可持续发展报告.docx
- 2025年宠物烘焙食品市场法规政策解读:合规经营与风险规避.docx
- 2025年宠物行业数据安全监管政策影响分析报告.docx
文档评论(0)