java - 静态成员是否进入对象?

标签 java oop object static

这当然是一个初级问题,但我必须要澄清我的一个问题。如果一个类成员被设置为static,它可以在没有实例化的情况下被访问,语法类似于class.member。创建对象时,它是否接收静态成员,并且可以更改该值吗?既然静态成员不需要对象,那对任何对象来说都是一样的吗? (即一个变了,另一个变了)。

基本上,对象中的静态成员是如何实现的,它们又是如何变化的呢? 它们只能用静态方法操作吗?

谢谢大家

最佳答案

从技术上讲,您可以使用这样的实例更改静态成员:

SomeClass c = new SomeClass();
c.someStaticMember = 5;

但是,这会产生一个警告,这是应该的。正确的方法是这样做:

SomeClass.someStaticMember = 5;

Since a static member does not need objects, is it the same for any object? (ie changed in one, changed in the other).

同样,从技术上讲是的,因为您可以这样做:

System.out.println(c.someStaticMember);

虽然这是不正确的,但会给你一个警告;正确的方法是:

System.out.println(SomeClass.someStaticMember);

关于java - 静态成员是否进入对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16577233/

相关文章:

java - 不存在 Java 运行时,请求安装

java - Java 8 接口(interface)默认方法中使用的阴影变量

java - 在 Java OOP 中同时使用 2 个对象

javascript - 实例化和更新 JavaScript 对象的简洁方法? (我的方法有效吗?)

java - 有限状态机程序无效输出

java - 如何验证或验证 JWT 签名?

java - 如何清除 Log4j 2.3 每日滚动文件附加器的日志

php - 在重复调用方法时增加计数器变量,PHP

swift - 在观察者模式中,是在通知中传递数据更好,还是让观察者接触到单例?

javascript - JS对象属性复制: what is happening behind the scenes?