Java干货分享

不是我打击你,你可能真的不会用Java中的static

2019-09-25  本文已影响0人  淡定_蜗牛

静态可以是:

  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)

预期输出如下所示

image

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

image

步骤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步)错误=?这是因为无法从java静态类方法“ increment ” 访问实例变量“ a ”。

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

上一篇下一篇

猜你喜欢

热点阅读