Java中的静态方法介绍及实例

122 阅读5分钟

Static Method in Java

Java中的静态方法简介

Java中的静态方法是一个属于类的方法,但不被认为是类的实例;相反,Java中的静态方法可以很容易地被创建和实现,而不需要调用任何实例。静态方法可以访问类中的任何数据成员,可以对数据成员进行任何操作,也可以将任何值作为输入,尽管要访问的成员变量在类和方法中应该有变量的范围。

语法

Java中静态方法的表示方法如下。

public static void syntax_ex (String_name) {
Body of the program for execution.
}
  • public。 类的访问修饰语是public。
  • static。 该方法的范围是静态的,这意味着所有的成员变量和返回类型都在静态的范围内。
  • void。 语法流程中的这个关键字表示在当前方法中没有处理任何返回类型。
  • syntax_ex。 类的名称,表示静态方法是当前定义的类的一部分,后面是字符串名称。
  • 执行程序的主体。 它包括整个核心逻辑或业务逻辑(如果需要在静态模式下)。

注意: 静态方法的声明必须有static作为修饰语,否则,静态的范围将不会得到满足,如果它不是静态的,那么它将无法访问和操作类的任何成员变量。返回类型可以是int、string、float或任何自定义数据类型。静态关键字一旦保留,就必须遵循一些内存分配标准。

静态方法在Java中如何工作?

  • 静态方法和实例方法是Java中的两种方法,它们在程序员中造成了一些混乱,但这只是一个单纯的误解。静态方法和实例方法都有很大的区别。让我们看看静态方法在Java中是如何工作的。Java中的静态方法是一种驻留在类中的方法,即使没有创建对象或没有进行实例化,也可以访问。类的名称加上方法的名称,然后传递参数,就可以访问该类的任何实例。
  • 它可以被表示为ClassName.methodName(arguments)。此外,这些方法的组成有一个目标,即该方法应该可以与类中的所有成员变量和对象共享,其范围由修饰语static定义。这些方法没有任何覆盖的能力;相反,它们可以在编译时使用编译器的静态绑定来重载,每当程序员需要在类的所有实例和对象或成员变量之间共享一个共同的代码片段时,静态方法就会成为救星,因为它通过创建一个共同的静态范围来为所有成员、对象和变量创造一种共享的规定。
  • 一个类的所有静态字段都可以使用静态字段作为一个类的静态方法的一部分来访问。同时,静态方法也是相关的,也是可以支持内存分配功能的。它将静态方法字段和变量的一部分与一些永久生成的堆存储在内存中,用于关联值。内存分配不支持对象作为静态方法堆的创建,或者方法本身不支持实例化。但是,接下来出现的问题是,静态方法是如何通过共享和创建作为类的一部分的所有成员的范围来工作的。
  • 答案就在于,作为参数传递给方法的局部变量,也就是被类调用的局部变量,被存储在堆栈本身。由于它们都是类的一部分,并且以这种方式属于类,所以它们很容易被其他成员变量或方法访问,而不需要创建任何对象。

Java中静态方法的例子

下面是Java中静态方法的例子。

例子#1

这个程序演示了具有特定成员的静态类,它试图纠正上述科目的分数;基本上,它显示了无需创建任何对象或无需任何实例化,就能够创建和访问静态范围内的类的字段或成员变量。

代码

public class E_Static_Method_Ex {
int roll_no;
String stdnt_name;
static String subject = "Maths";
public void rectify()
{
subject = "English";
}
E_Static_Method_Ex(int roll, String name) {
roll = roll_no;
name = stdnt_name;
}
void represent()
{
System.out.println(roll_no+""+stdnt_name+""+subject);
}
public static void main(String[] args) {
String mrks = E_Static_Method_Ex.subject;
System.out.println(mrks);
}
}

输出

Static Method in Java 1

例子 #2

这个程序展示了在执行任何静态方法代码时需要记住的一个非常重要的点,那就是在类中传递和声明的参数应该被定义在静态范围内,或者应该用静态关键字进行初始化,这样访问字段或成员变量就会变得很容易,而且不会出现编译错误,正如所给程序中所表现的那样。

代码

public class Restrcn_Static_Class {
int bi = 30;
String name = "Welcome Everyone!";
public static void main(String[] args) {
System.out.println(bi);
System.out.println(name);
}
}

输出

Static Method in Java 2

例子 #3

这个程序演示了静态变量,如果字段是以static作为修饰语声明和定义的,那么静态类就可以访问;否则,static的范围就不会得到满足,而且会像前面的例子那样出现编译错误。

代码

public class Static_Var_1 {
static int cnt=0;
Static_Var_1(){
cnt++;
System.out.println(cnt);
}
public static void main(String[] args) {
Static_Var_1 d1=new Static_Var_1();
Static_Var_1 dd2=new Static_Var_1();
Static_Var_1 dd3=new Static_Var_1();
Static_Var_1 dd4=new Static_Var_1();
Static_Var_1 dd6=new Static_Var_1();
}
}

输出

that becomes accessible

结论

Java中的静态方法是类中的一个有用的方法,与实例方法相比有明显的区别,因为静态方法使程序员摆脱了对象的创建,即摆脱了对象实例化的方法,从而具有了灵活性。它有助于使整个静态类具有动态性和多功能性,与实例化方法不同。