Jav最新实用教程 第四章类的方法
Java最新实用教程 第四章类的方法
Jav最新实用教程 学习目的: 掌握java方法的创建和调用 掌握重载 熟悉Math类 掌握变量作用域 了解递归 学习重点 方法的创建和调用 重载 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 2 ⚫ 学习目的: ▪掌握java方法的创建和调用 ▪ 掌握重载 ▪熟悉Math类 ▪掌握变量作用域 ▪了解递归 ⚫ 学习重点: ▪方法的创建和调用 ▪重载
Jav最新实用教程 第四章类的方法 本章提要: 方法的创建和调用 方法重载 Math 类 作用域 递归 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 3 第四章 类的方法 本章提要: • 方法的创建和调用 • 方法重载 • Math类 • 作用域 • 递归
Jav最新实用教程 4方法的简介 上一章已经提到,一个类的类体有变量定义和方法定义两部 分,且已经学习了构造方法等特殊的一些方法。方法的定义 又包括两部分:方法的声明和方法体。一般格式为: 方法的声明部分 方法体的内容 42方法的结构 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 4 4.1方法的简介 上一章已经提到,一个类的类体有变量定义和方法定义两部 分,且已经学习了构造方法等特殊的一些方法。方法的定义 又包括两部分:方法的声明和方法体。一般格式为: 方法的声明部分 { 方法体的内容 } 4.2方法的结构
Jav最新实用教程 方法的声明部分最基本的要描述清楚方法名和方法的返回类型 。基本格式为: 「修饰符]返回类型方法名(参数表) 方法的名字必须符合标识符规则。在给方法起名字时还应遵循 以下命名习惯:名字如果使用拉丁字母,首字母小写;如果名 字由多个单词组成,则从第二个单词开始的其他单词首字母使 用大写字母。例如: addactionlistener等 方法的返回类型可以时java任意的数据类型,当一个方法不需 要返回数据,返回类型必须为void关键字。当一个方法的返回 类型非空的话,对应方法体中必须有 return语句。当方法执行 完 return语句时方法返回到方法被调用处 很多的方法声明中都给出方法的参数,参数使用逗号隔开的 些变量声明,参数也可以为任意的jav数据类型。每一个参数 需要声明单独的数据类型,如“ int numl,num2”是不正确的 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 5 方法的声明部分最基本的要描述清楚方法名和方法的返回类型 。基本格式为: [修饰符]返回类型 方法名([参数表]) 方法的名字必须符合标识符规则。在给方法起名字时还应遵循 以下命名习惯:名字如果使用拉丁字母,首字母小写;如果名 字由多个单词组成,则从第二个单词开始的其他单词首字母使 用大写字母。例如:addActionListener等。 方法的返回类型可以时java任意的数据类型,当一个方法不需 要返回数据,返回类型必须为void关键字。当一个方法的返回 类型非空的话,对应方法体中必须有return语句。当方法执行 完return语句时方法返回到方法被调用处。 很多的方法声明中都给出方法的参数,参数使用逗号隔开的一 些变量声明,参数也可以为任意的java数据类型。每一个参数 需要声明单独的数据类型,如“int num1,num2”是不正确的
Jav最新实用教程 方法的参数表项应该写为“ int numl, int num2” 方法的修饰符也包括访问控制修饰符和非访问控制修饰符,基 本规则请参照上一章3.,23节中对修饰符的分析 方法体:方法声明之后的一对大括号“{”、“}”以及它们之 间的内容称作方法的方法体。方法体的内容包括方法的局部变 量和合法的java语句。 如下面程序中常用的main方法: class test public static void main(String args System. out. printIn(args0);∥输出用户输入的第一个元素 注意:mai方法可以在执行程序时接受键盘输入内容作为参 数(为字符串类型),如下面的执行过程 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 6 方法的参数表项应该写为“int num1,int num2”。 方法的修饰符也包括访问控制修饰符和非访问控制修饰符,基 本规则请参照上一章3.2.3节中对修饰符的分析。 方法体:方法声明之后的一对大括号“{” 、 “}”以及它们之 间的内容称作方法的方法体。方法体的内容包括方法的局部变 量和合法的java语句。 如下面程序中常用的main方法: class Test { public static void main(String args[]) { System.out.println(args[0]); //输出用户输入的第一个元素 } } 注意:main方法可以在执行程序时接受键盘输入内容作为参 数(为字符串类型),如下面的执行过程:
Jav最新实用教程 Javac Test java ava est aaa 运行结果为: aaa 上一章关于类的介绍中,曾经提到方法分为静态方法(类 方法)和实例方法,以及两者之间的调用规则,这些在本 章仍然适用。 43方法的调用 前面34节中提到,有两种传递参数给方法的方式,分别对应 与两种方法的调用方式:传值调用和引用调用。 43.1传值调用 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 7 >javac Test.java >java Test aaa 运行结果为: aaa 上一章关于类的介绍中,曾经提到方法分为静态方法(类 方法)和实例方法,以及两者之间的调用规则,这些在本 章仍然适用。 4.3 方法的调用 前面3.4节中提到,有两种传递参数给方法的方式,分别对应 与两种方法的调用方式:传值调用和引用调用。 4.3.1传值调用
Jav最新实用教程 基本数据类型的参数是按值传递的 Java方法的参数是基本数据类型时,是按值传递的( pass by value)。这一点可以通过一个简单的例子来说明: 例4.1:分析下面程序的输出结果。 public class Passvalue public static void test(boolean X) X=IX; System. out. println("方法调用中x="x);} public static void main(stringl args) boolean a= true: System.out. println"方法调用前a="+a);test(a); System.out. printIng("方法调用后a="+a) 运行结果图4-1。房法调用中×:a 方法调用后a:rue 图4-1传值调用 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 8 基本数据类型的参数是按值传递的。 Java 方法的参数是基本数据类型时,是按值传递的(pass by value)。这一点可以通过一个简单的例子来说明: 例4.1:分析下面程序的输出结果。 public class Passvalue { public static void test(boolean x) { x = !x; System.out.println("方法调用中x = "+x); } public static void main(String[] args) { boolean a = true; System.out.println("方法调用前a ="+a); test(a); System.out.println("方法调用后a ="+ a); } } 运行结果图4-1。 图4-1 传值调用
Jav最新实用教程 不难看出,虽然在test( boolean x)方法中改变了传进来的 参数的值,但对这个参数源变量本身并没有影响,即对 main( String|)方法里的test变量没有影响。那说明,参数类 型是简单类型的时候,是按值传递的。以参数形式传递简单类 型的变量时,实际上是将参数的值作了一个拷贝传进方法函数 的,那么在方法函数里再怎么改变其值,其结果都是只改变了 拷贝的值,而不是源值 432引用调用 Java中简单数据类型的传递没有引用。 引用也是一种数据类型,可以把它想象为类似C语言中指针 的东西,它指示了对象在内存中的地址只不过不能够观 察到这个地址究竞是什么。一个对象在内存中会占用一块空 间来保存数据,根据对象的大小,它可能需要占用的空间 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 9 不难看出,虽然在 test(boolean x)方法中改变了传进来的 参数的值,但对这个参数源变量本身并没有影响,即对 main(String[]) 方法里的test 变量没有影响。那说明,参数类 型是简单类型的时候,是按值传递的。以参数形式传递简单类 型的变量时,实际上是将参数的值作了一个拷贝传进方法函数 的,那么在方法函数里再怎么改变其值,其结果都是只改变了 拷贝的值,而不是源值。 4.3.2引用调用 Java 中简单数据类型的传递没有引用。 引用也是一种数据类型,可以把它想象为类似 C 语言中指针 的东西,它指示了对象在内存中的地址——只不过不能够观 察到这个地址究竟是什么。一个对象在内存中会占用一块空 间来保存数据,根据对象的大小,它可能需要占用的空间
Jav最新实用教程 大小也不等。访问对象的时候,一般不会直接是访问对象在内 存中的数据,而是通过引用去访问。 如果定义了不止一个引用指向同一个对象,那么这些引用是不 同的,因为引用也是一种数据类型,需要一定的内存空间来保 存。但是它们的值是相同的,都指示同一个对象在内存的中位 置。比如 String a=hello string b 这里a和b都是引用,当改变了b指示的对象的值时,a所指示的 对象的值也改变。所以,a和b都指向同一个对象,即包含 Hello?的一个字符串对象 这里我描述了两个要点: 引用是一种数据类型,保存了对象在内存中的地址,这种类型 即不是平时所说的简单数据类型也不是类实例(对象) 2021年2月20日星期六
Java最新实用教程 2021年2月20日星期六 10 大小也不等。访问对象的时候,一般不会直接是访问对象在内 存中的数据,而是通过引用去访问。 如果定义了不止一个引用指向同一个对象,那么这些引用是不 同的,因为引用也是一种数据类型,需要一定的内存空间来保 存。但是它们的值是相同的,都指示同一个对象在内存的中位 置。比如 String a = “hello”; String b=a; 这里a和b都是引用,当改变了b指示的对象的值时,a所指示的 对象的值也改变。所以,a和b都指向同一个对象,即包含 “Hello”的一个字符串对象。 这里我描述了两个要点: 引用是一种数据类型,保存了对象在内存中的地址,这种类型 即不是平时所说的简单数据类型也不是类实例(对象);