一道面试题目4

来源:互联网 发布:手机淘宝咸鱼在哪找 编辑:程序博客网 时间:2024/03/29 18:27

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的变量

原创粉丝点击