Java基础:static关键字

1|0Java基础:static关键字



1|1static变量(静态变量)

  • 静态变量在第一次被访问时创建,在程序结束时销毁
  • 类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外
  • 能在本类里直接调用
private static int age;//静态的变量 private double score;//非静态的变量
  • 使用实例:

    public class Student { private static int age;//静态的变量(类变量) private double score;//非静态的变量(实例变量) public static void main(String[] args) { Student s1 = new Student(); System.out.println(Student.age); // System.out.println(Student.score); //不可以直接通过类调用非静态的score System.out.println(s1.age); System.out.println(s1.score); //可以通过新建对象来调用age和score } }

1|2static方法(静态方法)

  • 能在本类里直接调用
//非静态方法 public void run() { } //静态方法 public static void go() { }
  • 使用实例:

    //static public class Student { //非静态方法 public void run() { System.out.println("run"); } //静态方法 public static void go() { System.out.println("go"); } public static void main(String[] args) { go();//或者 Student.go(); new Student().run(); //可以通过新建对象来调用非静态的方法 } }

1|3static代码块(静态代码块)

  • 静态代码块是首先执行的代码块
  • 静态代码块只执行一次
static { //静态代码块 }
  • 使用实例:

    public class Person { //第二执行 { //代码块(匿名代码块):赋初始值 System.out.println("匿名代码块"); } //第一执行 static { //静态代码块:只执行一次 System.out.println("静态代码块"); } //第三执行 public Person() { System.out.println("构造方法"); } public static void main(String[] args) { Person person1 = new Person(); System.out.println("=========="); Person person2 = new Person(); } }

    输出

    静态代码块 匿名代码块 构造方法 ========== 匿名代码块 构造方法

1|4static导入包(静态导入包)

  • 在导入包前面加上 static 关键字,可以在类中直接使用导入包内的静态方法
import static java.lang.Math.*;
  • 使用实例:

    //静态导入包 import static java.lang.Math.PI; import static java.lang.Math.random; public class Test { public static void main(String[] args) { System.out.println(random()); System.out.println(PI); } }

    非静态导入包时

    //非静态导入包 import java.lang.Math.PI; import java.lang.Math.random; public class Test { public static void main(String[] args) { System.out.println(Math.random());//需要写上调用类名才能调用 System.out.println(Math.PI); } }

好处:简化操作流程


__EOF__

本文作者userName
本文链接https://www.cnblogs.com/dt746294093/p/14645632.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   D..T  阅读(78)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示