Java教程

Java 方法

方法是代码块或语句集合或一组代码组合在一起以执行某些任务或操作。它用于实现代码的 可重用性。我们编写一次方法,并多次使用。我们不需要一次又一次地编写代码。只需添加或删除一部分代码,它还提供了 轻松修改可读性的代码。该方法仅在我们调用或调用时执行。

方法声明

方法声明提供有关方法属性的信息,例如可见性,返回类型,名称和参数。如下图所示,它具有六个称为 method header 的组件。
Java中的方法
方法签名: 每个方法都有一个方法签名。它是方法声明的一部分。它包括 方法名称参数列表
访问说明符: 访问说明符或修饰符是方法。它指定方法的可见性。 Java提供了 四种类型的访问说明符:
public: 当我们在应用程序中使用公共说明符时,所有类都可以访问该方法。 private: 当我们使用私有访问说明符时,仅在定义该方法的类中可以访问该方法。 protect: 当我们使用受保护的访问说明符时,该方法可在相同包中或在不同包中的子类中访问。 default: 当我们在方法声明中不使用任何访问说明符时,Java默认使用默认的访问说明符。仅从同一程序包中可见。
返回类型: 返回类型是方法返回的数据类型。它可能具有原始数据类型,对象,集合,void等。如果该方法未返回任何内容,则使用void关键字。
方法名称: 用于定义方法名称的名称。它必须与方法的功能相对应。假设,如果我们要创建一个将两个数字相减的方法,则该方法的名称必须为 subtraction()。该方法的名称会被调用。
参数列表: 是用逗号分隔并括在圆括号中的参数列表。它包含数据类型和变量名称。如果该方法没有参数,则将括号留空。
方法主体: 它是方法声明的一部分。它包含所有要执行的动作。它用一对大括号括起来。

命名方法

在定义方法时,请记住方法名称必须为 动词,并以 小写字母开头。如果方法名称包含两个以上的单词,则名字必须是动词,后跟形容词或名词。在多单词方法名称中,每个单词的第一个字母必须为 大写,但第一个单词除外。例如:
单字方法名称: sum(),area()
多字方法名称: AreaOfCircle(),stringComparision()
在同一个类中,一个方法也可能具有与另一个方法名称相同的名称,这称为 方法重载

方法类型

Java中有两种方法:
预定义方法 用户定义的方法

预定义方法

在Java中,预定义方法是Java类库中已定义的方法,称为预定义方法。也称为 标准库方法内置方法。我们可以随时通过在程序中调用它们来直接使用这些方法。一些预定义的方法是 length(),equals(),compareTo(),sqrt()等。当我们在程序中调用任何预定义的方法时,与代码相关的一系列代码相应的方法在已存储在库中的后台运行。
每个预定义方法都在类中定义。在 java.io.PrintStream 类中定义了诸如 print()方法。它打印我们在方法内部编写的语句。例如, print("Java"),它将在控制台上打印Java。
让我们看一下预定义方法的示例。
Demo.java
public class Demo
{
    public static void main(String[] args)
{
        // using the max() method of Math class
System.out.print("The maximum number is: " + Math.max(9,7));
    }
}
输出:
The maximum number is: 9
在上面的示例中,我们使用了三种预定义的方法 main(),print(), max()。我们直接使用这些方法而无需声明,因为它们是预定义的。 print()方法是 PrintStream 类的一种方法,可在控制台上打印结果。 max()方法是 Math 类的方法,该方法返回两个数字中的较大者。
我们还可以通过使用链接 https://docs.oracle.com/。当我们浏览链接并看到max()方法签名时,会发现以下内容:
Java中的方法
在上述方法签名中,我们看到该方法签名具有访问说明符 public ,非访问修饰符 static ,返回类型 int ,方法名称 max(),参数列表 (int a,int b)。在上面的示例中,我们仅定义了方法,而不是定义方法。这是预定义方法的优点。
类似地,我们还可以看到print()方法的方法签名。

用户定义的方法

由用户或程序员编写的方法称为 用户定义的方法。这些方法可以根据需要进行修改。

如何创建用户定义的方法

让我们创建一个用户定义的方法来检查数字是偶数还是奇数。首先,我们将定义方法。
//user defined method
public static void findEvenOdd(int num)
{
    //method body
if(num%2==0)
System.out.println(num+" is even");
    else
System.out.println(num+" is odd");
}
我们已经定义了上述名为findevenodd()的方法。它具有一个类型为int的参数 num 。该方法不返回任何值,这就是我们使用void的原因。方法主体包含检查数字为偶数或奇数的步骤。如果数字是偶数,则打印数字 是偶数,否则打印数字 是奇数

如何呼叫或调用用户定义的方法

一旦我们定义了一个方法,就应该调用它。程序中方法的调用很简单。当我们调用或调用用户定义的方法时,程序控制权将转移到被调用的方法。
import java.util.Scanner;
public class EvenOdd
{
    public static void main (String args[])
{
        //creating Scanner class object
Scanner scan=new Scanner(System.in);
        System.out.print("Enter the number: ");
        //reading value from the user
int num=scan.nextInt();
        //method calling
findEvenOdd(num);
    }
在上面的代码片段中,编译器在到达 findEvenOdd(num)行时,控件立即转移到该方法并给出相应的输出。
让我们将两个代码段合并到一个程序中并执行它。
EvenOdd.java
import java.util.Scanner;
public class EvenOdd
{
    public static void main (String args[])
{
        //creating Scanner class object
Scanner scan=new Scanner(System.in);
        System.out.print("Enter the number: ");
        //reading value from user
int num=scan.nextInt();
        //method calling
findEvenOdd(num);
    }
    //user defined method
public static void findEvenOdd(int num)
{
        //method body
if(num%2==0)
System.out.println(num+" is even");
        else
System.out.println(num+" is odd");
    }
}
输出1:
Enter the number: 12
12 is even
输出2:
Enter the number: 99
99 is odd
让我们看看另一个将值返回给调用方法的程序。
在下面的程序中,我们定义了一个名为 add()的方法,将这两个方法相加数字。它具有两个整数类型的参数n1和n2。 n1和n2的值分别对应于a和b的值。因此,该方法将a和b的值相加并将其存储在变量s中并返回总和。
Addition.java
public class Addition
{
    public static void main(String[] args)
{
        int a = 19;
        int b = 5;
        //method calling
int c = add(a, b);
        //a and b are actual parameters
System.out.println("The sum of a and b is= " + c);
    }
    //user defined method
public static int add(int n1, int n2)
    //n1 and n2 are formal parameters
{
        int s;
        s=n1+n2;
        return s;
    //returning the sum
}
}
输出:
The sum of a and b is= 24

静态方法

具有静态关键字的方法称为静态方法。换句话说,属于类而不是类实例的方法称为静态方法。我们还可以通过在方法名称之前使用关键字 static 来创建静态方法。
静态方法的主要优点是无需创建对象即可调用它。它可以访问静态数据成员,也可以更改其值。它用于创建实例方法。通过使用类名来调用它。静态方法的最佳示例是 main()方法。

静态方法的示例

Display.java
public class Display
{
    public static void main(String[] args)
{
        show();
    }
    static void show()
{
        System.out.println("It is an example of static method.");
    }
}
输出:
It is an example of a static method.

实例方法

该类的方法称为 实例方法。这是类中定义的 非静态方法。在调用或调用实例方法之前,必须创建其类的对象。让我们看一个实例方法的示例。
InstanceMethodExample.java
public class InstanceMethodExample
{
    public static void main(String [] args)
{
        //Creating an object of the class
InstanceMethodExample obj = new InstanceMethodExample();
        //invoking instance method
System.out.println("The sum is: "+obj.add(12, 13));
    }
    int s;
    //user-defined method because we have not used static keyword
public int add(int a, int b)
{
        s = a+b;
        //returning the sum
return s;
    }
}
输出:
The sum is: 25
实例方法有两种:
访问器(accessor)方法: 修改器(mutator)方法:
访问器(accessor)方法: 读取实例变量的方法称为访问器方法。我们可以轻松识别它,因为该方法的前缀为 get 。也称为 获取器。它返回值私有领域的ue。
示例
public int getId()
{
    return Id;
}
修改器(mutator)方法: 该方法读取实例变量,并修改值。我们可以很容易地识别出它,因为该方法的前缀是单词 set 。也称为 设置者修饰符。它不返回任何东西。它接受取决于字段的相同数据类型的参数。
示例
public void setRoll(int roll)
{
    this.roll = roll;
}

访问器和更改器方法的示例

Student.java
public class Student
{
    private int roll;
    private String name;
    public int getRoll()
    //accessor method
{
        return roll;
    }
    public void setRoll(int roll)
    //mutator method
{
        this.roll = roll;
    }
    public String getName()
{
        return name;
    }
    public void setName(String name)
{
        this.name = name;
    }
    public void display()
{
        System.out.println("Roll no.: "+roll);
        System.out.println("Student name: "+name);
    }
}

抽象方法

没有方法主体的方法称为抽象方法。换句话说,没有实现的方法被称为抽象方法。它总是在 抽象类中声明。这意味着如果类具有抽象方法,则该类本身必须是抽象的。要创建抽象方法,我们使用关键字 抽象
语法
abstract void method_name();

抽象方法的示例

Demo.java
abstract class Demo
//abstract class
{
    //abstract method declaration
abstract void display();
}
public class Myclass extends Demo
{
    //method impelmentation
void display()
{
        System.out.println("Abstract method?");
    }
    public static void main(String args[])
{
        //creating object of abstract class
Demo obj = new MyClass();
        //invoking abstract method
obj.display();
    }
}
输出:
Abstract method...

工厂方法

这是一种将对象返回到其所属类的方法。所有静态方法都是工厂方法。例如, NumberFormat obj = NumberFormat.getNumberInstance();

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4