Java基础之方法入门

概述

我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且 重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现。
当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象

  • 方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。
  • 为什么要有方法
    • 提高代码的复用性

方法的定义

  • 定义格式:

      修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
      	方法体语句;
      	return 返回值; 
      } 
    
  • 方法的格式说明

    • 修饰符:目前就用 public static。后面我们再详细的讲解其他的修饰符。
    • 返回值类型:就是功能结果的数据类型。
    • 方法名:符合命名规则即可。方便我们的调用。
    • 参数:
      • 实际参数:就是实际参与运算的。
      • 形式参数;就是方法定义上的,用于接收实际参数的。
    • 参数类型:就是参数的数据类型
    • 参数名:就是变量名
    • 方法体语句:就是完成功能的代码。
    • return:结束方法的。
    • 返回值:就是功能的结果,由return带给调用者。
public static void methodName() { 
    System.out.println("这是一个方法");
}

定义方法的两个明确

  • 需求:定义方法实现两个整数的求和计算。
    • 明确返回值类型:方法计算的是整数的求和,结果也必然是个整数,返回值类型定义为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 接收的就是方法的返回值。

定义方法的注意事项

  • 定义位置,类中方法外面。
  • 返回值类型,必须要和 return 语句返回的类型相同,否则编译失败 .
// 返回值类型要求是int
public static int getSum() { 
    return 5;// 正确,int类型 
    return 1.2;// 错误,类型不匹配 
    return true;// 错误,类型不匹配
}
  • 不能在 return 后面写代码,return意味着方法结束,所有后面的代码永远不会执行,属于无效代码。
public static int getSum(int a,int b) { 
    return a + b; 
    System.out.println("Hello");// 错误,return已经结束,这里不会执行,无效代码 
}

调用方法的三种形式

  • 直接调用:直接写方法名调用
public static void main(String[] args) {
	print(); 
} 
public static void print() { 
	System.out.println("方法被调用"); 
}
  • 赋值调用:调用方法,在方法前面定义变量,接收方法返回值
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; 
}
  • 输出语句调用
    • 在输出语句中调用方法, System.out.println(方法名()) 。
public static void main(String[] args) {
    System.out.println(getSum(5,6));
} 
public static int getSum(int a,int b) {
    return a + b; 
}
  • 不能用输出语句调用 void 类型的方法。因为方法执行后没有结果,也就打印不出任何内容。
public static void main(String[] args) {
    System.out.println(printHello());// 错误,不能输出语句调用void类型方法 
} 
public static void printHello() { 
    System.out.println("Hello"); 
}

方法重载

  • 方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返 回值类型无关
  • 参数列表不同:
    • 参数个数不同
    • 参数类型不同
    • 参数的顺序不同
  • 重载方法调用:JVM通过方法的参数列表,调用不同的方法.
public class Method { 
    public static void main(String[] args) { 
        //定义不同数据类型的变量 
        byte a = 10; 
        byte b = 20; 
        short c = 10;
        short d = 20;
        int e = 10; 
        int f = 10; 
        long g = 10; 
        long h = 20; 
        // 调用 
        System.out.println(compare(a, b)); 
        System.out.println(compare(c, d)); 
        System.out.println(compare(e, f)); 
        System.out.println(compare(g, h));     }   
        // 两个byte类型的 
    public static boolean compare(byte a, byte b) { 
        System.out.println("byte"); 
        return a == b;
    } 
    // 两个short类型的 
    public static boolean compare(short a, short b) { 
        System.out.println("short"); 
        return a == b;
    } 
    // 两个int类型的 
    public static boolean compare(int a, int b) { 
        System.out.println("int");
        return a == b; 
    } 
    // 两个long类型的 
    public static boolean compare(long a, long b) { 
        System.out.println("long"); 
        return a == b;
    }
}
发布了24 篇原创文章 · 获赞 27 · 访问量 2052

猜你喜欢

转载自blog.csdn.net/weixin_45860268/article/details/103379087
今日推荐