【java】类的静态成员问题

我是一只酸菜鱼~又酸又菜又多余 嘤
转载请标注原作者嗷(我在想pitch)

##终于啊,,,还是来到了让我一直迷糊的静态这里,我这次一定要弄懂(不是flag不是flag!!)

  1. 静态成员变量
    定义:举例:static int a;也就是在普通定义前加一个static
    特点:属于类而不属于任何一个类的对象
    使用:可以在本类的静态方法中直接使用,或者在其他类中通过类名.a 调用;当然也可以当做(注意只是当做!)对象成员变量使用,也就是可以通过类的某个对象.a 使用。
  2. 类的静态方法
    定义:在限制符和返回值之间加static(参考main的定义)
    特点:同1
    使用:(1)直接在本类(定义的类)中使用函数名调用;
    (2)在其他类中使用“类名.静态方法名”或者“类对象.静态方法名”使用;

#关于静态成员和静态方法能不能通过对象调用,我在eclipse中测试过,都可以通过对象调用。个人理解是静态的不同于普通变量/方法的地方在于对该类的所有对象,这种变量/方法是相同的,也就意味着,修改其中一个对象的静态成员值其他对象的也随之变化 (这样说不严谨,因为静态成员本来就是同一个)。在使用方面是增加了通过类名.变量/方法 的调用方式。

#在修改静态成员变量值方面,可以通过非静态方法修改(这个与印象中的c++不太一样)。

  1. 一个很绕的问题:

静态方法里不能调用其他非静态方法,也不能访问非静态成员变量,否则编译出错。

对这个问题,个人理解是这样:可以以main方法作为参照,main方法是一个public static的方法,作为一个静态方法,它能调用哪些方法?怎么调用呢?
答:

  • 对自身类中的静态方法和静态成员可以直接通过名字调用;
  • 对其他类中的静态方法和静态成员可以通过类名.静态变量/方法名 调用;
  • 对自身类中的非静态变量及方法、其他类的非静态变量及方法,只能通过定义类的对象,然后类对象.变量/方法名 调用。

a终于终于终于捋清楚一点了〒▽〒
奥利给୧(﹒︠ᴗ﹒︡)୨

嗷对辽…博客都是个人见解,未必对嗷 希望有错误大佬能给指出来!!(感激不尽)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值