Java中的 方法

一、什么是方法

  • 在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法。

  • 在java中,方法就是用来完成解决某件事情或实现某个功能的办法。

  • 对于以程序来说,方法是完成特定功能的、相对独立的程序段。

方法的特征是 =>()

二、方法的分类

(1)系统方法

在Java中,系统拥有自带的系统方法

例如

System.out.println()
Arrays.toString()

这些方法都是Java开发工具包( jdk )提供好的系统方法

(2)自定义方法

自定义方法是我们根据需求,自定义出能完成特定功能,解决问题的程序段

自定义方法的构成:

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

例如:

public static void play(){
    
}
public String play(Sting str){
    
}

三、使用方法

(1)使用方法

jglz.jpeg

分别输入两个学生的语文和数学成绩,然后分别计算两人总分。

未使用方法的做法:

public static void main(String[] args) {
    int chinese = 0;
    int math = 0;
    int sum = 0;
    //第一名学生成绩
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入语文成绩");
    chinese = scanner.nextInt();
    System.out.println("请输入数学成绩");
    math = scanner.nextInt();
    sum = chinese + math;
    System.out.println("第一名学生总成绩为:"+sum);
    //第二名学生成绩
    System.out.println("请输入语文成绩");
    chinese = scanner.nextInt();
    System.out.println("请输入数学成绩");
    math = scanner.nextInt();
    sum = chinese + math;
    System.out.println("第二名学生总成绩为:"+sum);
}

我们可以看到,相同的代码我们用了两遍,就很冗余,而方法就是能够帮助我们提高代码的复用率,让我们的代码更加的简洁高效。

使用了方法的代码

public static void getSum(){
    int chinese = 0;
    int math = 0;
    int sum = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入语文成绩");
    chinese = scanner.nextInt();
    System.out.println("请输入数学成绩");
    math = scanner.nextInt();
    sum = chinese + math;
    System.out.println("学生总成绩为:"+sum);
}

public static void main(String[] args) {
   getSum();
   getSum();
}

上面的代码中,我们使用了getSum()方法来获得学生的总成绩,每调用一次方法,就可以得到一个学生的总成绩,减少了代码冗余。

但是,方法定义遵循功能单一原则,也就是一个方法只做一件事。所以,上面的代码是有缺陷的。既有获得总分,又要输出,这是两件事。

(2)设计方法的返回值

如果主调方法需要知道被调方法的处理结果,那么被调方法就需要设计成有返回值的方法

返回值的设计

  1. 在方法名前面写返回值的类型
  2. 在方法体内部使用return语句返回数据
  3. 主调方法通过赋值语句将方法返回值赋给变量
  4. 一个方法只能返回一个值

在上边的例子中,我们发现了方法要遵循功能单一原则,那么我们就不能把输出放在getSum()方法里了。

我们可以单独为输出设计一个方法,在main方法里面输出也行,但是都要求我们知道被调方法的返回值

//被调方法
public static int getSum(){
    int chinese = 0;
    int math = 0;
    int sum = 0;
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入语文成绩");
    chinese = scanner.nextInt();
    System.out.println("请输入数学成绩");
    math = scanner.nextInt();
    sum = chinese + math;
    return sum;
}
//主调方法
public static void main(String[] args) {
    System.out.println("第一位学生成绩为"+getSum());
    System.out.println("第二位学生成绩为"+getSum());
}

我们从主调方法的输出语句中调用被调方法,得到了被调方法的返回值sum总分。

(3)方法中常见的问题

(1)如果方法定义为void,表示不返回值,此时return后面不允许写返回的数据

(2)方法返回值定义了返回什么类型的值,就必须使用return返回什么类型的值。

(3)当方法没有返回值时,不允许主调方法接收返回值。

(4)返回数据的类型要与返回值类型一致。

(5)使用if语句时,如果条件a>0,语句内return,但是没有写出<=0的条件,则会出现错误,必须要讲条件都考虑到。

(6)方法遇到return后就结束了方法,后面的语句没有机会执行。

(4)形式参数与实际参数

主调方法提供的参数是实际参数

被调方法接收数据的参数是形式参数

主调方法的实参传递给被调方法的形参。按照个数,顺序依次赋值

(5)方法参数引用类型和基本数据类型的区别

传递基本类型参数时:

当方法调用时,若传递基本类型的值,那么在被调方法内部修改了形参的值,则在主调方法中的实参不受影响。

传递引用类型参数时:

当方法调用时,若传递引用值(内存地址),那么在被调方法内部修改了形参指向内存空间的值,那么主调方法中的实参指向空间的值也被修改了。

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

推荐阅读更多精彩内容

  • 目录结构 ⭕1. 方法概述⭕2. 方法分类(实例方法和类方法)⭕3. 值传递方法⭕4. 实参与形参⭕5. 传递方法...
    八匹马zbj阅读 58评论 0 1
  • 1. 方法概述 1.1 方法的概念 ​ 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有...
    黑夜中的黑眼睛阅读 221评论 0 1
  • 方法概述 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块作用:封装重复逻辑,逻辑更清晰语法格式: ...
    若兮缘阅读 367评论 0 9
  • 1.什么是方法? Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序集合方法包含于类...
    桧柒阅读 237评论 0 0
  • Java中的方法 Java中的方法 方法声明 类的方法必须包含以下3个部分。 1:方法的返回值类型 2:方法的名称...
    Chinawmj阅读 171评论 0 0