对Java中static的理解

public class A{

static int K=4;


public static void main(String[] args){

A x1=new A();

x1.K++;

A x2=new A();

x2.K++;

K++;

System.out.prinltn(x1.K);

}

}

首先statiac存储在方法区中,所有的类都共用一个方法区,不再受对象的控制,

所以K在第一遍被调用后变成4,第二遍被调用后会在原来的基础上

再增加,因为至对其进行K++操作,如果是赋值则会变成重新赋值,

由于对其增加所以答案是   5;

如果没有static 则会变成4,

注意:

(1)某个类中的属性无论创建多少个对象,都只存在一个内存空间,也就是方法区,

每一个类都共享一个方法区,用static修饰的成员不存放在堆内存中。

(2)可以通过类名加 . 直接调用,不可以使用this

(3)静态方法中只能调用静态方法,不能调用实例成员。如果调用则需要创建对象,

(4)实例成员可以调用静态方法


Demo2类下

  public static void nana(){
        Demo2 ss=new Demo2();
    }
    public void haha(){
        Demo2.nana();
    }








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值