Java方法

Demo1,java方法的介绍

/**
 * 什么是方法?
 * 方法就是把一堆需要反复执行的业务逻辑代码封装起来,如果程序需要使用这段代码的时候,我们直接调用方法即可,
 * 就不需要返回的去写重复的代码了
 * 好处:
 * 提高代码的重用性,维护性,可读性好,执行效率
 * 
 * 可以把方法比喻一个榨汁机
 * 材料:水果
 * 产出物:果汁
 * 
 * 映射到java程序中:
 * 材料(参数):进入方法的数据
 * 产出物(返回值):方法根据参数处理后的结果
 * 
 * 怎么定义一个方法?
 * 访问修饰符 [static] 方法的返回值类型 方法名(形参列表){
 *    逻辑代码块;
 *    return 返回值;
 *
 * }
 * 
 * 1.访问修饰符(权限修饰符)
 * public:公共的,在当前项目下的任何地方都可以访问
 * private:私有的,能在当前类下面访问
 * protected:受保护的,在同一个包或者其他派生类中可以访问
 * default:缺省,只能在当前包下面进行访问
 * 
 * 2.方法的返回值类型:方法执行完成以后最终产生的结果是什么类型的
 * 3.方法名
 *   自己定义的名字,首字母小写,驼峰式命名法      getStudentById
 * 4.形参列表 :由多个形参组成的列表  (int a,int b)
 * 形参:用于接收调用者实际传过来的数据
 * 
 * 5.return:
 * (1)把方法最终处理的结果返回给调用者  (2)结束当前方法
 * 注意:返回的数据类型必须要和返回值类型一致
 */

public class Demo1 {

	//一个静态方法里面只能调用静态方法或者静态变量
	public static void main(String[] args) {
		//调用方法
		//定义一个变量去介绍方法的返回结果
		//注意:变量的数据类型必须和方法的返回值类型一致
		int result=sum(10,20);//实参
		System.out.println("a+b的和为:"+result);

	}
	
	/**
	 * 计算a+b的和
	 *  返回值类型:int
	 *  方法名
	 *  形参: int a  int b
	 */
	public static int sum(int a,int b){//形参
		System.out.println("方法执行了");
		int result=a+b;
		return result;
		
	}

}

 

Demo2,无返回值的方法

/**
 * 无返回值的方法:
 * 方法执行一些操作,没有把执行结果返回给调用者,只是执行了方法的方法体
 * 
 * 访问修饰符 [static] void 方法名(形参列表){
 *   方法体;
 *   //return;可写可不写 ,一般不写
 * }
 *
 */

public class Demo2 {

	public static void main(String[] args) {
        studyHard();
	}
	
	//打印10遍好好学习
	public static void studyHard(){
		for(int i=1;i<=10;i++){
			System.out.println("好好学习"+i);
		}
	}
}

 

Demo3,方法中参数传递,基本数据类型(包括String)和引用数据类型(不包括String)的区别

/**
 * 参数传递:调用者在调用方法的时候,向方法内传入数据的一系列动作
 * 形参:在【定义】方法时候,写在小括号里面的参数,作用接受调用者传递的数据
 * public static int sum(int a,int b){//形参
 * 实参:在【调用】方法的时候,真正传递到方法的数据
 * int result=sum(10,20);//实参
 * 
 * 参数传递,有两种类型
 * 基本数据类型(以及String):形参的操作不会影响实际的参数
 * 引用数据类型:(除了String以后):形参的操作会影响实际参数
 * 
 *
 */

public class Demo3 {

	public static void main(String[] args) {
		int a=10;
		int b=20;
		System.out.println("a="+a);//10
		System.out.println("b="+b);//20
		//调用方法
		change(a, b);
		
		System.out.println("===================");
		System.out.println("a="+a);//10
		System.out.println("b="+b);//20
	}
	
	//定义一个方法,把形参扩大10倍
	public static void change(int a,int b){
		a*=10;
		b*=10;
		System.out.println("a="+a);//100
		System.out.println("b="+b);//200
	}
}

 

Demo4,参数传递,引用数据类型(String除外)

public class Demo4 {

	public static void main(String[] args) {
		int[] arr={10,20};
		System.out.println(arr[0]);//10
		System.out.println(arr[1]);//20
		
		System.out.println("=========");
		change(arr);
		
		System.out.println("============");
		System.out.println(arr[0]);//100
		System.out.println(arr[1]);//200

	}
	
	public static void change(int[] arr){
		arr[0]*=10;
		arr[1]*=10;
		System.out.println(arr[0]);//100
		System.out.println(arr[1]);//200
	}

}

 

Demo5,Demo6,方法重载

public class Demo5 {

	public static void main(String[] args) {
		int sum1=sumTwo(10, 20);
		int sum2=sumThree(10, 20, 30);
		System.out.println("sum1="+sum1);
		System.out.println("sum2="+sum2);

	}
	
	//计算a+b的和
	public static int sumTwo(int a,int b){
		return a+b;
	}
	
	//计算a+b+c的和
	public static int sumThree(int a,int b,int c){
		return a+b+c;
	}
	
	//...

}

/**
 * 对于类似累加的操作,因为我形参列表不同,所以我定义了多个方法名
 * 弊端:
 * 1.麻烦
 * 2.代表调用者需要记住多个方法名,如果方法名过多,有可能出现调用错误的情况
 * 
 * 可不可把这些类似操作起一个一个方法名可以吗,
 * 可以,使用方法重载
 * 
 * 什么是方法重载呢?
 * 方法名必须相同,参数列表必须不相同
 * 什么是参数列表:
 * 1.参数列表的个数不同
 * 2.参数类型不同
 * 3.参数类型的顺序不同
 *  注意:方法重载和返回值类型无关
 */

public class Demo6 {

	public static void main(String[] args) {
		int num1=sum(10,20);
		int num2=sum(10,20,30);
		System.out.println("num1="+num1);
		System.out.println("num2="+num2);

	}
	
	//计算a+b的和
	public static int sum(int a,int b){
		return a+b;
	}
	
//	public static int sum(int c,int d){//不是方法重载  和参数名没有任何关系,参数只是一个名字
//		return c+d;
//	}
	
//	public static double sum(int c,int d){//不是方法重载
//		return c+d;
//	}
	
	public static double sum(int a,double b){//正确
		return a+b;
	}
	
	public static double sum(double a,int b){//是
		return a+b;
	}
//	public static double sum(int b,double a){//不是
		return a+b;
//	}
	
	//计算a+b+c的和
	public static int sum(int a,int b,int c){
		return a+b+c;
	}
	
	
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值