Java static关键字具有哪些功能呢?

Java-教程王 Java教程 发布时间:2021-04-12 16:45:04 阅读数:19312 1 static

Java static关键字的功能 

静态(static)关键字功能:

  1. 变量(称为类变量)
  2. 方法(称为类方法)
  3. 代码块
  4. 嵌套类

静态方法注意事项:

静态方法有两个主要限制。它们分别是:

  • 静态方法不能直接使用非静态数据成员或调用非静态方法
  • thissuper两个关键字不能在静态上下文中使用

1. Java静态变量

       当一个变量声明为static,此变量则为静态变量

 静态变量的优点:

  • 可使程序存储器高效(节省内存)

 

例:静态变量



class testClass{
    int keyId;
    String info1;
    static String info2 = "java265.com";

    testClass(int i, String s) {
        keyId = i;
        info1 = s;
    }

    void printInfo() {
        System.out.println(keyId + " " + info1+ " " + info2);
    }

    public static void main(String args[]) {
        testClass s1 = new testClass(888, "java265.com");
        testClass s2 = new testClass(999, "testJava");

        s1.printInfo();
        s2.printInfo();
    }
}
 

 

不使用静态变量的计数器程序

创建一个qty 实例变量用于统计创建对象的个数,它在构造函数中执行递增。
 

class testClass{
    int qty= 0;

    testClass() {
        qty++;
        System.out.println(qty);
    }

    public static void main(String args[]) {

        testClass c1 = new testClass();
        testClass c2 = new testClass();
        testClass c3 = new testClass();

    }
}
-----运行以上代码,将输出以下信息----
0
0
0
 

计数器静态变量的程序
如上所述,静态变量将只获取一次内存,如果任何对象更改静态变量的值,它将保留其值,所有实例均可访问同一变量值。

class testClass{
    static int qty= 0; 

    testClass() {
        qty++;
        System.out.println(qty);
    }

    public static void main(String args[]) {

        testClass c1 = new testClass();
        testClass c2 = new testClass();
        testClass c3 = new testClass();

    }
}
----运行以上代码,将输出以下信息-----
1
2
3
 

2. Java静态方法

  我们将类中的方法前面加上static关键字的方法称之为“静态方法”
      静态方法注意事项:

  • 静态方法属于类,而不属于类的对象
  • 可以直接调用静态方法,而无需创建类的实例
  • 静态方法可以访问静态数据成员,并可以更改静态数据成员的值

例: 


class testClass{
    int keyId;
    String info1;
    static String info2= "java265.com";

    static void set() {
        info2= "888";
    }

    testClass(int i, String s) {
        keyId= i;
        info1 = s;
    }

    void printInfo() {
        System.out.println(keyId+ " " + info1+ " " + info2);
    }

    public static void main(String args[]) {
        testClass.set();

        testClass s1 = new testClass(888, "java265.com");
        testClass s2 = new testClass(999, "test");
        testClass s3 = new testClass(111, "other");

        s1.printInfo();
        s2.printInfo();
        s3.printInfo();
    }
}
  

 

3. Java静态块

Java中的静态块的功能说明:

  • 用于初始化静态数据成员
  • 它在类加载时在main方法之前执行

静态块的示例

class testClass{
    static {
        System.out.println("这是一个静态块");
    }

    public static void main(String args[]) {
        System.out.println("Hello Java265.com");
    }
}
-----以上代码,将输出以下结果-----
这是一个静态块
Hello Java265.com
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/232.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者