Chinaunix首页 | 论坛 | 博客
  • 博客访问: 696239
  • 博文数量: 160
  • 博客积分: 8847
  • 博客等级: 中将
  • 技术积分: 1656
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-25 16:46
个人简介

。。。。。。。。。。。。。。。。。。。。。。

文章分类

全部博文(160)

文章存档

2015年(1)

2013年(1)

2012年(4)

2011年(26)

2010年(14)

2009年(36)

2008年(38)

2007年(39)

2006年(1)

分类: Java

2008-10-31 13:52:44



看看下面的代码输出多少?


/**static关键字
 * 在类中声明的static成员变量,一次声明,处处使用,一次修改,处处生效
 *
 * */

public class TestStatic {
    public static int sid = 0;
    public String name = "liujun";
    int id = 0;
    
    
    //构造函数一

    TestStatic(){
        sid++;
    }
    
    //构造函数二

    TestStatic(int sid){
        //在方法中改变static变量的值,如果方法中的局部变量和static的成员变量同名,需要以this.来引用。

        //否则,会被认为是方法的局部变量来处理。所以,如果为了区分方法的局部变量和静态成员变量,静态成员变量以this.来引用。

        sid++;
        this.sid++;
    }
    
    public void Print(){
        System.out.println(sid);
        //因为调用Print的时候,是在Cat方法中调用的。所以,打印id的时候,自然也是打印的teststatic2的id

        System.out.println(id);
        System.out.println(name);
    }
    
    
    public void Cat(String name){
        TestStatic teststatic2 = new TestStatic(1);
        //new一个对象出来,然后马上会执行构造函数;因为new的时候有一个参数,所以,一定是执行第二个构造函数

        teststatic2.id = 2;
        teststatic2.name = name;
        sid++;
        teststatic2.Print();
    }
    
    public static void main(String [] args ){
        TestStatic teststatic = new TestStatic();
        //new一个对象出来,然后马上会执行构造函数;因为new的时候没有任何参数,所以,一定是执行第一个构造函数

        System.out.println(sid);
        teststatic.Cat("cook");
    }
}

阅读(695) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~