java基础——static关键字

static关键字

静态字段

static 修饰的字段是静态字段、其他的是实例字段
静态字段 属于类(),可以用类名调用
实例字段 在每个对象都有一个副本 不同的对象调用的实例字段不同

static字段值是可以被修改的

class Employee{
//比如后续声明1000个对象e1-e1000
// 这一千个都共用一个nextID
	private stativc int nextID = 1;
//但是会有1000个id
	private int id;
}
//调用方式
	Employee.nextID;
	e1.id;

静态常量

final 修饰 常量
static final 修饰静态常量 不可改变
但是对于容器类型的实例变量 不可以修改容器本身,但是容器中存放的对象可以修改


静态方法

静态方法不在对象上执行,它不需要来自实例对象的this隐式变量 由类名直接调用
比如
Math.pow(x,a) 这个用到的参数就是单纯的x和a

静态方法不能访问id实例字段 但是可以访问静态字段

public static int getNextID(){
	return nextID;
}
int n = Employee.getNextID;

静态变量和静态方法的作用

static修饰的变量和方法 是共享的,他们在创建对象之前就已经存在,直接用类名调用即可(也可以用对象调用,但是不推荐!)
static方法只能操作static变量和static方法 无法操作实例变量,实例变量和实例方法只能由对象来调用
但是实例方法可以调用static变量和static方法,因为后两者本身就是共享的。

作用在于生成工具类,工具类与对象无关,里面都是静态变量和静态方法。
eg:可以封装一个专门生成验证码的类,在任何时候直接用这个工具类名调用其中的生成验证码的方法即可完成验证码生成功能。

在这里插入图片描述

在这里插入图片描述
注:工具类只是用于使用,不希望用来创建对象,所以一般搞一个private修饰的私有构造器。防止被用于创建对象。

static代码块

static代码块跟随类一起优先加载一次,自动触发执行,可以用于初始化静态资源

static{
System.out.println("我是跟着类一起加载的,比main方法还早加载")
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值