当前位置: 首页 > news >正文

4.6 static修饰符

static是一个修饰符,用于修饰类的成员属性和成员方法,还可以编写static代码块来优化程序性能。

1. static修饰属性

在Java程序中使用static修饰属性,则该属性称为静态属性(也称全局属性),静态属性可以使用类名直接访问。

通常,static与final一起使用来定义类常量。

  • 常量类

public class Constants{public static String SEX_MALE = "1";               //男public static String SEX_FEMALE = "2";             //女//public static final String SEX_MALE = "1";       //男//public static final String SEX_FEMALE = "2";     //女
}
  • 测试类

public class TestStatic {@Testpublic void test(){System.out.println("男人的编码是:" + Constants.SEX_MALE);System.out.println("女人的编码是:" + Constants.SEX_FEMALE);}
}

2. static修饰方法

static修饰的方法是静态方法,类加载后可直接调用此方法,不需要一个此类的实例。

注意,静态方法只能访问静态成员(静态成员变量和静态成员方法),因为非静态成员需要先创建对象才能访问,即随着对象的创建,非静态成员才会分配内存。而静态方法在被调用时可以不创建任何对象。

  • Alarm类

public class Alarm{public static void ring(){System.out.println("闹钟响...");}
}
  • 测试类

public class TestAlarm {@Testpublic void test(){Alarm.ring();}
}

3. static修饰代码块

在Java类中,用static关键字修饰的代码块称为静态代码块。当类被加载时,静态代码块就会执行,由于类只加载一次,所以静态代码块只执行一次。

  • Alarm类

public class Alarm{{System.out.println("普通代码块");}static {System.out.println("静态代码块");}
}
  • 测试类

public class TestAlarm {@Testpublic void test(){Alarm alarm1 = new Alarm();Alarm alarm2 = new Alarm();}
}
  • 结果

静态代码块
普通代码块
普通代码块

http://www.lryc.cn/news/210242.html

相关文章:

  • C++头文件定义变量
  • [蓝桥杯-610]分数
  • Vue指令大全:深入探索Vue提供的强大指令功能
  • x210项目重新回顾之十七升级到linux4.19.114 +buildroot2018再讨论
  • shell_56.Linux永久重定向
  • CN考研真题知识点二轮归纳(1)
  • hadoop使用简介
  • WebSocketClient objects are not reuseable
  • 分享54个ASP.NET源码总有一个是你想要的
  • 闭包通俗解释,Demo(Go Java Python)
  • Linux部署Redis Cluster高可用集群(附带集群节点添加删除以及槽位分配操作详解)
  • 【PWN · heap | Off-By-One】Asis CTF 2016 b00ks
  • C++STL---Vector、List所要掌握的基本知识
  • 使用FastAPI部署Ultralytics YOLOv5模型
  • A. Doremy‘s Paint 3
  • 深度学习_1 介绍;安装环境
  • Python基础入门例程19-NP19 列表的长度(列表)
  • LeetCode 2558. 从数量最多的堆取走礼物
  • 【JVM】字节码文件的组成部分
  • STM32 TIM(四)编码器接口
  • 力扣第56题 合并区间 c++ 贪心
  • php 日期
  • 食物链解读
  • Day10配置文件日志多线程
  • leetcode:1154. 一年中的第几天(python3解法)
  • 竞赛 深度学习图像修复算法 - opencv python 机器视觉
  • flutter升级+生成drift文件
  • [AUTOSAR][诊断管理][ECU][$34] 下载请求
  • C 标准库 - <errno.h>和<float.h>详解
  • 对于如何学习的一点思考