一道面试题目4

class teststatic{
 public static int x = 5;
 public int y = 10;
 public void func(){
  x++;
  y++;
  System.out.println(x+"-----"+y);
 }

public class TimePrinter extends Thread {
        static public void main(String args[]) {
        System.out.println(teststatic.x);
        teststatic p = new teststatic();
        teststatic p1 = new teststatic();
       p.func();
       p1.func();
      
    }
}

 

输出结果:

5
6-----11
7-----11

说明:static变量是类的,是所有类实例共享的。而public变量值是每个实例单独有的
那么, p中有一个y, p1中也有一个y 但是他们两个共享x
static是类的,public是实例的

本质的区别:
public:需要使用对象来引用
static:直接使用类名来引用,就是说不需要声明类的对象


static 说得是这个成员变量不再专属于某一个对象,而是属于所有的对象,或者说属于整个类,你可以在static 方法中直接访问该成员变量,而不用new 一个对象出来.

但是,static 方法不能直接访问非static的变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值