复习Java--方法

方法

  • 定义
    方法就是若干语句的功能集合。方法好比一个工厂。
    蒙牛工厂 原料:奶牛,私聊,水
    产出物:奶制品
    参数就是原料,就是进入方法的数据。返回值(产出物),就是从方法中出来的数据。

  • 定义方法的格式:
    修饰符 返回值类型 方法名称(参数类型 参数名称){
    方法体
    return;
    }

  • 格式详解

    • 修饰符: public static 固定写法
    • 返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者
    • 参数列表:方法在运算过程中的未知数据,调用者调用方法时传递
    • return:将方法执行后的结果带给调用者,方法执行到 return ,整体方法运行结束,第一停止当前的方法,第二将后面的返回值还给调用处
  • 定义方法的两个明确

    • 需求:定义方法实现两个整数的求和计算。
      • 明确返回值类型:方法计算的是整数的求和,结果也必然是个整数,返回值类型定义为int类型。
      • 明确参数列表:计算哪两个整数的和,并不清楚,但可以确定是整数,参数列表可以定义两个int类型的 变量,由调用者调用方法时传递
public class Method_Demo2 {     
		public static void main(String[] args) {
         // 调用方法getSum,传递两个整数,这里传递的实际数据又称为实际参数         
         // 并接收方法计算后的结果,返回值              
         int sum = getSum(5, 6);         
         System.out.println(sum);     }      
         /*定义计算两个整数和的方法  
         返回值类型,计算结果是int     
         参数:不确定数据求和,定义int参数.参数又称为形式参数  */    
          public static int getSum(int a, int b) {      
             return a + b;     
             } 
  }
    程序执行,主方法 main 调用 getSum 方法,传递了实际数据 5和6 ,两个变量 a和b 接收到的就是实际参数,并 将计算后的结果返回,主方法 main 中的变量 sum 接收的就是方法的返回值
  • 定义方法练习题:计算1+2+3…+100的和

    • 分析:定义方法实现功能,需要有两个明确,即 返回值 和 参数 。
      • 明确返回值:1~100的求和,计算后必然还是整数,返回值类型是int
      • 明确参数:需求中已知到计算的数据,没有未知的数据,不定义参数
public class Method_Demo4 {     
		public static void main(String[] args) {         
		//调用方法getSum         
		//并接收方法计算后的结果,整数         
		int sum = getSum();         
		System.out.println(sum);     }      
		 /* 定义计算1~100的求和方法         
		 返回值类型,计算结果整数int         
		 参数:没有不确定数据*/
    public static int getSum() {
  			//定义变量保存求和         
  			int sum = 0;         
  			//从1开始循环,到100结束         
  			for (int i = 1; i <= 100; i++) {             
  			sum = sum + i;         
  			}         
  			return sum;     
  		} 
  }

  • 定义方法的注意事项

    • 定义位置,类中方法外面。
    • 返回值类型,必须要和 return 语句返回的类型相同,否则编译失败 。
    • 不能在 return 后面写代码, return 意味着方法结束,所有后面的代码永远不会执行,属于无效代码。
  • 调用方法

    • 三种格式
      • 直接调用:直接写方法名进行调用,即 方法名称();
public static void main(String[] args) {    
		print();    
} 
public static void print() {   
		System.out.println("方法被调用");    
 }
  • 打印调用:
    1. 在输出语句中调用方法, System.out.print(方法名称(参数));
		public static void main(String[] args) {    
		System.out.println(getSum(5,6));   
 }     public static int getSum(int a,int b) {    
 			return a + b;   
 }
  1. 不能用输出语句调用 void 类型的方法。因为方法执行后没有结果,也就打印不出任何内容。
	public static void main(String[] args) {    
	 	System.out.println(printHello());// 错误,不能输出语句调用void类型方法    
} 	public static void printHello() {    
		System.out.println("Hello");   
 }
  • 赋值调用::调用方法,在方法前面定义变量,接收方法返回值
    数据类型 变量名称 =方法名称(参数);
	public static void main(String[] args) {    
		int sum = getSum(5,6);       
		System.out.println(sum);    
} 	
	public static int getSum(int a,int b) {    
	return a + b;    
	}
  • 方法调用图解
    在这里插入图片描述
  • 使用方法注意事项
    1. 方法应该定义在类中,但不能在方法中再定义方法,不能嵌套
    2. 方法定义的前后顺序无所谓
    3. 方法定义之后不会执行,如果想要执行,一定要调用。
    4. 如果方法有返回值,那么必须写上“return 返回值;”,不能没有。
    5. return后面的返回值数据,必须和方法的返回值类型对应起来。
    6. 对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己。
    7. 对于void方法当中最后一行的return可以省略不计。
    8. 一个方法当中可以用多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。

方法重载

  • 方法重载(Overload):指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返 回值类型无关;多个方法的名称一样,但是参数列表不一样。
  • 参数列表:个数不同,数据类型不同,顺序不同。
  • 重载方法调用:JVM通过方法的参数列表,调用不同的方法。
public class Demo01MethodOverload {

    public static void main(String[] args) {
        /*System.out.println(sumTwo(10, 20)); // 30
        System.out.println(sumThree(10, 20, 30)); // 60
        System.out.println(sumFour(10, 20, 30, 40)); // 100*/

        System.out.println(sum(10, 20)); // 两个参数的方法
        System.out.println(sum(10, 20, 30)); // 三个参数的方法
        System.out.println(sum(10, 20, 30, 40)); // 四个参数的方法
//        System.out.println(sum(10, 20, 30, 40, 50)); // 找不到任何方法来匹配,所以错误!

        sum(10, 20);
    }

    public static int sum(int a, double b) {
        return (int) (a + b);
    }

    public static int sum(double a, int b) {
        return (int) (a + b);
    }

    public static int sum(int a, int b) {
        System.out.println("有2个参数的方法执行!");
        return a + b;
    }

    // 错误写法!与方法的返回值类型无关
//    public static double sum(int a, int b) {
//        return a + b + 0.0;
//    }

    // 错误写法!与参数的名称无关
//    public static int sum(int x, int y) {
//        return x + y;
//    }

    public static int sum(double a, double b) {
        return (int) (a + b);
    }

    public static int sum(int a, int b, int c) {
        System.out.println("有3个参数的方法执行!");
        return a + b + c;
    }

    public static int sum(int a, int b, int c, int d) {
        System.out.println("有4个参数的方法执行!");
        return a + b + c + d;
    }

}
  • 方法重载与下列因素有关
    1. 参数个数不同
    2. 参数类型不同
    3. 参数的多类型顺序不同
  • 方法重载与下列因素无关
    1. 与参数的名称无关
    2. 与方法的返回值类型无关
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值