Java基础-基础语法-方法

Java工程师知识树 / Java基础

1、什么是方法(Method)?

方法是一组为了实现特定功能的代码块的集合

方法在语法上的功能主要有以下两个

①:结构化代码 将代码按照功能进行组织,使代码的结构比较清晰,容易阅读和修改,也就是程序的可维护性强。 ②:减少代码重复 一个固定的功能,可能会在程序中多次使用,在使用时只需要调用写好的方法,而不用重复书写对应的功能代码。

方法在书写时需要注意以下两点

①:逻辑严谨 方法实现的一个完整的功能,所以在书写时要考虑到各种可能的情况,并对每种情况做出恰当的处理。 ②:通用性强(可重复利用) 方法实现的是一种功能,在实际实现时,可以根据需要,使方法具备一定的通用性,除非必要,否则不要写专用的方法。在Java 语言中,恰当的使用方法,将使程序更加优雅,便于阅读和使用。

总结

方法:一段可重复使用的代码段; 程序中完成独立功能的一段代码的集合。

2、Java中方法的格式:

[修饰符] 返回值类型 方法名([参数类型 形式参数1,参数类型 形式参数2,……]) { 执行语句; [return 返回值;]//需要的话 }

方法的参数列表(参数的类型 ,参数的个数,参数的顺序)。只要上述有一个不一样,那么这个参数列表就不一样!

3、方法里的属性

  • 访问控制符:访问控制符限定方法的可见范围,或者说是方法被调用的范围。 方法的访问控制符有四种,按可见范围从大到小依次是:public、protected,无访问控制符,private。其中无访问控制符不书写关键字即可。具体的范围在后续有详细介绍。

  • 形式参数:在方法被调用时用于接收外界输入的数据。

  • 实参:调用方法时实际传给方法的数据。

  • 返回值:方法在执行完毕后返还给调用它的环境的数据。

  • 返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回类型 void。

  • 方法签名:方法名和方法的参数列表(能区别方法);//最关键的

  • java语言中调用方法:对象名.方法名(实参列表)。实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配。

  • return:语句终止方法的运行并指定要返回的数据。

4、方法特点

  • 它可以实现独立的功能;

  • 必须定义在类里面;

  • 它只有被调用才会执行;

  • 它可以被重复使用;

  • 方法结束后方法里的对象失去引用;

如何定义一个功能,并通过方法体现出来:

  1. 明确该功能运算后的结果.明确返回值类型;

  2. 明确在实现该功能过程中是否有未知内容参与运算,确定参数列表;

5、变量作用域

变量的范围是程序中该变量可以被引用的部分。 方法内定义的变量被称为局部变量。 局部变量的作用范围从声明开始,直到包含它的块结束。 局部变量必须声明才可以使用。 方法的参数范围涵盖整个方法。参数实际上是一个局部变量。 for循环的初始化部分声明的变量,其作用范围在整个循环。但循环体内声明的变量其适用范围是从它声明到循环体结束。它包含如下所示的变量声明:

image.png

你可以在一个方法里,不同的非嵌套块中多次声明一个具有相同的名称局部变量,但你不能在嵌套块内两次声明局部变量。

6、构造方法

特定:构造方法和它所在类的名字相同,但构造方法没有返回值。

用处:当一个对象被创建时候,构造方法用来初始化该对象。

原因:通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。

备注:不管你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个默认无参数的构造方法,它把所有成员初始化为0。 一旦你定义了自己的构造方法,默认构造方法就会失效。

7、什么是方法的重载(Overload)

概念: 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型或参数顺序不同即可。

存在的原因: 屏蔽了一个对象的同一类方法由于参数不同所造成的差异。

特点: 与返回值类型无关,只看参数列表。

特别说明

  • Java编译器根据方法签名判断哪个方法应该被调用。

  • 方法重载可以让程序更清晰易读。

  • 执行密切相关任务的方法应该使用相同的名字。

  • 重载的方法必须拥有不同的参数列表。

  • 不能仅仅依据修饰符或者返回类型的不同来重载方法。

以下是方法重载的示例

public void a(int a){}
public int a(){}
public void a(int a,String s){}

我的总结:方法重载,方法名相同,但是参数列表不一致!(和方法覆写(方法重写)不一样,方法覆写(方法重写)的方法名和参数列表都必须一样),注意方法重载和方法覆写(方法重写)的不同!

8、可变参数

从java5开始出现了可变参数,这是对java方法及数组的拓展!方法中可以接受的参数不再是固定个数的,而是随着具体需求传递的多少来决定。

定义格式: 返回值类型 方法名(参数类型 ... 形式参数){ }

可变参数的特点

  • 只能出现在参数列表的最后;

  • ... 位于变量类型和变量名之间,前后有无空格都可以;

  • 调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

9、方法递归调用

方法的递归调用指的是一个方法自己调用自己的形式。一般如果要进行方法的递归操作往往都具备有以下的特点:

  • 方法必须有一个递归的结束条件;

  • 方法在每次递归处理的时候一定要做出一些变更.

例如题目:

一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子? 分析如下: 第一个月小兔子没有繁殖能力,所以还是一对; 两个月后,生下一对小兔子,总数共有两对; 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,总数共是三对; ... ...

依次类推可以列出下表:

img

可以得出: 斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、…… 这个数列从第三项开始,每一项都等于前两项之和。

public static int fun(int m) {
    if (m < 2) {
        return 1;
    } else {
        return fun(m - 1) + fun(m - 2);
    }
}

public static void main(String[] args) {
    System.out.println(fun(12));
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容