前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Java中静态字段与静态方法的讨论

关于Java中静态字段与静态方法的讨论

作者头像
秋名山码神
发布2022-12-13 15:15:59
7830
发布2022-12-13 15:15:59
举报
文章被收录于专栏:码神随笔

前言

下面来看这样一段代码

代码语言:javascript
复制
public static void main(String[] args) {
     System.out.println("hello world");
}

main方法中加入,static,修饰符,下面我们来讨论这个修饰符的含义。

静态字段

如果将一个字段定义为static,每个类只有这样一个的字段,而对于非静态的实例字段,每个对象都有自己的一个副本,例如:,假设需要给每个员工赋予唯一的标识码,这里给Employee类添加id和一个静态字段nextId:

代码语言:javascript
复制
class Employee{
	private static int nextId = 1;
	private int id;
}

现在,每一个Employee对象都又一个自己的id字段,但这个类所有实例将共享一个nextId字段。

静态常量

静态变量使用比较少,但静态常量却很常用,例如我们定义一个PI常量:

代码语言:javascript
复制
public class Math{
        public static final double PI = 3.1415926;
}

好处:可以直接用Math.PI来访问这个常量

如果,省略static PI就变成了Math类的一个实例字段。也就是说,需要通过Math类的一个对象来访问PI,并且每一个Math对象都有他自己的一个PI副本。

静态方法

静态方法是不在对象上执行的方法。例如,Math类的pow方法就是一个静态方法。表达式:Math.pow(x,a)

不难看出,在完成运算的时候,他并没有使用Math对象,换句话说他没有隐式参数。可以认为静态方法是没有this参数的方法。

静态方法的俩种场景:

  • 方法不需要访问对象状态,它所需要的所有参数都要通过显式参数提供Math.pow(3,5)
  • 方法只需要访问类的静态字段(例子见下
代码语言:javascript
复制
public static int getId(){
	return Id;
}

main方法

上面我们说了静态方法,同上,main方法也是一个静态方法。

代码语言:javascript
复制
public static void main(String[] args){

}

main方法不需要对任何对象进行操作,但是实际上,在启动程序的时候,还没有任何对象。静态的main方法将执行并构造程序所需要的对象

最后

本文为博主学习使用 参考书籍 ——java核心技术卷1

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 静态字段
  • 静态常量
  • 静态方法
  • main方法
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档