- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.5.1 传值机制 Java方法中的参数传递方式只有一种,也就是值传递。所谓的值传递,就是将实际参数的副本传递到方法内,而参数本身不受任何影响。例如,去银行开户需要身份证原件和复印件,原件和复印件上的内容完全相同,当复印件上的内容改变的时候,原件上的内容不会受到影响。也就是说,方法中参数变量的值是调用者指定值的拷贝。 4.5.2 基本数据类型参数的传值 对于基本数据类型的参数,向该参数传递值的级别不能高于该参数的级别,比如,不能想int型参数传递一个float值,但可以向double型参数传递一个float值。 【例】 在Point类中定义一个add方法,然后在Example类的main方法中创建Point类的对象,然后调用该对象的add(int x,int y)方法,当调用add方法的时候,必须向add方法中传递两个参数。 4.5.3 引用类型参数的传值 当参数是引用类型时,传递的值是变量中存放的“引用”,而不是变量所引用的实体。当两个相同类型的引用型变量,如果具有同样的引用,就会用同样的实体,因此,如果该表参数变量所引用的实体,就会导致原变量的实体发生同样的变化;但是,改变参数中存放的“引用”不会影响向其传值的变量中存放的“引用”。 【例4-5】 Car类为汽车类,负责创建一个汽车类的对象,fuelTank类是一个油箱类负责创建油箱的对象。Car类创建的对象调用run(fuelTank ft)方法时需要将fuelTank类创建的油箱对象ft传递给run(fuelTank ft),该方法消耗汽油,油箱中的油也会减少。 4.6 对象的组合 如果一个类把某个对象作为自己的一个成员变量,使用这样的类创建对象后,该对象中就会有其他对象,也就是该类对象将其他对象作为自己的一部分。 4.6.1 组合与复用 如果一个对象a组合了另一个对象b,那么对象a就可以委托对象b调用其方法,即对象a以组合的方式复用对象b的方法。 4.6.2 类的关联关系和依赖关系的UML图 1. 关联关系 如果A类中成员变量是用B类声明的对象,那么A和B的关联是关联关系,称A类的对象关联于B类的对象或A类的对象组合了B类的对象。如果A关联于B,那么UML图通过一条实线连接A和B的UML图,实线的起始端是A的UML图,终点端是B的UML图,但终点端使用一个指向B的UML图的方向箭头表示实线的结束。 图4-9 关联关系UML图 2. 依赖关系 如果A类中某个方法的参数是用B类声明的对象或某个方法返回的数据类型是B类对象,那么A和B的关系是依赖关系,称A依赖于B。如果A依赖于B,那么UML通过使用一个虚线连A和B的UML图,虚线的起始端是A的UML图,终点端是B的UML图,但终点端使用一个指向B的UML图的方向箭头表示虚线的结束。 图4-10 依赖关系的UML图 4.7 实例方法与类方法 4.7.1 实例方法与类方法的定义 声明方法时,方法类型前面不使用static修饰的是实例方法,使用static修饰的是类方法也称作静态方法。 4.7.2 实例方法和类方法的区别 1. 对象调用实例方法 当字节码文件被分配到内存时,实例方法不会被分配入口地址,只有当该类创建对象后,类中的实例方法才会分配入口地址,这时实例方法才可被类创建的对象调用。 2. 使用类名调用类方法 类中定义的方法,在该类被加载到内存时,就分配了相应的入口地址,这样类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。类方法的入口地址直到程序退出时才被取消。但是需要注意,类方法不能直接操作实例变量,因为在类创建对象之前,实例成员变量还没有分配内存。实例方法只能使用对象调用,不能通过类名调用。 4.8 this关键字 this关键字表示某个对象,this关键字可以出现在实例方法和构造方法中,但不可以出现在类方法中。当局部变量和成员变量的名字相同时,成员变量就会被隐藏,这时如果想在成员方法中使用成员变量,则必须使用关键字this。 语法格式为: this.成员变量名 this.成员方法名() 【例4-7】创建一个类文件,该类中定义了setName(),并将方法的参数值赋予类中的成员变量。 Java实用教程 第4章 面向对象基础 第 4 章 面向对象基础 4.1 面向对象程序设计 4.2 类 4.3 构造方法与对象 4.4 类与程序的基本结构 4.5 参数传值 4.6 对象的组合 4.7 实例方法与类方法 4.8 this关键字 4.9 包 4.10 import语句 4.11 访问权限 4.2 类 Java语言与其他面向对象语言一样,引入了类和对象的概念,类是用来创建对象的模
您可能关注的文档
- Java EE企业级应用开发第1章 初识Spring的基本应用.ppt
- Java EE企业级应用开发第2章 Spring中的Bean.ppt
- Java EE企业级应用开发第3章 Spring AOP.ppt
- Java EE企业级应用开发第4章 Spring的数据库开发.ppt
- Java EE企业级应用开发第5章 Spring的事务管理.ppt
- Java EE企业级应用开发第6章 初识MyBatis.ppt
- Java EE企业级应用开发第7章 MyBatis的核心配置.ppt
- Java EE企业级应用开发第8章 动态SQL.ppt
- Java EE企业级应用开发第9章 MyBatis的关联映射.ppt
- Java EE企业级应用开发第13章 数据绑定.ppt
最近下载
- 武汉市2025届高中毕业生四月调研考试 英语试卷(含答案详解).pdf
- 硕士研究生论文的选题与写作.ppt
- 2019年7月安徽省砀山县事业单位幼儿教师招聘考试《幼儿保教知识与能力》真题试卷(含答案).pdf VIP
- 确保室内空气质量的施工方案与技术措施.pdf
- 中小银行上云趋势研究分析报告 2024.pptx
- 证券从业人员证券投资基金基础知识题库与答案.doc
- 小学家长会英语老师课件.pptx VIP
- 第七单元《红楼梦》薛宝钗、林黛玉人物形象赏析 公开课一等奖创新教案统编版高中语文必修下册.docx VIP
- 最新部编版五年级下册语文单元教材分析(全册) .pdf VIP
- 春季学期《工业控制网络》试题.doc
文档评论(0)