亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 中的静态变量:什么是静态块和方法 [示例]

静态可以是:

  1. 静态变量
  2. 静态方法
  3. 静态代码块。

我们先来看看静态变量和静态方法。

什么是 Java 中的静态变量?

Java 中的静态变量 是属于类的变量,仅在执行开始时初始化一次。它是属于类而不属于对象(实例)的变量。静态变量仅在执行开始时初始化一次。这些变量将首先被初始化,然后再初始化任何实例变量。

语法:

<class-name>.<variable-name>

什么是 Java 中的静态方法?

Java 中的静态方法 是属于类而不属于对象的方法。静态方法只能访问静态数据。它是属于类而不属于对象(实例)的方法。静态方法只能访问静态数据。它不能访问非静态数据(实例变量)。

语法:

<class-name>.<method-name>

注意: main 方法是静态的,因为在任何实例化发生之前,应用程序必须可以访问它才能运行它。


让我们通过一些练习来了解静态关键字的细微差别!

示例:如何调用静态变量和方法

步骤 1) 将以下代码复制到编辑器中

public class Demo{
   public static void main(String args[]){
     Student s1 = new Student();
     s1.showData();
     Student s2 = new Student();
     s2.showData();
     //Student.b++;
     //s1.showData();
  }
}

class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.

  Student(){
   //Constructor incrementing static variable b
   b++;
  }

   public void showData(){
      System.out.println("Value of a = "+a);
      System.out.println("Value of b = "+b);
   }
//public static void increment(){
//a++;
//}

}

步骤 2) 保存并编译代码。运行代码为 java Demo .

步骤 3) 预期输出如下所示

下图展示了如何创建引用变量和对象,以及不同实例如何访问静态变量。

第 4 步) 可以使用语法 ClassName.Variable_Name 从类外部访问静态变量 .取消注释 # 7 &8 行。保存、编译和运行。观察输出。

Value of a = 0
Value of b = 1
Value of a = 0
Value of b = 2
Value of a = 0
Value of b = 3

第 5 步) 取消注释第 25,26 和 27 行。保存,编译并运行。

	 error: non-static variable a cannot be referenced from a static context a++; 

第 6 步) 错误 =?这是因为无法访问实例变量“a ”来自java静态类方法“increment “。

什么是 Java 中的静态块?

静态块 是 Java 类中的一个语句块,将在类首次加载到 JVM 时执行。 静态块有助于初始化静态数据成员 ,就像构造函数帮助初始化实例成员一样。

class Test{
 static {
 //Code goes here
 }
}

下面的程序是java静态块的例子。

示例:如何访问静态块

public class Demo {
 static int a;
 static int b;
 static {
    a = 10;
    b = 20;
 }
 public static void main(String args[]) {

  System.out.println("Value of a = " + a);
  System.out.println("Value of b = " + b);

 	}
}

您将获得程序的以下输出。

Value of a = 10
Value of b = 20

java

  1. Java 方法
  2. Java final 关键字
  3. Java instanceof 运算符
  4. Java 嵌套静态类
  5. Java 匿名类
  6. Java 单例类
  7. Java 反射
  8. Java 异常处理
  9. Java ObjectOutputStream 类
  10. Java 泛型
  11. Java 文件类
  12. Java中的接口与抽象类:有什么区别?