[#0x0000] static

本文详细解释了静态成员、字段及函数的概念,并介绍了如何通过静态导入简化代码书写。此外,还探讨了静态成员如何归属于类而非对象,以及如何正确地调用这些成员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. static member/field/function

 

  每new一个object即相当于申请了一块内存,用来存放这个object的member/field/function。两个object的member/field不尽相同,同时也许因为如此,导致两个object的function不尽相同,从而这两个object要占据两块内存,而且它们之间没有共享member/field/function。
  如果有field/member/function只与class有关,即不会在不同的object中有不同的值或操作,亦即在所有的object中表现都一样,可以将其设置为static。可以将static member/field/function理解为归class所有,即存在于class的内存块中,而不是在object的内存块中。
  在调用时,可以直接使用class.staticMember/staticField/staticFunction,当然,用object.staticMember/staticField/staticFunction也行,但这样无法体现member/field/function的static性。

2. static import

 

  精确导入方式:

import static pkg.class/interface.staticMember;

  import最后只用写出成员名,就算是function,也不用写出括号或是参数列表。  
  

  模糊导入方式:

import static pkg.class/interface.*;

  这样可以将class/interface中的staticMember静态导入,在后面的代码中就不用写class/interface.staticMember这么麻烦,直接写staticMember了事。如果是field就直接写staticField,不用写class/interface.staticField;如果是function就直接写staticFunction(),不用写class/interface.staticFunction()。例如:

import static java.lang.System.out;

之后就可以直接写out.println(),不用写System.out.println()。注意,这里out才是static member,println是out的方法,且不是static,所以不能直接写println()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值