- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved. 0132130807 第5章 方 法 开放问题 问 题 问 题 解决方案 学习目标 定义方法、调用方法以及传参数给方法 (第5.2-5.5节)。 开发模块化的、易读、易调试以及易维护的可重用代码 (第5.6节)。 使用方法重载和理解歧义重载(第5.7节)。 设计和实现重载方法(第5.8节)。 确定变量的作用域(第5.9节)。 了解如何使用 Math 类中的方法 (第5.10-5.11节)。 学习方法抽象的概念 (第5.12节)。 使用逐步求精的方法设计和实现方法(第5.12节)。 定义方法 方法签名 形式参数 实际参数 返回数据类型 调用方法 调用方法(续) 跟踪方法调用 跟踪方法调用 跟踪方法调用 跟踪方法调用 跟踪方法调用 跟踪方法调用 跟踪方法调用 跟踪方法调用 跟踪方法调用 跟踪方法调用 注 意 对有返回值的方法而言, return语句是必需的。 下图 (a)中显示的方法在逻辑上是正确的,但它会有编译错误,因为Java 认为该方法可能不会返回任何值。 在其它类中重用方法 注意:方法的一个好处就是重用。 max 方法除了可以从 TestMax 中调用,还可以被其它类调用。如果你创建了一个新类Test,就可以通过使用“类名.方法名”(例如:TestMax.max)调用max 方法。 调用堆栈 跟踪调用堆栈 跟踪调用堆栈 跟踪调用堆栈 跟踪调用堆栈 跟踪调用堆栈 跟踪调用堆栈 跟踪调用堆栈 跟踪调用堆栈 跟踪调用堆栈 跟踪调用堆栈 void 方法举例 传递参数 public static void nPrintln(String message, int n) { for (int i = 0; i n; i++) System.out.println(message); } 通过值传递 通过值传递 通过值传递(续) 模块化代码 使用方法可以减少冗余的代码并且提高代码的重用性。方法也可以用来模块化代码同时提高程序质量。 重载方法 重载 max方法 public static double max(double num1, double num2) { if (num1 num2) return num1; else return num2; } 歧义调用 有时可能会有两个或两个以上和方法调用相匹配,但是编译器无法判断哪个是最精确的匹配。这个问题被称为歧义调用(ambiguous invocation)。 歧义调用是一个编译错误。 歧义调用 public class AmbiguousOverloading { public static void main(String[] args) { System.out.println(max(1, 2)); } ? public static double max(int num1, double num2) { if (num1 num2) return num1; else return num2; } public static double max(double num1, int num2) { if (num1 num2) return num1; else return num2; } } 问题:将十进制数转换成十六进制数 变量的作用域 局部变量:在方法里定义的变量 域:程序中包含某变量的块 局部变量的作用域从声明该变量的地方开 始,直到包含该变量的块结束为止。 局部 变量都必须在使用之前进行声明。 变量的作用域(续) 你可以在一个方法的不同块里声明相同的变量多次, 但是不能在嵌套块或同一块中两次声明同一变量。 局部变量的作用域(续) 在 for 循环头中初始动作部分声明的变量,其作用域是整个for循环。但是在 for 体内声明的变量,其作用域只限于循环体内,是从声明它的地方开始,到包含该变量的块结束为止。 局部变量的作用域(续) 局部变量的作用域(续) // Fine with no errors public static void correctMethod() { int x = 1; int y = 1; // i is declared for (int i = 1; i 10; i++) { x += i; }
文档评论(0)