java_方法(详解)

1.1方法的概念
Java 的方法( Method )类似于其它语言的函数 ( Function ) ,指一段可以直接被另一段程
序或代码引用的程序或代码。
一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的
高级语言中都有子程序这个概念,用子程序实现模块的功能。
面向过程语言中,整个程序就是由函数(相互调用)组成的
面向对象语言中,方法(函数)是类的组成部份,整个程序是由很多类组成的
通俗讲,方法就是解决某件事情的办法,比如 我要上班,可以选择 步行,骑车,开车,
公共交通,而每一个方式,在程序中就可能是一个方法。
1.2方法的组成要素
方法的组成要素:修饰符 返回值 方法名 参数 方法体 五个要素
1.3方法的补充说明
方法的优点:
1. 使程序变得更简短清晰
2. 有利于程序的维护(修改)
3. 可以提高开发效率
4. 可以提高代码的重用性
方法名的命名规则:
1. 方法名必须以字母 下画线 $ 数字组成
2. 不能以数字开头
3. 方法名尽量由单词组成,如果有多个单词,第一个单词首字母小写,其它单词首字母大写
4. 在同一个类中,方法名一般不能重名(方法重载除外)
1.4 方法的声明
语法
访问权限修饰符 其它修饰符 返回值类型 方法名(参数列表) {
方法体代码
return 返回值 ; (如果返回值类型为 void 此行可省略)
}
// 示例
public static void print (){
System . out . println ( " 我是打印方法 " );
//return; 因为返回值类型为 void 所以此行可省略
}
1. 访问权限修饰符: public , default 【如果没有添加任何的访问权限修饰符,则默认为
default ,而 default 不需要显式的写出来】,目前使用的访问权限修饰符都和 main 方法保
持一致,使用 public
2. 其它修饰符:可以是 static final abstract 等等 也可以没有,在讲面向对象前我们
都用 static
3. 返回值类型:如果有返回值,需要用返回值的类型代替,如果没有返回值 需要用 void
4. 方法名:符合方法名的命名规则情况下,根据方法的功能,自行定义,最好能见名知义(看
到名字就能明白方法的功能)
5. 参数列表:如果方法所实现的功能中有未知项参与运算,就可以将未知项设置为参数
实际参数:实参,在方法外面定义,表示实际参与运算的值或者变量,作用为了给
形参进行赋值
形式参数:形参,在方法中定义,用于接收实参的值,相当于是一个未被赋值的变
形参数据类型 形参变量名称
形参 = 实参;
6. 大括号:方法的实现,里面写方法的功能代码
7. return : 将当前方法运行之后的结果进行返回,返回给当前方法的调用者。如果方法声
明为 void 可省略,否则返回实际类型的变量
注意 1 :方法声明(并实现)仅仅是声明了这个方法,方法中的代码不会被执行的
注意 2 :方法声明的位置为类的内部,其它方法的外部
1.5方法的调用
调用语法:
方法名称 ( 实参列表 );
// 示例 :
print ();
注意:
a . 实参的数量和类型必须和形参保持完全的一致,实现书写的顺序也必须和形参中的顺序保持
完全一致
b . 方法之间只能进行相互的调用,而不能在方法中声明方法,就目前而言声明的方法都和
main 方法是并列的
c . 定义方法的时候,运算的结果会返回给调用者【在哪个方法中调用,运算的结果返回给哪个
方法】
d . 方法只有声明,没有调用 . 对当前程序没有任何作用,白写了 .
e . 方法没有声明,直接调用就会报错,不允许 .
f . 方法声明的位置为类的内部,其它方法外部的任何位置 , 没有顺序要求
g . 同一个类中,方法名不能冲突(不能名字相同,只有方法重载情况除外)
h . 方法中声明的变量都为局部变量。在哪个方法中声明的变量,就只能在哪个方法中使用,在
方法外不能直接访问到
i . 如果方法没有返回值,则方法调用相当于执行了某个功能,但没有直接结果返回给调用者,
如果方法有返回值,则相当于执行了某个功能,并获得了一个结果(变量),对调用者而言,
相当于接收了一个变量
1.6方法的参数
a. 形参,就是方法声明中的参数,在方法调用前为没有赋值的变量
b. 实参 , 方法调用时,写在方法名后面小括号中的变量或常量
c. 方法被调用时,用实参给形参赋值,这个过程叫传参
d. 传参时需要注意的事项:实参的数量和类型必须和形参的数量和类型保持一致【相兼容的数
据类型】
1,7
1. 在没有返回值的方法中使用 return 语句 , 要求 return 单独成立一条语句,类似于 break
continue ,后面不能跟任何的数值,直接跟一个分号,此时 return 语句作用为 结束整个
方法的运行。
2. 在有返回值的方法中使用 return 语句,要求 return 后加加空格后跟着需要返回的变量和
结尾的分号,此时 return 语句作用为 结束整个方法的运行,并将返回的变量传给方法的调用
. 要求 返回值的实际变量类型需要与方法声明的返回值类型保持一致。
3. 如果方法声明中有返回值,在方法体中使用了选择语句,如果需要有不同情况下的返回结
果,那就都需要写 return 语句
4. 无论在方法体的任何位置出现 return 语句,本次方法的调用都立即结束,返回到调用者。
1.8方法的重载
什么是方法的重载
定义:同一个类中,方法名字相同,参数列表不同,就叫方法重载
说明:
1. 参数列表的不同包括,参数个数不同,参数数据类型不同,参数顺序不同
2. 方法的重载与方法的修饰符和返回值没有任何关系
就是同一个功能的方法,因为参数的不同,调用的具体的方法也不同。
如何判定多个方法是否是重载的?衡量标准,要同时满足以下三条:
A :必须同一个类中。
B :方法名称必须一致。
C :参数列表必须不同。(顺序,个数,类型)
static public ,返回值, void等等都没有关系。
优点:
1 、简化了开发的压力
2 、简化了记忆的压力
3 、调用方法更方便,更简洁,又满足了不同的情况
基本原理:
当方法名称一致时,通过形式参数列表的不同来选择要执行的方法。
1.9方法的递归
定义:在一个方法内,调用方法本身,称为方法的递归 ( 注意和重载的区别 )
说明:方法递归包含了一种隐式的循环,会重复执行某段代码,但是这种重复不需要使用循环
语句来进行控制
练习 1 :使用递归计算 1 到数字 n 的和
public class recursionDemo
{
// 计算 1 到数字 n 的和
public static int sum ( int n ){
// 数字 1 的和为 1 ,直接返回
if ( n == 1 ){
return 1 ;
}
// 数字 2 及以上的数字和为 当前数字本身加上它前面所有数字的和
return sum ( n - 1 ) + n ;
}
练习2:使用递归计算 1+2+3+...+100 的和
public static void main ( String [] args )
{
int number = 5 ;
int sum = sum ( number );
System . out . println ( " 数字 1 " + number + " 的和为 :" + sum );
}
}
public static int sum ( int num ) {
if ( num == 1 ) {
return 1 ;
}
return num + sum ( num - 1 );
}
练习3: 使用递归输出 30 位的斐波那契数列
public static int getFibonacci ( int index ) {
if ( index == 1 || index == 2 ) {
return 1 ;
}
return getFibonacci ( index - 1 ) + getFibonacci ( index - 2 );
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值