随笔 - 434,  文章 - 0,  评论 - 463,  阅读 - 46万

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修饰的成员变量,叫做静态属性,也叫做类属性,因为只和类相关嘛。

视频讲解:https://www.bilibili.com/video/BV1m44y1t7Tf/

posted on   剽悍一小兔  阅读(17)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2016-10-09 【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第七节)

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示