Java中static修饰的静态变量、方法及代码块的特性与使用

yizhihongxing

Java中static修饰的静态变量、方法及代码块的特性与使用

1. 静态变量

静态变量是属于类的变量,可以通过类名或者对象名来访问。静态变量的特点是在内存中只有一个副本,被类所有的实例共享。定义静态变量的格式为:static dataType variableName。

静态变量的使用示例:

public class Dog {
    private String name;
    private static int count = 0;

    public Dog(String name) {
        this.name = name;
        count++;
    }

    public static int getCount() {
        return count;
    }
}

public class Test {
    public static void main(String[] args) {
        Dog dog1 = new Dog("Maya");
        Dog dog2 = new Dog("Buddy");
        System.out.println(Dog.getCount());
    }
}

上面的代码中,count是一个静态变量,表示创建的狗的数量。每当创建一只狗的时候,静态变量count的值会加1。在main方法中,通过Dog.getCount()方法获取创建的狗的数量,打印出来。

2. 静态方法

静态方法属于类的方法,不需要创建类的对象就可以直接调用。静态方法不能访问非静态变量和非静态方法,只能访问静态变量和静态方法。定义静态方法的格式为:static dataType methodName()。

静态方法的使用示例:

public class MathUtil {
    public static int max(int a, int b) {
        return a > b ? a : b;
    }
}

public class Test {
    public static void main(String[] args) {
        int max = MathUtil.max(5, 7);
        System.out.println(max);
    }
}

上面的代码中,MathUtil类中定义了一个静态方法max,可以获取两个数的最大值。在main方法中,可以通过MathUtil.max(5, 7)来获取5和7中的最大值,输出结果为7。

3. 静态代码块

静态代码块是属于类的代码块,用于在类加载的时候执行一些操作。静态代码块只会执行一次,且在类被加载的时候执行。定义静态代码块的格式为:static { //code }。

静态代码块的使用示例:

public class Test {
    static {
        System.out.println("static code block executed");
    }

    public static void main(String[] args) {
        System.out.println("main method executed");
    }
}

上面的代码中,定义了一个静态代码块,在类被加载的时候会执行。在main方法中,打印出一条信息,表示main方法被执行。执行程序后,会先打印出静态代码块的信息,再打印出main方法的信息。

总结

静态变量、静态方法和静态代码块都属于类的成员,是被所有实例共享的,而不是属于某个实例。静态变量和静态方法可以通过类名或者对象名来访问,静态代码块会在类被加载的时候执行。在程序设计中,静态变量、静态方法和静态代码块能够提高程序的性能,也方便我们对类的管理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中static修饰的静态变量、方法及代码块的特性与使用 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • java格式化数字操作 NumberFormat及DecimalFormat

    让我为您讲解一下“java格式化数字操作 NumberFormat及DecimalFormat”的攻略。 1. NumberFormat及DecimalFormat简介 NumberFormat是java.util包中的一个抽象类,是将数字格式化为字符串的基类,它提供了很多方法来格式化数字,例如将数字格式化为货币、百分数等。 DecimalFormat是Nu…

    other 2023年6月26日
    00
  • Android 访问文件权限的四种模式介绍

    Android 访问文件权限的四种模式介绍 在Android开发中,访问文件权限是一个重要的话题。Android提供了四种不同的文件访问权限模式,分别是: 私有模式(Private Mode):在私有模式下,应用程序可以创建和访问其私有目录中的文件。其他应用程序无法直接访问这些文件。这种模式适用于应用程序需要保存用户数据或配置信息的情况。以下是一个示例: F…

    other 2023年9月6日
    00
  • logback日志打印sql

    以下是使用logback日志打印SQL的完整攻略,包含两个示例说明: 步骤1:添加logback依赖 首先,您需要在项目中添加logback依赖。您可以使用以下Maven依赖添加logback: <dependency> <groupId>ch.qos.logback</groupId> <artifactId&gt…

    other 2023年5月6日
    00
  • Android中PreferenceActivity使用详解

    下面是关于“Android中PreferenceActivity使用详解”的完整攻略: 1、什么是PreferenceActivity PreferenceActivity是Android SDK中的一个类,用于展示一组设置项,在应用设置界面中,我们通常会用到该类来实现。 2、PreferenceActivity的使用方法 (1)创建PreferenceAc…

    other 2023年6月26日
    00
  • C++ virtual destructor虚拟析构函数

    C++虚拟析构函数 引言 在C++中,如果一个类含有虚函数,那么通常也应该定义一个虚拟析构函数,否则在使用该类时可能会出现不可预知的问题。本文将详细介绍C++虚拟析构函数的相关内容。 析构函数 在C++中,每个类都可以拥有一个析构函数,它是一个特殊的函数,用于在对象被销毁时释放资源。如果未显式定义析构函数,则编译器将会生成默认析构函数。 以下是一个简单的析构…

    other 2023年6月26日
    00
  • 如何用tempfile库创建python进程中的临时文件

    如何用tempfile库创建Python进程中的临时文件 在Python中,我们可以使用tempfile库来创建临时文件。这些临时文件在程序执行完毕后会自动被删除,因此非常适合用于临时存储数据或者处理一些临时文件。 下面是使用tempfile库创建Python进程中临时文件的完整攻略: 步骤1:导入tempfile库 首先,我们需要导入tempfile库。可…

    other 2023年8月5日
    00
  • vue2.0 兄弟组件(平级)通讯的实现代码

    Vue 2.0 兄弟组件(平级)通讯的实现代码攻略 在 Vue 2.0 中,兄弟组件之间的通讯可以通过共享一个父组件的数据来实现。下面是实现兄弟组件通讯的完整攻略,包含两个示例说明。 步骤一:创建父组件 首先,我们需要创建一个父组件,用于承载兄弟组件并提供数据通讯的功能。在父组件中,我们可以定义一个数据属性,然后将它传递给两个兄弟组件。 <templa…

    other 2023年8月6日
    00
  • 2.4 小白必看:零基础安装Linux系统(超级详细)

    2.4 小白必看:零基础安装Linux系统(超级详细) 如果您是一名对Linux系统完全不了解的小白,不要担心!本文将提供超级详细的步骤和说明,帮助您轻松安装Linux系统。 选择Linux发行版 首先,您需要选择一个Linux发行版。这是因为Linux有很多不同的版本,也称为“发行版”,每个版本都适合不同的用户需求。此外,每个Linux发行版都有其独特的界…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部