Java基础之static的用法

yizhihongxing

Java基础之static的用法

1. static关键字的概述

在Java中,static是一个关键字,它可以用来修饰类的成员。当成员被static修饰时,它就变成了该类的静态成员,也即类级别的成员。静态成员不属于类的任何实例对象,而是与类本身相关联。在使用静态成员时,不需要通过实例对象来访问,可以通过类名直接调用。

2. static修饰变量的用法

2.1 静态变量
静态变量是被static修饰的类级别变量,它在整个类的生命周期内都只有一份拷贝,无论创建多少个类的实例对象,这些实例对象共享同一个静态变量。

示例1:

public class Example {
    static int count = 0; // 静态变量

    public Example() {
        count++;
    }

    public static void main(String[] args) {
        Example obj1 = new Example();
        Example obj2 = new Example();
        System.out.println(Example.count); // 输出结果为2
    }
}

在上面的示例中,静态变量count被定义为Example类的静态成员变量。每次创建Example类的实例对象时,在构造方法里将静态变量count加1。由于静态变量在整个类的生命周期内只有一份拷贝,因此obj1和obj2共享同一个count,输出结果为2。

2.2 静态常量
静态常量是被static修饰的final变量,一旦赋值后就不可修改,并且在类的加载过程中就会被初始化。静态常量通常用于定义一些不可变的全局常量,可以通过类名直接访问。

示例2:

public class Circle {
    static final double PI = 3.14; // 静态常量

    public static void main(String[] args) {
        System.out.println("圆的周长:" + (2 * Circle.PI)); // 输出结果为6.28
    }
}

在上面的示例中,静态常量PI被定义为Circle类的静态成员常量。通过类名直接访问PI,在计算圆的周长时使用。

3. static修饰方法的用法

静态方法是被static修饰的类级别方法,它不依赖于任何实例对象,可以直接通过类名调用。静态方法只能访问类的静态成员,不能访问非静态成员。

示例3:

public class MathUtility {
    static int sum(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        int result = MathUtility.sum(10, 20);
        System.out.println("结果:" + result); // 输出结果为30
    }
}

在上面的示例中,sum()方法被定义为MathUtility类的静态成员方法。通过类名直接调用sum()方法,计算两个数的和并返回结果。

4. 静态代码块的用法

静态代码块是被static修饰的一段代码块,它在类的加载过程中执行,并且只执行一次。静态代码块可以用来初始化静态成员变量或执行一些其他的静态操作。

示例4:

public class InitExample {
    static int num;

    static {
        num = 10;
        System.out.println("静态代码块执行");
    }

    public static void main(String[] args) {
        System.out.println("num的值为:" + InitExample.num);
    }
}

在上面的示例中,静态代码块中给静态变量num赋值,并在控制台打印一条信息。在main方法中通过类名访问静态变量num并输出其值。

以上就是Java中static关键字的用法的完整攻略。通过对static关键字的理解和使用,我们可以更好地理解类的成员和类之间的关系,更灵活地编写Java程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java基础之static的用法 - Python技术站

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

相关文章

  • 关于QT应用在XP系统上兼容运行的问题

    关于QT应用在XP系统上兼容运行的问题 背景概述 QT是一个跨平台的C++GUI应用程序开发框架,但是在XP系统上兼容性存在一定问题,导致一些QT应用在XP系统上无法正常运行。本文旨在探讨如何解决QT应用在XP系统上的兼容性问题。 问题分析 QT应用在XP系统上出现兼容性问题的主要原因是QT版本过高或XP系统版本过旧。QT的一些新特性(如高清分辨率支持、Un…

    其他 2023年3月28日
    00
  • 关于python:webgraphviz输出不会围绕决策树页面

    以下是关于Python中使用WebGraphviz输出不会围绕决策树页面的完整攻略,包含两个示例。 关于Python中使用WebGraphviz输出不会围绕决策树页面的攻略 在Python中,我们可以使用WebGraphviz库来可视化决策树。但是,有时候我们会发现输出的决策树页面没有围绕决策树而是在页面的左上角。以下是两个示例: 1. 使用Graphviz…

    other 2023年5月9日
    00
  • MATLAB中stem函数用法

    下面是“MATLAB中stem函数用法的完整攻略”,包括stem函数的定义、用法和两个示例说明。 stem函数的定义 MATLAB中的stem函数是一种绘制离散信号的函数,它可以绘制离散信号的折线图和垂直线。stem函数通常用于显示离散信号的幅度和相位信息。 stem函数的用法 stem函数的基本语法如下: stem(Y) stem(X,Y) stem(..…

    other 2023年5月5日
    00
  • 合金装备5幻痛开发小组怎么升级_开发小组升级方法推荐

    合金装备5幻痛开发小组升级攻略 1. 理解开发小组升级系统 在《合金装备5幻痛》中,开发小组升级系统是一个重要的机制,它允许玩家通过提升开发小组的等级来解锁更多的武器、装备和设施。下面是一些升级开发小组的方法和示例说明。 2. 完成任务和侧任务 完成主线任务和侧任务是升级开发小组的主要途径之一。通过完成任务,你可以获得资源和GMP(游戏中的货币),这些资源可…

    other 2023年7月27日
    00
  • 新外星人17值得买吗?戴尔新外星人17寸笔记本全面评测图解

    很抱歉,作为文本模型,我无法以标准的markdown格式回答您的问题。但是,我可以为您提供一份详细的攻略,包含戴尔新外星人17寸笔记本的全面评测和图解,并提供两个示例说明。 戴尔新外星人17寸笔记本全面评测攻略 产品外观与设计 戴尔新外星人17寸笔记本采用了时尚的外观设计,具有独特的外星人系列风格。其机身采用高质量的材料制造,给人一种坚固耐用的感觉。键盘背光…

    other 2023年10月17日
    00
  • wps怎样取消首字自动大写? wps首字母大小写的详细教程

    要取消WPS的首字母自动大写功能,您可以按照以下步骤进行操作: 打开WPS软件并创建一个新的文档。 在菜单栏中选择“工具”选项。 在下拉菜单中选择“自动更正选项”。 在弹出的对话框中,选择“首字母大写自动更正”。 取消选中“首字母大写自动更正”选项。 单击“确定”按钮以保存更改。 以下是两个示例说明: 示例1:假设您在WPS中输入一个句子:“hello, w…

    other 2023年8月17日
    00
  • 电脑启动不起来怎么办 电脑启动失败解决办法

    电脑启动不起来怎么办? 当我们打开电脑时,电脑无法正常启动,通常会出现蓝屏、黑屏或卡在启动画面等问题。这些问题可能由于硬件故障、软件问题、驱动程序错误或电源供应问题等多种原因引起。 一、硬件相关故障排查 确认电脑是否插上电源插头并通电 检查电脑电源与显示器的连接是否正确 排查电脑是否存在硬件问题,比如硬盘的坏道、内存的损坏等 如果电脑上有外设(如鼠标、键盘、…

    other 2023年6月27日
    00
  • Java类的加载时机与过程

    下面我将详细讲解Java类的加载时机及过程,希望能帮助您更好地了解Java。 什么是Java类的加载 当Java程序启动时,需要将Java类加载到内存中才能被执行。而Java类的加载就是指将.class文件从磁盘读取到内存中,并为其生成一个Class对象,用于在程序运行时动态创建该类的实例和调用其方法。 Java类的加载时机 Java类的加载时机分为以下三种…

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