海牛部落 java 系列教程:(4)方法

教程 青牛 ⋅ 于 2017-09-28 11:01:03 ⋅ 最后回复由 Lexilearning 2022-02-08 17:20:44 ⋅ 18063 阅读

1 认识方法

1.2 什么是方法?
方法就是C语言里的函数,是一个独立的功能模块。
1.3 为什么需要方法?
每个方法都有自己独立的功能,可以将功能代码写在一个方法里,然后调用该方法实现该功能,可以多次调用该方法,提高代码的复用性;还可以减少代码的耦合度。
例如:
比如一个计算器,有加减乘除功能,可以把加减乘除的实现都变成一个方法。当我们输入1 + 2 的时候,系统就会调用加功能的方法,进行加运算;同理当我们输入3+4 的时候,系统还会调用加功能的方法,进行加运算;这样,就达到了代码的复用。
假设有一天需求改变了,加的功能要保留两位小数,只要改实现加法的这个方法就可以了;若刚刚没有把加这个操作分割开,那么只能在对所有代码进行修改,不但找起来麻烦,而且在程序大了之后就会出现很大的问题。

2 方法的定义(声明)

定义方法的语法格式:

file

修饰符:参考属性定义语法里的修饰符
方法返回值类型:返回值类型可以是基本类型也可以是引用类型(讲数组的时候讲)。
如果声明了方法返回值类型,则方法体内必须有一个有效的return语句,该语句返回一个变量或表达式
如果一个方法没有返回值,则必须使用 void 来声明没有返回值
形参列表:可有可无。

1)没有返回值类型的方法定义

file

file

file

file

file

注意:
不能在方法内定义方法,也就是说,定义方法的时候,不能方法套方法。

如果定义的方法有返回值,则方法返回值结果应该返回给调用者,交由调用者处理。

要想定义(声明)一个方法,需要确定什么条件?
1、你定义的这个方法,需要有返回值吗?如果需要返回,返回什么类型的返回值?
2、你定义的这个方法,需要哪些参数传进这个方法中,才能应用该方法?
2 如何调用已定义的方法?

file

如果方法定义的时候没有实参,则调用时不用写实参。
如果方法定义时带有形参,则调用时一定要写,并且实参的数据类型及顺序必须与形参一致。

3 方法参数传递

什么是栈内存?
在方法中定义的一些基本类型的变量和对象的引用变量都是在方法的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。
栈内存速度快,主要用作程序执行。

什么是栈?

file

java里的方法是不能独立存在的,需要被调用才能执行。
如果声明方法时包含了形参声明,则调用方法时必须给这些形参指定参数值,调用方法时实际传给形参的参数值被称为实参。
方法的参数传递:值传递,就是将实际参数值的副本传入方法内,而参数本身不会受到任何影响。
方法参数传递规则

在 Java 中的方法参数传递中,基本类型传值,对象类型传地址(讲数组的时候讲)

示例:
只适用于传参传的是基本类型

file

file

4 方法的重载

回复帖子,然后刷新页面即可查看隐藏内容

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-青牛,http://hainiubl.com/topics/180
本帖由 情爱侣 于 7年前 取消置顶
回复数量: 74
  • chanchangj
    2018-03-26 20:44:45

    学习

  • 奇点
    2018-04-03 14:35:31

    谢谢

  • 2018-04-23 14:24:51

    good

  • Giuliao
    2018-04-25 13:27:35

    感谢博主!

  • 老实人丶
    2018-04-29 16:43:06

    good

  • 暗夜企鹅 若黑夜能够理解我的伤,我就能在黑夜里变更强。
    2018-05-09 10:42:51

    mark,话说博主应该加一下scanner用法说明

  • wolflee86
    2018-05-14 21:36:24

    感谢分享~~~

  • 追求87卓越
    2018-05-21 13:35:28

    学习

  • 追求87卓越
    2018-05-22 12:02:11

    import java.util.Scanner;
    public class Test20{

    public static void main(String[] args){
    
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入n的值:");
    
        int n = sc.nextInt();
    
        //int n = 20;                   
        for(int i = 0;i <= n;i++){
        System.out.println("\n"+"查询到当n="+i+"时的值是:"+"\n"+add(i));
        }   
    }
    
    public static int add(int n){               
    
        if(n == 0 || n == 1)
    
        return n;   
    
        return add(n-1)+add(n-2);
    
    }

    }

  • lingjiao0710
    2018-05-27 13:56:53

    看一下完整内容

  • 陈先生
    2018-06-10 15:41:14

    学习

  • 神之一手
    2018-06-19 09:33:56

    666

  • BertDong
    2018-07-11 15:31:28

    99

  • 2018-07-13 16:04:01

    666

  • 皓月之明
    2018-09-04 11:28:57

    11

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter