关于函数部分总结

函数 定义形式:

函数返回值类型 函数名(形参列表)
{
函数体;
return 返回值;
}
1:函数返回值类型:即一个数据类型,可以为int,float,double,char,bool等等,需注意,当函数返回值类型为void时,函数没有返回值。

2:函数名称,命名规则同变量名命名规则,是自定义的,尽量取有意义的函数名称。例,求最大值的函数可以命名为max, 起搜索作用的函数可以命名为search,等等。因为当一个程序较大时,各个函数如果只是简单的a,b,c,会很容易混淆。

3:形参列表,可以将其简单理解为函数 f(x)=ax^2+bx+c(a,b,c为常数),中的x, 既然为列表,则可以有多个传入值,既可以理解为f(x,y,z)=ax+by+c*z+d(a,b,c,d为常数)中的“x,y,z”;当然个数没有限制,亦可以没有传入值,此时可以通过对全局变量的操作来实现函数的功能。具体用法为(数据类型 变量名,数据类型 变量名,数据类型 变量名)。

4:函数体,即对形式参数或全局变量进行操作的一段代码。

5:返回值,一个函数可以有多个return ,但最多只有一个返回值。

java中如何定义函数

访问修饰符 函数返回值的类型|void 函数名称([参数列表]) {
	// 函数体

	// return 返回值;
}

Fibonaci序列:

public class Fibonaci {
    public static void main(String[] args) {
        System.out.println(getFibonaci(10));
    }

    public static int getFibonaci(int n){
        if(n==1||n==2){
            return 1;
        }
        return getFibonaci(n-1)+getFibonaci(n-2);
    }
}

java中函数是属于类的!!必须定义在类中!!!所以说函数是类成员

先把函数都定义静态函数,等学习了面向对象,再定义常规函数!!

java中:静态方法没有办法直接调用非静态方法!!!只能调用静态方法

函数调用:

函数是无法自己执行的!!!必须通过调用才可以执行!!!

函数名称([参数列表]);

函数的分类
有没有参数:

  • 有参函数
  • 无参函数

有没有返回值:

  • 有返回值的函数
  • 无返回值的参数

定义者:

  • 系统函数
  • 第三者
  • 自定义函数

局部变量:
局部变量(本地变量):定义在函数中的变量叫做局部变量

函数在内存的调用的本质:

  • 栈:
    
  • 队列: 
    
  • 执行栈:
    
  • 函数怎么调用
    
  • 局部变量
    

函数重载(overload):

什么是函数重载
	函数名称相同,函数的参数的个数或者类型不同,调用的时候,自动匹配对应的函数

面试题:
请简述overload(函数重载)、override(覆盖)、overwrite(重写)

思考:
函数重载所有编程语言都有的吗?
函数重载现象是强数据类型语言(java、C、C++、C#)所特有的现象
弱数据类型语言(javascript、python、ruby)是不具备函数重载

递归(recursion):

什么叫做递归:函数自身调用自身

递归时的内存模型:
优点分治理念的体现,可以把非常复杂的问题,简单解决
缺点非常耗费内存,所以说,当栈被全部占用后,触发StackOverflowError异常!!!

**注意,可以使用java -X   -Xss 大小, 来调整JVM的栈大小空间
			-Xms<大小>        设置初始 Java 堆大小
			-Xmx<大小>        设置最大 Java 堆大小**

上楼梯问题:

import java.util.Scanner;

public class Upstairs {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你所要的台阶层数:");
        int n = sc.nextInt();
        f(n);
        System.out.println("共有"+f(n)+"种方法!");
    }

    public static int f(int n){
        if (n<=0){
            return 0;
        }else if(n==1){
            return 1;
        }else if (n==2){
            return 2;
        }else{
            return f(n-1)+f(n-2);
        }
    }
}

Math:

Math类,是JDK内置的类,java.lang.Math
java.lang:这个包,是默认导入的包

随机数:

Math.random()	
Random类	
java.util.Random

String字符串对象:

在java中,被双引号,引主的内容就叫做字符串
字符串在java中不是基本数据,是对象,引用数据类型。
final修饰的,字符串是常量,它们的值不能被创建后改变。支持可变字符串字符串缓冲区。
因为字符串对象是不可改变的,所以它们可以被共享。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值