Java 方法函数(超详解)

方法(函数)

什么是方法呢?

	具有(特定功能)的一段独立的小程序(代码块)

方法的作用?

	1.提高了代码复用性
	2.提高了代码维护性

方法的定义格式?

	修饰符 返回值类型 方法的名字(数据类型 变量名, 数据类型 变量名, ...) {
		执行语句;(该方法的功能的代码实现)
		return 返回值;
	}

如何写一个方法?

	记住两个明确:
		a.明确参数列表
		b.明确返回值类型
		
	修饰符:对于现阶段来说,是固定的,public static 
	
	例子:
		需求:定义一个方法,该方法的功能是获取两个整数之和的
			public static int getSum(int i, int j) {
				int sum = i + j;
				return sum;
			}

如何使用方法呢?

	方法只有被调用才会执行

怎么调用?

		1.单独调用:方法名(参数);
			注意:如果方法的返回值类型为void的时候,只能使用单独调用
				  如果方法有具体返回值的时候,使用单独调用没有任何意义
		
		2.输出调用:System.out.println(方法名(参数));
			注意:如果方法的返回值类型为void的时候,不能使用输出调用
		
		3.赋值调用:数据类型 变量名 = 方法名(参数);
			注意:如果方法的返回值类型为void的时候,不能使用赋值调用

常见的方法的返回值类型都有哪些?

	//定义返回值类型为void的方法
	public static void kkk() {
		return;
	}
	
	//定义返回值类型为数组类型的方法
	public static int[] jjj() {
		int[] arr = {1,2,3};
		return arr;
	}
	
	//定义返回值类型为String(字符串)类型的方法
	public static String iii() {
		return "约吗";
	}
	
	//定义返回值类型为char类型的方法
	public static char hhh() {
		return 'a';
	}
	
	//定义返回值类型为boolean类型的方法
	public static boolean ggg() {
		return false;//true
	}
	
	//定义返回值类型为float类型的方法
	public static float eee() {
		return 12.5F;
	}
	
	//定义返回值类型为double类型的方法
	public static double fff() {
		return 12.5;
	}
	
	//定义返回值类型为byte类型的方法
	public static byte aaa() {
		return 12;
	}
	
	//定义返回值类型为short类型的方法
	public static short bbb() {
		return 12;
	}
	
	//定义返回值类型为int类型的方法
	public static int ccc() {
		return 12;
	}
	
	//定义返回值类型为long类型的方法
	public static long ddd() {
		return 12L;
	}

我们在使用方法的时候需要注意哪些问题?

	1.方法与方法是平级关系,所以不能嵌套定义
		public static int aaa() {
			public static int bbb() {
				return 1;
			}
		
			return 1;
		}//错误
		
	2.方法的返回值类型和返回值要匹配
		public static int aaa() {
			return 1;
		}
		
		public static double aaa() {
			return 1;
		}
		
		public static int bbb() {
			return 'a';
		}
		
		public static int ccc() {
			return (int)1.2;
		}
		
	3.当方法没有具体的返回值的时候,返回值类型就为void
	
		public static void aaa() {
			return ;
		}
	
		void:没有什么特殊的含义,而且只能写在返回值类型的位置上,代表该方法没有返回值
		
		注意:当方法的返回值类型为void的时候,return关键字是可以省略不写的
			public static void aaa() {
				//return;
			}

return关键字有什么用呢?

			1.可以返回具体的数据,哪里调用返哪里
			2.作为方法的结束标记
				public static void aaa() {
					return;
					System.out.println("约吗");//编译报错,因为这行代码永远执行不到
				}
		
				public static int aaa() {
					if(2 > 1) {
						return 1;
					}
				}//编译报错,因为如果没有进if,就执行不到return,就没有结束标记,也不会返回一个数据了

基本数据类型值传递和引用数据类型值传递的问题?

	案例一:
		public class Demo08 {
			public static void main(String[] args) {
				int i = 1;
				int j = 2;
				System.out.println(i + "..." + j);//1...2
				aaa(i, j);
				System.out.println(i + "..." + j);//1...2 
				i = i + 1;
				j = j + 1;
				System.out.println(i + "..." + j);//2...3
			}
			
			public static void aaa(int i, int j) {
				System.out.println(i + "..." + j);//1...2
				i = i + 1;
				j = j + 1;
				System.out.println(i + "..." + j);//2...3
			}
		}
		
	案例二:
		public class Demo09 {
			public static void main(String[] args) {
				int[] arr = {12,13,14};
				
				System.out.println(arr[0]);//12
				System.out.println(arr[1]);//13
				System.out.println(arr[2]);//14
				
				aaa(arr);
				
				System.out.println(arr[0]);//1
				System.out.println(arr[1]);//2
				System.out.println(arr[2]);//3
			}
			
			public static void aaa(int[] arr) {
				System.out.println(arr[0]);//12
				System.out.println(arr[1]);//13
				System.out.println(arr[2]);//14
				
				arr[0] = 1;
				arr[1] = 2;
				arr[2] = 3;
				
				System.out.println(arr[0]);//1
				System.out.println(arr[1]);//2
				System.out.println(arr[2]);//3
			}
		}
		
	形式参数:形参,在定义方法的时候,小括号里的变量就是形式参数
	实际参数:实参,在调用方法的时候,传递里面的数据就是实际参数

方法的重载(Overload)?

	什么是方法的重载呢?
		是指在同一个类中,出现两个方法的名字相同,参数列表不同(参数的个数不同,数据类型不同,
		对应的顺序位置不同)的两个方法,就称为方法的重载
		
		方法的重载和返回值类型无关
		
	例子:
		public class Demo01 {
			public void aaa() {
			
			}
			
			public void aaa(int i) {
	
			}
			
			public void aaa(int i, int j) {
				
			}
			
			public void aaa(double a, double b) {
				
			}
			
			public void aaa(int i, double a) {
				
			}
			
			public void aaa(double a, int i) {
				
			}
			
			/*public void aaa(double x, int y) {
				
			}*/
			
			
			/*public int aaa(double a, int i) {
				return 1;
			}*/
			
			/*
			public void aaa() {
			
			}
			*/
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜龙的小博站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值