Java入门(四)——方法

Java入门(四)——方法

目录

方法

基础语言

定义

JVM内存分配:

重载机制overload:

递归调用

范例代码


方法

可以完成特定的功能,并能重复调用【在C语言中称为函数,具体作用相似】
      - 基础语言
      - JVM内存分配
      - 重载机制overload
      - 递归调用

基础语言

定义

 [修饰符列表] 返回值类型 方法名 (形式参数列表){
               方法体;
           }


           * 修饰符列表:
                - 可选项,不是必须的。
                - 目前统一写成:public static
                - 方法名的修饰列表中有static关键字的话,调用方法: 类名.方法名(实际参数);
           * 返回值:
                - 指完成特定功能之后,需要返回的最终结果,可以是准确的数据,也可以不是。
                - 返回值类型:指返回一个具体存在的数据的数据类型。任意一种类型都可以
                - 如果方法结束后需要返回任何数据,则采用"void"关键字。void类型之后如需用return,只能写成"return;",不能添加值。
                - 若不是void类型的话,则必须添加"return 值;",而且值的类型需要和返回值类型一致。
           * 方法名:
                - 见Java入门(二)——数据类型中的标识符
           * 形式参数列表:(形参)
                - 形参是局部变量,只在方法中调用。可以无限个,用","隔开

 - 方法定义在类中,方法中不能在定义方法,有java语构成,自上而下执行。
 - return :表示方法执行结束。
 - 编译器会识别是否能到达return值,如果不能则编译报错

JVM内存分配:

方法只定义,不调用的时候,JVM中也不会给该方法分配“运行所属”的内存空间
      * 主要的内存空间:
           - 方法区内存:存放需要调用的类文件,e.g:String.class / System.class(类似C语言的源文件),以及自己编写的Java的class文件。即临时存放的方法的存放点。
           - 堆内存
           - 栈内存:(原理是数据结果的栈知识点)先执行主方法,随后看是需要调用其他方法,使其他方法依次进入栈中运行,运行完后按栈的原理退出。
 

重载机制overload:

条件:
      - 在同一类中
      - 方法名相同
      * 参数列表不同:
                - 数量不同
                - 顺序不同
                - 类型不同
      - 功能相似,但不一样。
方法重载机制和方法名+参数列表有关,与返回值类型、修饰符列表无关

递归调用

自身方法调用 【与数据结构的递归一致】

递归调用:
           a(){
                a();
           }
      - 递归很消耗栈内存,如果可以不用尽量少用
      - 若出现栈内存溢出,即死循环没有结果或过深的递归,则会导致JVM停止工作。出现java.lang.StackOverFlowError
 

范例代码

public class Method {
	
	public static void main(String[] args) {//主方法
		java.util.Scanner s =new java.util.Scanner(System.in);
		System.out.print("请输入数字:");
		int num = s.nextInt();
		Method.eg1(num);//方法的调用
		
		System.out.println("---------------------。");
		
		sum(4 , 6);//重载机制
		sum(4.0 , 6.0);
		sum(4 , 6.0);
		
		System.out.println("---------------------。");
		
		int a=sum1(9);
		System.out.println(a);//递归调用
	}
	
	public static void eg1(int num1) {//方法
		int resultNum=0;
		for(int i=2 ; i<num1 ; i++) {
			resultNum = num1 % i;
			if(resultNum == 0) {
				System.out.println("这个数字不是素数。");
				break;
			}
		}
		if(resultNum != 0)
			System.out.println("这个数为素数。");
		return;
	}
	
	public static void sum(int a,int b){
		int sum;
		sum=a+b;
		System.out.println("sum1="+sum);
	}
	public static void sum(double a,double b){
		double sum;
		sum=a+b;
		System.out.println("sum2="+sum);
	}
	public static void sum(int a,double b){
		double sum;
		sum=a+b;
		System.out.println("sum3="+sum);
	}
	
	public static int sum1(int n) {
		int sum=0;
		if(n>0)
	     	sum=n+sum1(n-1);
		return sum;
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值