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方法中如果调用了别的方法,就把别的方法也入栈

相关推荐
zaim141 分钟前
计算机的错误计算(一百一十四)
java·c++·python·rust·go·c·多项式
学习使我变快乐1 小时前
C++:const成员
开发语言·c++
500了2 小时前
Kotlin基本知识
android·开发语言·kotlin
hong_zc2 小时前
算法【Java】—— 二叉树的深搜
java·算法
进击的女IT3 小时前
SpringBoot上传图片实现本地存储以及实现直接上传阿里云OSS
java·spring boot·后端
Miqiuha3 小时前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐4 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
不知所云,4 小时前
qt cmake自定义资源目录,手动加载资源(图片, qss文件)
开发语言·qt
数云界4 小时前
如何在 DAX 中计算多个周期的移动平均线
java·服务器·前端
安冬的码畜日常4 小时前
【玩转 JS 函数式编程_006】2.2 小试牛刀:用函数式编程(FP)实现事件只触发一次
开发语言·前端·javascript·函数式编程·tdd·fp·jasmine