Java基础语法—方法

Java方法的创建与使用

什么是方法?

​ 方法是完成特定功能的代码段,在类外定义好,并且可以在任意处引用。

  • 一般来说,方法包含一个方法头和方法体。

    • 修饰符: 访问权限修饰符,先默认为public static(可选的)
    • 返回值类型: 用于限定方法返回值的数据类型(无返回值时值为void)
    • 方法名:方法的名字 调用方法的时候需要根据方法名
    • 方法体:包含具体的语句,定义该方法的功能
    • 参数类型:类似占位符,调用方法时,传值给参数。
      • 形式参数:在方法被调用时用于接收外界输入的数据。
      • 实参:调用方法时实际传给方法的数据。
    • 参数名:是一个变量,用于接收调用方法时传入的数据
    • return关键字:用于结束方法以及返回方法指定类型的值
    • 返回值:被return语句返回的值,该值会返回给调用者

    调用方法:类名 方法名(参数);

public class m1 {
    public static void main(String[] args) {
        int z = add(2, 3);				//调用使用方法,2,3为实际参数
        System.out.println(z);
    }
    public static int add(int x, int y) {	//定义一个返回值为int的方法,x,y为形式参数
        return x * y;
    }
}

方法的调用:

  • static的非静态调用:无法直接调用方法,要先生成一个新的对象再进行调用,在类实例化后才存在的。

      public static void main(String[] args) {
            Ex1 ex1 = new Ex1();		//生成一个新的对象
            ex1.say();					//进行调用输出"hi!"
        }
       public static class Ex1 {
            public void say() {
                System.out.println("hi!");
            }
        }
    
  • static的静态调用:可直接调用方法,无需生成一个新的对象再调用,和类一起加载的。

    	  public static void main(String[] args) {
            Ex1.say();					//直接调用方法,输出"hi!"
        }
       public static class Ex1 {
            public static void say() {
                System.out.println("hi!");
            }
        }
    

注意: 定义class中没有static,类里面的方法也无法使用static定义,两者要相一致。

  • 值传递与引用传递:
//值传递:
 public static void main(String[] args) {
        int a = 1;
        System.out.println(a); //1
        m4DY1.add(a);           //10
        System.out.println(a);  //1
    }
    public static void add(int a) {
        a = 10;
    }

//引用传递:
    public static void main(String[] args) {
        Ex e = new Ex();
        System.out.println(e.name + " " + e.age);       //null 0

        change(e);                                //是对class(Ex)进行修改的
        System.out.println(e.name + " " + e.age);       //LIN 24
    }
    public static void change(Ex e) {
         e.name = "LIN";
         e.age = 24;
    }
static class Ex {
        String name;
        int age;
    }

方法重载:

​ 重载是在同一个类中有相同的方法名,但是方法的参数类型和参数个数不一样的方法。

  • 方法重载的注意点:
    • 方法名字相同
    • 方法的参数类型不同,参数个数不同
    • 返回值是否相同无要求
   public static void main(String[] args) {
        int z = add(2, 3);
        double x = add(2.5, 3.6);
        int q = add(3, 4, 5);
        System.out.println(z);
        System.out.println(x);
        System.out.println(q);
    }
    public static int add(int x, int y) {		
        return x * y;
    }
    public static int add(int x, int y, int z) {
        return x + y +z;
    }
    public static  double add(double x, double y) {
        return x + y;
    }
}

可变参数:

  • 在方法中声明中,在指定参数类型后面加上一个省略号(...)

  • 一个方法只能定义一个可变参数,但是必须是方法的最后一个参数。其他普通参数的定义必须在可变参数之前定义

    public class m2 {
        public static void main(String[] args) {
            printMax(1, 3, 55, 5, 23);
        }
        public static  void printMax(double ... i) {
            if (i.length == 0) {
                System.out.println("error!");
                return;
            }
    
            double number = i[0];
            for (int j = 1; j < i.length; j++) {
                if (i[j] > number) {
                    number = i[j];
                }
            }
            System.out.println(number);
        }
    }
    
posted @ 2021-03-15 22:46  VXZX  阅读(107)  评论(0)    收藏  举报