java中如何理解多个对象共享同一个静态成员变量?

正在学习这门语言,实在是理解不能,恳请指教,谢谢!... 正在学习这门语言,实在是理解不能,恳请指教,谢谢! 展开
 我来答
0动感蚂蚁0
推荐于2017-09-29 · TA获得超过391个赞
知道小有建树答主
回答量:177
采纳率:100%
帮助的人:126万
展开全部

要理解这个问题首先要知道一点,就是java的静态成员变量是有一个独立的存储空间的。

假设一个类里面如果有一个静态变量s,那个这个类的多个实例所引用的s实际上是同一个。举个例子吧

class A{
    static int num = 1;
    private String name
    public String getName(String name){
        return name;
    }
    public void setName(String name){
    {
        this.name = name;
    }
    public void show(){
        System.out.println("name:"+name+" num:"+num);
    }
}
public class Test{
    public static void main(String[] args){
        A a = new A();
        a.setName("case A");
        a.num++;
        
        A b = new A();
        b.setName("case B);
        
        a.show();
        b.show();
    }
}

可以看到输出的num的值都是2

lifenghuangyin14bc675
2015-03-20 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:175
采纳率:100%
帮助的人:60.4万
展开全部
例 : static String A = “abc”;

test(){
String s1 = A;

String s2 = A;

}

so: 对象1 ,对象2 共享 静态变量 A。

楼上的解释 太啰嗦,把分给我把。谢谢。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
54lhlLHL45
2019-04-10 · TA获得超过114个赞
知道答主
回答量:97
采纳率:50%
帮助的人:14.9万
展开全部
静态变量就是用static修饰的变量,在这个类加载的时候就会自动声明,所以不管这个类里面有多少不同方法,都可以用这个变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JAVA66实习生
2019-03-27
知道答主
回答量:2
采纳率:0%
帮助的人:1578
展开全部
public class Demo {
public static void main(String[] args) {
new inner1().setDemo("456");
String demo1 = new inner1().getDemo();
String demo2 = new inner2().getDemo();
System.out.println(demo1);
System.out.println(demo2);
}
}
class inner1{
private static String demo = "123";
public static String getDemo() {
return demo;
}
public static void setDemo(String demo) {
inner1.demo = demo;
}
}
class inner2{
private static String demo;
public static String getDemo() {
return demo;
}
public static void setDemo(String demo) {
inner2.demo = demo;
}
}
结果是:
456
null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式