四、java方法

方法

  • 四、方法
    • 4.1. 方法概述
    • 4.2. 方法的定义和调用
      • 4.2.1 定义
      • 4.2.2 调用
    • 4.3 形参和实参
      • 4.3.1 形参
      • 4.3.2 实参
    • 5. 方法的注意事项
    • 6. 方法重载

四、方法

4.1. 方法概述

​ 方法(method)是程序中最小的执行单元

  • 注意:
    • 方法必须先创建才可以使用,该过程成为方法定义
    • 方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程称为方法调用

4.2. 方法的定义和调用

4.2.1 定义

  • 定义格式

    public static 数据类型 方法名 ( 参数 ) { 
    	return 数据 ;
    }
    
  • 范例

    public static boolean isEvenNumber( int number ) {           
    	return true ;
    }
    public static int getMax( int a, int b ) {
    	return  100 ;
    }
    
    • 注意:
      • 方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
      • 明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型
      • 明确参数:主要是明确参数的类型和数量

4.2.2 调用

  • 调用格式

    方法名 ( 参数 ) ;
    数据类型 变量名 = 方法名 ( 参数 ) ;
    
  • 范例

    isEvenNumber ( 5 ) ;
    boolean  flag =  isEvenNumber ( 5 ); 
    
    • 注意:
      • 方法的返回值通常会使用变量接收,否则该返回值将无意义
      • void类型的方法,直接调用即可
      • 非void类型的方法,推荐用变量接收调用

4.3 形参和实参

4.3.1 形参

形参:方法定义中的参数,等同于变量定义格式

例如:int number

在Java中,形参是方法中用于接收传递给方法的值或对象的参数,它们是方法的一部分。

形参在方法声明时用来代表将要传递给方法的值或对象的占位符。在方法内部,可以使用这些形参进行操作和计算。

我们可以通过以下语法来定义形参:

public void methodName(Type parameter1, Type parameter2, ...) {
    // 执行方法的操作
}
其中,`methodName`是方法名,`parameter1`、`parameter2`等是形参名称,`Type`是形参的数据类型。

形参之间使用逗号分隔。

下面是一个例子,这个方法功能是计算两个整数的和,并将结果作为返回值:

public int sum(int a, int b) {
    int result = a + b;
    return result;
}
在上面的例子中,`sum` 方法有两个形参 `a` 和 `b`,表示它需要接收两个整型参数。

在 `sum` 方法内部,我们使用这两个形参计算它们的和,并将结果作为返回值。

需要注意的是,多个形参之间需要使用逗号进行分隔,同时,方法的返回类型必须在方法名称之前进行声明。

4.3.2 实参

实参:方法调用中的参数,等同于使用变量或常量

例如: 10  number

在Java方法中,实参是在方法调用时传递给方法的具体值或对象。

实参是实际传递给方法的数据或对象的值。在方法调用时,我们必须提供与方法声明中形参要求的类型和顺序相匹配的实参。

以下是实参的一些说明和示例:

  1. 根据方法需要提供正确的数据类型的值作为实参:
public void printNumber(int num) {
    System.out.println("The number is: " + num);
}

public static void main(String[] args) {
    int value = 10;
    MyClass obj = new MyClass();
    
    obj.printNumber(value); // value 是实参,作为 printNumber 方法的参数传递
}
在上面的例子中,我们定义了一个 `printNumber` 方法,它有一个形参 `num`,接收一个整数。
在 `main` 方法中,我们定义了一个名为 `value` 的整数变量,并将其赋值为 10。
然后,我们将 `value` 作为实参传递给 `printNumber` 方法。
  1. 传递对象作为实参:
public void printPersonName(Person person) {
    System.out.println("Name: " + person.getName());
}

public static void main(String[] args) {
    Person obj = new Person("John");
    MyClass myClass = new MyClass();
    
    myClass.printPersonName(obj); // obj 是实参,作为 printPersonName 方法的参数传递
}
在上面的例子中,我们定义了一个 `printPersonName` 方法,它有一个形参 `person`,接收一个 `Person` 对象。
在 `main` 方法中,我们创建了一个名为 `obj` 的 `Person` 对象,然后将其作为实参传递给 `printPersonName` 方法。

需要注意的是,实参的类型和数量必须与方法声明中的形参相匹配,否则会引起编译错误。

5. 方法的注意事项

  1. 方法不能嵌套定义

    示例代码:

    public class MethodDemo {
        public static void main(String[] args) {
    
        }
    
        public static void methodOne() {
    		public static void methodTwo() {
           		// 这里会引发编译错误!!!
        	}
        }
    }
    
  2. void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据

    示例代码:

    public class MethodDemo {
        public static void main(String[] args) {
    
        }
        public static void methodTwo() {
            //return 100; 编译错误,因为没有具体返回值类型
            return;	
            //System.out.println(100); return语句后面不能跟数据或代码
        }
    }
    

6. 方法重载

方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载

  • 多个方法在同一个类中
  • 多个方法具有相同的方法名
  • 多个方法的参数不相同,类型不同或者数量不同

注意:

  • 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
  • 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载

正确范例:

public class Method {
	public static void fn(int a) {
    	//方法体
    }
    public static int fn(double a) {
    	//方法体
    }
}

public class MethodDemo {
	public static float fn(int a) {
    	//方法体
    }
    public static int fn(int a , int b) {
    	//方法体
    }
}

错误范例:

public class Method {
	public static void fn(int a) {
    	//方法体
    }
    public static int fn(int a) { 	/*错误原因:重载与返回值无关*/
    	//方法体
    }
}

public class MethodDemo01 {
    public static void fn(int a) {
        //方法体
    }
} 
public class MethodDemo02 {
    public static int fn(double a) { /*错误原因:这是两个类的两个fn方法*/
        //方法体
    }
}

你可能感兴趣的:(Java,java,开发语言)