JAVA全套简明教程ch05-方法.ppt_第1页
JAVA全套简明教程ch05-方法.ppt_第2页
JAVA全套简明教程ch05-方法.ppt_第3页
JAVA全套简明教程ch05-方法.ppt_第4页
JAVA全套简明教程ch05-方法.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

YANGLINBNUITC Java程序设计 第5章 方法 学习目标 o 掌握声明和调用方法的语法 o 理解方法参数的作用 o 掌握如何传递方法参数 o 掌握方法重载 o 理解局部变量的作用域 o 熟悉Math类 o 掌握声明和导入包 声明方法 o 方法(method)是为执行一个操作组合在一起的语句集 合。一个类中可以声明多个方法。 o 语法 MethodDeclaration: MethodHeader MethodBody MethodHeader: Modifiersopt ResultType Identifier(FormalParameterListopt) Throwsopt Modifiers: public protected private static abstract final synchronized native strictfp ResultType: Type void MethodBody: statements 方法声明示例 public static int max(int num1, int num2) int result = 0; if(num1 num2) result = num1; else result = num2; return result; 方法头 方法体 修饰符 返回值类型 方法名称 形式参数 形参列表 参数类型 参数名称 返回值 方法头 o 方法签名(Method Signature)指方法名称、参数类型 和参数数量。一个类中不能包含具有相同签名的多个 方法。 o 方法头中声明的变量称为形参(formal parameter)。 当调用方法时,可向形参传递一个值,这个值称为实 参(actual parameter / argument)。形参可以使用 final进行修饰,表示方法内部不允许修改该参数。 o 方法可以有一个返回值(return value)。如果方法没 有返回值,返回值类型为void。 调用方法 o 声明方法只给出方法的定义。要执行方法,必须调用 (call/invoke)方法。 n如果方法有返回值,通常将方法调用作为一个值来处理。 int large = max(3, 4); System.out.println(max(3,4); n如果方法没有返回值,方法调用必须是一条语句。 System.out.println(“Welcome to Java!”); o 当调用方法时,程序控制权转移至被调用的方法。当 执行return语句或到达方法结尾时,程序控制权转移 至调用者。 o 如果是当前类中的静态方法,可以直接调用。其它类 中的静态方法需要通过类名调用。 Example:TestMax.java 调用堆栈 o 每当调用一个方法时,系统将参数、局部变量存储在 一个内存区域中,这个内存区域称为调用堆栈(call stack)。当方法结束返回到调用者时,系统释放相应 的内存。 main k : j : 2 i : 5 调用main方法 main k : j : 2 i : 5 调用max方法 max result : 5 num2 : 2 num1 : 5 main k : 5 j : 2 i : 5 max方法结束main方法结束 传递参数 o 如果方法声明中包含形参,调用方法时,必须提供实 参。 n实参的类型必须与形参的类型兼容。 n实参顺序必须与形参的顺序一致。 o 当调用方法时,实参值的副本被传递给方法的形参。 方法内部对形参的修改不影响实参值。 public static void nPrintln(String message, int n) for (int i = 0; i n; i+) System.out.println(message); nPrintln(“Hello”, 3); /正确 nPrintln(3, “Hello”); /错误 Example:TestPassByValue.java 方法重载 o 方法重载(overloading)是指方法名称相同,但方法 签名不同的方法。一个类中可以包含多个重载的方法 。 o 当调用方法时,Java编译器会根据实参的个数和类型 寻找最准确的方法进行调用。 o 调用可能匹配的方法多于一个,则会产生编译错误, 称为歧义调用(ambiguous invocation)。 Example:TestMethodOverloading.java, AmbiguousOverloading.java 例 使用方法计算税款 o 美国的个人所得税根据纳税人情况和须纳税收入进行 计算。编写程序,用户输入纳税人情况和须纳税收入 ,计算出2002年的所得税。 2002年美国个人所得税税率表 Example:ComputeTaxWithMethod.java 局部变量的作用域 o 方法内部声明的变量称为局部变量(local variable) 。 o 变量的作用域(scope)指程序中可以使用该变量的部分 。 o 局部变量的作用域从它的声明开始,直到包含该变量 的程序块结束。局部变量在使用前必须先赋值。 o 在方法中,可以在不同的非嵌套程序块中以相同的名 称多次声明局部变量。但不能在嵌套的程序块中以相 同的名称多次声明局部变量。 o 在for语句的初始动作部分声明的变量,作用域是整个 循环。在for语句循环体中声明的变量,作用域从变量 声明开始到循环体结束。 Example:TestLocalVariable.java Math类 o 常量 nPI : 3.14159265358979323846 nE : 2.7182818284590452354 o 方法 n三角函数 sin, cos, tan, asin, acos, atan,toRadians,toDigrees n指数 exp, log, log10,pow, sqrt n取整 ceil, floor, rint, round n其它 min, max, abs, random 例 生成随机字符 o 编写生成随机字符的方法。 Java中每个字符对应一个Unicode编码从0000到FFFF。在生 成一个随机字符,就是产生一个从0到65535之间的随机数。 由于0=Math.random()1.0,所以计算表达式为: (int)(Math.random() * (65535 + 1) 。 要生成两个字符之间的随机字符的表达式为: (char)(ch1 + Math.random() * (ch2 ch1 + 1) Example:RandomCharacter.java, TestRandomCharacter.java 方法抽象 o 可以将方法体看作一个黑匣子,其中包含了方法实现 的细节。 方法签名 方法体 输入返回值 对客户可见 对客户不可见 自顶向下的设计 o 在设计较大的程序时,可以采用“分而治之”的方法 ,将其分解为一些子问题。子问题再被分解为更小、 更易处理的问题。 例 显示日历 o 编写程序,显示给定年和月份的日历。 设计分析 printCalender readInputprintMonth printMonthTitleprintMonthBody printMonthNamegetStartDay getTotalNumOfDays getNumOfDaysInMonth isLeapYear Example:PrintCalendar.java 包 o 包(package)是相关类和接口的集合,它可以提供访问保 护和名称空间管理。 n组织功能:将相关的类和接口组织在一起,便于识别和管理 n防止命名冲突:不同包中的相同命名,不会产生冲突 n访问控制:控制包间的类型的可访问性 o 语法 package packagename; npackage语句必须位于源文件的第一条语句,源文件中定义 的所有类和接口都属于指定的包。 n如果没有使用package语句,那么类和接口被放在缺省包 (default package)中,缺省包是一个没有名称的包。 包的命名 o 使用组织的internet域名的反序形式命名包。一个组 织内部发生的命名冲突需要由组织内部的约定来处理 ,通常在组织名称后面包含项目名称。包名必须与目 录结构一一对应,目录名之间用.分隔。 组织 World Wide Web Consortium 域名 包名 org.w3c.dom org.w3c.dom.boo tstrap org.w3c.dom.eve nts 组织 The Apache Software Foundation 域名 包名 org.apache.tools.a nt org.apache.to ols.ant.helper org.apache.ca talina org.apache.ca talina.core 组织 北京师范大学信息 技术与软件工程学院 域名 包名 com.bnuitse.put com.bnuitse.pu t.model com.bnuitse.pu t.view Example:com/prehall/mypackage/Format.java 使用包中的类 o 用简单名称引用包成员。 n代码与要使用的成员位于相同的包 n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论