Method

Java方法

文章目录

**概念:**特定方法的代码块。(无参数无返回值的方法,带参数的方法,带返回值的方法)

语法规则:

访问修饰符 static 返回值类型 方法名(参数列表){

...代码块/方法体...

}

无参数无返回值的方法

静态方法--无参数无返回值

public static void 方法名(){

...代码块/方法体...

}

java 复制代码
import java.util.Scanner;
public class Test01{
	public static void main(String[] args){
        //调用方试一:
		printStar();
        //调用方式二:
        Test1.printStar();        
	}
	public static void printStar(){
		for(int i = 0;i<5;i++){
			for(int j = 0;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

注意:

  • void 关键字表示无返回值

  • 方法写在类中

  • 方法与方法之间是平级关系(即不能在方法中定义另外一个方法)

  • 方法必须被调用,否则就是个摆设

带参数的方法

静态方法--带参数

语法结构:

public static void 方法名(参数列表){

...代码块...

}

案例一:

java 复制代码
public class Test02{
	public static void main(String[] args){
		printStar(3);
		//printStar('A');//'A' - 65(会输出65行)
	}
	
	public static void printStar(int num){
		for(int i = 0;i<num;i++){
			for(int j = 0;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}	
}

结果:


案例二:

java 复制代码
public class Test02{
	public static void main(String[] args){
		getMax(10,20);
	}
	public static void getMax(int a,int b){
		int max = (a>b)?a:b;
		System.out.println("最大值为:" + max);
	}	
}

结果:


注意:

  • 形式参数/形参:声明方法时规定的参数
  • 形参必须声明类型
  • 形参属于该方法的变量,作用域就在该方法内,形参也是局部变量
  • 局部变量:方法里声明的变量
  • 实际参数/实参:调用方法时传入的数据
  • 实参和形参的类型必须兼容
  • 实参和形参可以有多个,用逗号分割

带返回值的方法

静态方法 -- 带返回值的方法

语法结构:

public static 返回值类型 方法名([参数列表]){

...代码块...

return 数据;//1.结束当前方法 2.将数据返回给调用方

}

案例一:传入两个int值,返回最大值

java 复制代码
import java.util.Scanner;
public class Test03{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入第一个数字:");
		int a = scan.nextInt();
		System.out.println("请输入第二个数字:");
		int b = scan.nextInt();
		int max = getMax(a,b);
		System.out.println("最大值为:" + max);
	}
	
	public static int getMax(int a,int b){
		int max = (a>b)?a:b;
		return max;
	}
}

案例二:传入三个int值,返回最大值

java 复制代码
import java.util.Scanner;
public class Test03{
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入第一个数字:");
		int a = scan.nextInt();
		System.out.println("请输入第二个数字:");
		int b = scan.nextInt();
		System.out.println("请输入第三个数字:");
		int c = scan.nextInt();
		int max = getMax(a,b);
		max = getMax(max,c);
		System.out.println("最大值为:" + max);
	}

	public static int getMax(int a,int b){
		int max = (a>b)?a:b;
		return max;
	}
}

注意:

  • 带返回值的方法有没有参数要看具体需求
  • 声明方法时需要设置返回值类型
  • return后接的是需要返回的具体数据
  • 方法功能单一性(一个方法的功能不要过于强大)
  • 方法声明时规定的返回值类型 和 return后的数据 必须兼容
  • 返回值只能有一个,如果想返回多个值就必须使用数组、集合、...

方法的执行原理

方法被调用的时候,是进入到栈内存中运行,先把main压栈,然后别的方法入栈

接的是需要返回的具体数据

  • 方法功能单一性(一个方法的功能不要过于强大)
  • 方法声明时规定的返回值类型 和 return后的数据 必须兼容
  • 返回值只能有一个,如果想返回多个值就必须使用数组、集合、...

方法的执行原理

方法被调用的时候,是进入到栈内存中运行,先把main压栈,然后别的方法入栈

先把class文件放入方法区加载其字节码文件,接着把main方法放入栈内存,然后执行main方法,main方法中如果调用了别的方法,就把别的方法也入栈

相关推荐
寻星探路3 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
lly2024064 小时前
Bootstrap 警告框
开发语言
2601_949146535 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
曹牧5 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
KYGALYX5 小时前
服务异步通信
开发语言·后端·微服务·ruby
zmzb01035 小时前
C++课后习题训练记录Day98
开发语言·c++
爬山算法6 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty7256 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎6 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄6 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea