JavaSE篇学习之路:(四)【函数or方法】

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 JavaSE篇学习之路:(四)【函数or方法】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

第一章:函数or方法

1.1什么是方法?

方法定义就是具有特定功能的一段 独立小程序,可以被多次使用
实现代码复用,提高复用性。
定义函数过程:

  1. 是一个封闭区间,需要大括号封装。
  2. 需要给这个区间起名字,以后多次使用该区间。
  3. 为区间提供数据的输入,以便使用额外数据进行运算。
  4. 需要定义结果类型。

2.1定义方法的语法机制?

[修饰符列表]  返回值类型 方法名(形参列表){
			方法体;
			 return 返回值;
	// return 关键字用于结束,并将返回值返回给调用者
    // 注意如果 返回值类型为void 可以省略return 其他情况下 return必有 并且return后面不能再有语句
   }

1.关于修饰符列表:(可选项,public,private等)
2.关于返回值类型:
①Java中的合法数据类型。(基本and 引用)
②返回值类型:一般指,一个方法执行结束后的数据结果。
③void表示方法执行结束后不返回任何结果。
④如果返回值类型不是void,必须使用”return 值;”
⑤有return执行,当前方法必然结束。
3.方法名:见名知意。首字母小写后面每个单词首字母大写。
4.形参:形参列表中,每个数据为局部变量,方法结束后释放。

代码演示:

	public class Demo06 {

    public static void main(String[] args) {
        int sum =  add(3,4);
        System.out.println("sum = "+sum);
    }
    public static int add(int num01,int num02){
       return  num01 + num02;
    }
}

3.1方法内存加载的过程

public class Demo06 {

    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        int sum =  add(a,b);
        System.out.println("sum = "+sum);
    }
    public static int add(int num01,int num02){
       return  num01 + num02;
    }
}

说明:

1. JVM加载main方法进入 栈内存 中,并执行main的方法。执行到4 、5行先给a、b开辟空间,并赋值。
2. 第6行,先将add函数压进 栈内存 中,执行add函数。在add函数所属空间里 再开辟两片空间给num01和num02,接收main传来的值 3,4.
3. 执行add函数,并将结果return给main中调用的地方,然后add函数弹栈。
4. main方法将add函数执行的结果给sum变量。然后继续进行。全部执行完,main方法弹栈。

第二章:方法重载

java为我们提供了重载这个功能,使用重载就可以解决某个功能不同场合的泛用性,一个函数的多个版本。

1.1重载的概念

在一个类中,允许存在一个以上同名函数,只要他们的参数列表(个数和类型)不同。就形成了重载,函数重载和返回值无关。
(功能相似的代码,使用相同代码名。)

2.1方法重载的条件

1.必须在同一个类中。
2.方法名相同。
3.参数列表不同。(个数不同,类型不同,顺序不同)
println就是一个方法,使用重载!!

代码演示:

public class Demo07 {
    // 方法{}里的内容为方法体
    public static int computer(int a,int b){
        return a+b;
    }

    public static int computer(int a, int b ,int c){
        return a+b+c;
    }

    public static double computer(double a, double b){
        return a/b;
    }

//    public static double computer(double num01, double num02){
//        return 0;
//    } 函数的参数是一种形式参数

//    public static int computer(double a, double b){
//        return (int)a/b;
//    }
    public static void main(String[] args) {
        computer(2.3,1.7); // JVM不知道调用结果的 如果重载跟返回值有关 调用时就会产生歧义
        computer(1.0,2.0); // 参数名也是不会认为是参数列表的属性,名称只是形式,所以参数列表里的参数名全是形式参数
    }
}

重载练习:下面方法有没有使用重载?

void show(int a,float b,char c){} 为蓝本

1. int show(int x,float y,char z) 没有
2. void show(float b,int a, char c)3. void show(int c,float a,char b) 没有
4. void show(int a,int b,int c)5. double show()

一起学习,快乐编程,欢迎攻城狮们多多交流

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/144953.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!