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

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取list前面十条数据

    当然,我很乐意为您提供有关“Java取List前面十条数据”的完整攻略。以下是详细的步骤和两个示例: 1. List是什么? List是Java中的一个接口,用于存储一组有序的元素。List中的元素可以重复,并且可以按照插入的顺序进行访问。 以下是List接口的基本语法: List<E> list = new ArrayList<>(…

    other 2023年5月6日
    00
  • JS应用正则表达式转换大小写示例

    JS应用正则表达式转换大小写示例攻略 正则表达式是一种强大的工具,可以在JavaScript中用于字符串的匹配和替换操作。下面是一个详细的攻略,展示了如何使用正则表达式来转换字符串的大小写。 示例1:将字符串转换为全大写 const str = \"hello, world!\"; const uppercaseStr = str.toU…

    other 2023年8月16日
    00
  • JS实现非首屏图片延迟加载的示例

    JS实现非首屏图片延迟加载可以提高网站的性能,避免一次性加载全部图片对网站造成的压力,下面详细介绍实现的攻略: 1. 了解非首屏图片延迟加载 首先需要了解什么是非首屏图片延迟加载,它的原理是在网站的加载过程中,只加载当前屏幕所需展示的图片,等到用户滚动到相应位置时再加载相应的图片。这样做可以减少首屏加载时间,提高网站加载速度。 2. 实现延迟加载的JS代码 …

    other 2023年6月25日
    00
  • Java实现单链表SingleLinkedList增删改查及反转 逆序等

    Java实现单链表SingleLinkedList增删改查及反转 逆序等 简介 单链表是数据结构中常见的一种,它是由一系列节点(Node)构成的链式结构,每个节点包含两部分:数据部分和指针部分,数据部分用于存储节点的数据,指针部分用于指向下一个节点。单链表的头节点指向第一个有效节点,最后一个节点的指针指向NULL。 SingleLinkedList类 我们首…

    other 2023年6月27日
    00
  • 使用contextMenu插件实现Bootstrap table弹出右键菜单

    使用contextMenu插件可以实现在Bootstrap table中实现右键菜单的弹出。具体的实现过程可以分为以下几个步骤: 引入必要的静态文件 在使用contextMenu插件之前,需要先引入必要的静态文件,包括: jQuery.js Bootstrap.css Bootstrap.js jquery.contextMenu.js jquery.con…

    other 2023年6月27日
    00
  • sqlserver操作json

    以下是关于“SQL Server操作JSON”的完整攻略: SQL Server操作JSON SQL Server 2016及以上版本支持JSON数据类型,可以使用内置函数和操作符来操作JSON数据。以下是一些常用的JSON操作: JSON_VALUE:用于提取JSON对象中的值。 JSON_QUERY:用于提取JSON对象或数组。 JSON_MODIFY:…

    other 2023年5月9日
    00
  • List集合按某个属性或者字段进行分组的操作

    一、背景介绍在Java中,List是最常用的集合类型之一,它可以存储任何类型的对象,但在实际开发中,我们有时需要按照某种属性或者字段对List中的元素进行分组,这可以通过Java8中新增的Stream API来实现。 二、具体实现步骤 1.创建一个包含多个元素的List集合,例如: List<Student> students = new Arr…

    other 2023年6月26日
    00
  • Docker 教程之镜像创建及修改详细介绍

    下面是对Docker教程之镜像创建及修改详细介绍的完整攻略。 1. 什么是Docker镜像? Docker镜像是一种轻量级、可移植的软件打包形式。它是一个只读的模板,包含了构建Docker容器所需要的所有基础组件和应用程序。使用Docker镜像,你可以快速地搭建环境,减少部署的时间和问题。 2. 如何创建Docker镜像 2.1 Docker镜像的创建流程 …

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部