static是java里面的关键字,主要用来修饰属性和方法。打上static标记后,就是静态的,不需要new就可以访问。
假如一个方法没有用到this?
首先,我们写一个付钱方法。
void pay(){
System.out.println(" paying...");
}
我们发现一个事情,就是这个方法里面没有调用任何属性,也没有出现this。
那么请问,上一节我们说this的意义是什么?
this的意义是,当我们在执行某个方法的时候,能够获取到那个对象的特殊数据。
那么,既然这个pay方法压根就不需要当前对象的数据,我们为什么还要传入this呢?注意,这个this是JVM帮你传的,你想不传都不行。
static的意义
像这种没有用到当前对象任何数据的方法,我们是不是希望直接就用,而不是非得先new一个对象再用?
嗯,肯定的,直接用就行了,反正不需要this,大家都觉得这样很有道理吧。那么既然如此,我们就可以给这种方法加一个static关键字。
static void pay(){
System.out.println(" paying...");
}
被static修饰的方法,不需要实例对象就可以访问,可以直接用 类名.方法名 的形式去调用。
Customer.pay();
static 修饰成员变量
static还可以修饰成员变量,被static修饰的成员变量在类被加载的时候,是提前分配内存空间的,有点像“关系户”。哪怕这个类一个对象都没有new,它也是真实存在的。比如,我们给类添加一个版本号,默认是1.0,就这样写:
static String version = "1.0";
调用也是一样,直接用类名就可以了:
System.out.println(Customer.version);
被static修饰的成员变量,叫做静态属性,也叫做类属性,因为只和类相关嘛。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2016-10-09 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第七节)