Java方法

方法

方法的声明

在Java中方法声明的语法规则如下:

[修饰符] 返回值类型 方法名称 ([参数表]){

// 方法体

}

语法解析:

(1)方法声明包括方法头和方法体两部分。其中方法头确定方法的名称、形式参数的名称和类型、返回值的类型和访问限制。方法体是一段代码块,用于执行方法的具体操作。方法的局部变量和语句都定义在方法体内部。 (2)在 Java 编程语言中,修饰符(Modifier) 是一种关键字,用于修饰类、方法、变量等各种程序元素的声明。Java 中常用的修饰符包括以下几种: D 访问修饰符: 用于控制程序元素的访问权限,包括 public、protected、private 和默 认 (不写任何修饰符)四种。 @ 非访问修饰符: 用于控制程序元素的行为,包括 static、final、abstract、synchronizedvolatile 等。 (3)其他修饰符:包括 transient、native、strictfp 等。在Java 中,一个程序元素可以同时拥有多个修饰符,它们的顺序可以任意排列。例如一个方法可以同时使用 public、static、final、synchronized 等多个修饰符来限定它的访问权 限、行为和线程安全性。3)返回值类型反映方法完成其功能后返回的运算结果的数据类型。如果方法没有返回值,使用 void 关键字声明。 (4)方法名称要符合标识符命名规则,不要与 Java 中的关键字重名。 (5参数表指定在调用该方法时,应该传递的参数的个数和数据类型。参数表中可以包含多个参数,相邻的两个参数之间用逗号隔开。方法也可以没有参数,称为无参方法。 (6)对于有返回值的方法,其方法体中至少有一条 return 语句,形式如下:return 表达式;当调用该方法时,方法的返回值就是 return 后面的表达式。

(7) return 返回值的类型必须与方法声明的返回值类型一致。(8)方法不能嵌套,不能在一个方法中声明另外一个方法。

重要提示:

(1)访问修饰符:用于控制程序元素的访问权限,包括 public、protected、private 和默认(不写任何修饰符)四种。 public 表示公共的,可以被任何类访问。 0 2)protected 表示受保护的,只能被本类、同一包中的类以及子类访问 3private表示私有的,只能被本类访问。4)默认修饰符(不写任何修饰符) 表示包访问权限,只能被同一包中的类访问。(2)非访问修饰符:用于控制程序元素的行为,包括static、final、abstract、synchronized.volatile 等 static 表示静态的,可以被类直接调用,也可以用于定义类变量和类方法 2)final 表示不可改变的,可以用于定义常量、禁止继承类和禁止重写方法。 abstract 表示抽象的,用于定义抽象类和抽象方法,不能被实例化。 4synchronized 表示同步的,用于实现线程同步。 volatile 表示易变的,用于标记变量为线程共享变量,保证可见性和有序性(3)其他修饰符:包括 transient、native、strictfp 等。 transient 表示短暂的,用于标记变量不参与序列化。 @native 表示本地的,用于标记方法是本地方法(由本地代码实现)。 strictfp 表示严格的浮点计算,用于保证浮点计算结果的可移植性和精度。

方法的调用

调用方法,即执行该方法。发出调用的方法称为主调方法,被调用的方法称为被调方法将上面的任务重构成方法,将重复的代码编写在方法内部,每输入一个学生成绩,只要将方法调用一次,方法内部的程序就执行一遍。

方法的返回值

方法的设计遵循功能单一原则,即一个方法只做一件事。上例中的方法 average()即包含了输入成绩的功能,也包含了输出成绩的功能,违背了方法功能单一原则。为此重构上例,将 average()方法中输出成绩的功能移除,将成绩返回给主调方法,由主调方法输出成绩。被调方法通过 return 语句将数据返回给主调方法,一个方法只能返回一个数据给主调方法。return语句后面的返回值必须与方法声明的返回值类型一致。

方法的参数

方法就是去做一件事情,做事情的结果就是方法的返回值,那么方法的参数就是做事的前提条件。也就是说,如果方法定义中有参数,那么调用方法的时候,一定要满足参数定义才能调用。 在设计方法时,每次调用方法都变化的数据设计成方法参数,不变化的数据设计到方法 内部。被调方法中的参数称为形式参数,主调方法中的参数被称为实际参数。当主调方法调用被调方法时,是将主调方法的实际参数传递给被调方法的形式参数。形式参数与实际参数必须在个数、类型、顺序上一致。

de277bcef65b76c33eed4371f1caa4c

可变长度参数

在 Java 中,可变长度参数1,也称为可变参数或不定参数,可以在方法声明中使用,用于接受不确定数量的参数。 使用可变长度参数时,需要在参数类型之后加上三个连续的点 (..),表示这是一个可变长度参数。在方法内部,可变长度参数会被当作一个数组处理,开发者可以像操作数组一样的操作数。每个长度只能有一个可变长度参数,而且必须是最后一个参数。

变量的作用域和生命周期

变量的作用域就是指一个变量定义后,在程序的什么地方能够使用。变量的生命周期是指变量什么时候分配内存,什么时候从内存中回收。 前面学过代码块的概念,就是在程序设计的时候,一对大括号》包含的区域。在Javg中,使用大括号的地方有:类定义、方法定义、方法中的循环、判断等,一个变量的作藏只被限制在当前变量所在的语句块中(也就包含该变量的,离该变量最近的大括号)。 方法中定义的变量,称为局部变量,方法的形式参数也是方法的局部变量。只能在当方法中使用,包括当前方法中的判断语句块,循环语句块。在判断语句块中声明的变量只能在当前判断语句块中使用,当前判断语句块之外不能正常使用,对循环语句块也是一样。变量的生命周期就是从变量声明到变量终结,普通变量的生命周期与作用域范围一数个变量在当前语句块结束时,变量被系统回收

递归

在 Java 中,递归是指一个方法或函数在执行过程中调用自身的过程。递归可以用来解决许多问题,特别是那些需要对某种数据结构进行深度优先搜索或遍历的问题。 递归函数通常包含两部分: 基本情况和递归情况。基本情况是指问题可以直接解决的情况,通常是递归函数的终止条件,避免无限递归。递归情况是指问题需要进一步分解才能解 决的情况,通常是递归函数中调用自身的部分。在递归函数中,每次递归都会将问题规模减小,直到达到基本情况,然后开始回溯并合并解决方案,直到最终解决整个问题。递归在某些情况下可以让程序更加简洁和优雅,但也可能会带来性能问题和堆栈溢出等问题。 Java 中常见的递归实现包括计算阶乘、斐波那契数列、二又树遍历等问题。递归虽然是一种强大的编程技巧,但需要注意递归深度和递归栈的使用情况,以避免出现性能问题和堆栈溢出等情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值