导图社区 方法
这是一篇关于方法的思维导图,主要内容包括:一.方法的简介,二.方法的执行过程,三.方法返回值,四.方法调用和内存结构,五.方法返回值情况的区分,六.方法的案例,七.java方法按值传递,八.方法重载,九.可变参数,十.return的特殊用法。
编辑于2025-04-24 14:18:18方法
一.方法的简介
1.方法的好处
1.简单易复用 对相同的代码
2.使逻辑清晰
3.实现细粒度设计
2.方法的定义
1.写法:修饰符 返回值类型 方法名(参数类型 参数名){
3.方法的调用
1.形参 如:public static void attack(String style){}
2.实参 通过主方法调用 如:attack("小兵");
二.方法的执行过程
package exercise; public class Student { public static void main(String[] args) { //程序入口 System.out.println("进入主方法"); attack("小兵",5);//实参 attack("炮车",10); } public static void attack(String type,int q){//形参 System.out.println("进入攻击方法"); System.out.println(type+"攻击防御塔"); System.out.println("生产"); System.out.println("前进"); System.out.println("瞄准"); System.out.println("开炮"+q); System.out.println("攻击方法结束"); } }
三.方法返回值
1.如:package exercise; import java.util.Scanner; public class Student { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入第一个数:"); int num=scanner.nextInt();//实参 System.out.println("请输入第二个数:"); int num2=scanner.nextInt();//实参 System.out.println("计算结果:"+mathNum(num,num2)); } //实现完成两个整数的和的计算 public static int mathNum(int a,int b){//形参 return a+b; } }
四.方法调用和内存结构
package exercise; public class Student { public static void main(String[] args) { System.out.println("欢迎来到王者荣耀!"); System.out.println("开始攻击防御塔"); attack_tower(); System.out.println("Victory"); } public static void attack_tower(){ product(); move(); attack(); } public static void product() { System.out.println("叮叮"); System.out.println("生产小兵"); } public static void move(){ System.out.println("亢亢"); System.out.println("小兵向前走"); } public static void attack(){ } }
五.方法返回值情况的区分
Java方法是否需要返回值,取决于是否需要将处理结果传递回调用者,与是否通过主方法传递参数无关。
六.方法的案例
1.package exercise; public class Student { public static void main(String[] args) { //完成求整数a的b次方 System.out.println(num(5,3)); } public static int num(int a,int b){ int sum=1; for (int i = 1; i <=b; i++) { sum*=a;//1*5*5*5 } return sum; } }
2.package exercise; public class Student { public static void main(String[] args) { //完成求大于等于给定浮点数的最小整数值 就是如果是3.5 4 5 6 最小整数:4 System.out.println(num(-3.5)); } public static int num(double a){ int b=(int)a; if(a==b){ return (int)a; }else if(a>0&&a!=b){ return (int)(a+1); }else{ return (int)a; } } }
3.package exercise; public class Student { public static void main(String[] args) { //完成求一组数字的和 int []a={12,23,43,123,23,125,6}; System.out.println(num(a)); } public static int num(int [] x){ int sum=0; for (int i : x) { sum+=i; } return sum; } }.
七.java方法按值传递
1.基本数据类型传递
package exercise; public class Student { public static void main(String[] args) { int x=10; int y=20; swap(x,y); System.out.println("x(2)"+x); System.out.println("y(2)"+y); } public static void swap(int x,int y){ int temp=x; x=y; y=temp; System.out.println("x(1)"+x); System.out.println("y(1)"+y); } }
2.引用数据类型传递
package exercise; public class Student { public static void main(String[] args) { int x[]={1,2,3}; System.out.println(x[0]); swap2(x); System.out.println(x[0]); } public static void swap2(int []x){ x[0]=100; } }
String除外
八.方法重载
1.要求:
1.方法名必须相同
2.访问修饰符可以相同也可以不同
3.返回值类型可以相同,也可以不同
4.参数列表必须不同
1.参数个数不同
2.参数类型不同
3.参数的顺序不同(不推荐)
意思就是用这些要求 使用相同的方法名来创建不同的机制
2.好处: 就是我在研发的过程中,我只需要记住一个方法的名称就可以调用,我比如输入一个int的类型它就会通过你的类型值来调用匹配的方法
3.方法重载的案例
package exercise; public class Student { public static void main(String[] args) { calculate(5); calculate(3,6); calculate(4,3,5); } //定义三个方法分别来计算 圆的面积r 三角形的面积a b c 长方形的面积 l w public static void calculate(int r){ double a=3.14*r*r; System.out.println("三角型的面积:"+a); } public static void calculate(int a,int b,int c){ //海伦公式 double q=(a+b+c)/2; double e=Math.sqrt(q*(q-a)*(q-b)*(q-c)); System.out.println("三角型的面积:"+e); } public static void calculate(int l,int w){ System.out.println("长方形的面积:" +l*w); } }
九.可变参数
1.写法: 类型...变量名( int...x)
如果在参数列表中有其他参数和可变参数,这个可变参数必须在最后一个出现,并且只能存在一个
package exercise; public class Student { public static void main(String[] args) { add(12,23,4333,12212,1,31312); } public static void add(int ...x){ for (int i : x) {//遍历所有x的值 System.out.println(i); } for (int i = 0; i < x.length; i++) { System.out.println(x[i]); } } }
3.可变参数是兼容数组类型的
package exercise; public class Student { public static void main(String[] args) { int []a=new int[]{12,2,3,4}; add(a); } public static void add(int ...x){ for (int i : x) {//遍历所有x的值 System.out.println(i); } } }
4.数组参数是不兼容可变参数的
package exercise; public class Student { public static void main(String[] args) { add(12,32); // 报错 } public static void add(int[] a){ for (int i : a) {//遍历所有x的值 System.out.println(i); } } }
5.如果有固定参数还有可变参数时,会优先调用固定参数
package exercise; public class Student { public static void main(String[] args) { add(1,2);//固定方法 add(1,2,23,12);//可变方法 } public static void add(int... a){ System.out.println("可变参数"); } public static void add(int a,int b){ System.out.println("固定参数"); } }
6.注意;可变参数方法和数组参数方法不能重载,他俩会被认为是一个方法
十.return的特殊用法
1.用法:结束当前方法,回到主调方法,后面的语句都不会在执行
2.写法 return;
package exercise; public class Student { public static void main(String[] args) { check(5); } public static void check(int age){ if (age<6) { System.out.println("不可以正常上学"); return;//结束当前方法,回到主调方法,后面的语句都不会在执行 } System.out.println("可以正常上学"); } }