您的位置:首页 > 编程语言 > Java开发

java中静态方法和静态变量详解

2017-02-13 18:44 113 查看
//在类中,用static申明的变量为静态变量(静态变量跟字符串常量放在datesegment),它为该类的公共变量,在第一次使用时被初始化,对于该类的所有的对象来说,static成员变量只有一份

//静态变量两大引用方法:类名.变量/对象.变量

//静态方法跟静态变量用法相同

//注意:静态方法中不能访问非静态变量      非静态方法中可以访问静态变量

//    静态方法中不能定义静态变量          非静态方法中不能定义静态变量

//(static随着类的加载而被加载,是优先于对象的存在,也就是对象还没创建的时候已经存在了,static是类层次的,定义的属于成员变量,而在方法里面定义的变量是局部变量,不能大脚穿小鞋)

public class Cat {

    private static int sid = 0;//定义一个静态变量

    private String name; 

    int id;

    Cat(String name) {

        this.name = name;  

        id = sid++;//这里也是非静态方法中访问静态变量

    }

    public void info(){

        System.out.println

               ("My name is "+name+" No."+id);

    }

    public static void main(String arg[]){

    Cat mimi = new Cat("mimi");

        Cat pipi = new Cat("pipi");

   

    //两大访问静态变量的方法

        Cat.sid = 100;//类名.变量

        mimi.sid = 2000;//对象.变量

        

       // id = 4;  这样写是错的,因为不能在静态方法中访问非静态变量

       //static int y = 6;这样也是错的,因为不能在静态方法中直接定义静态变量

        

        mimi.info(); 

        pipi.info();

    }

}

class Fj {
static int i = 1;
void fjt() {
i = 2;//这是可以的,因为在非静态方法中可以访问静态变量
//static int y = 7;这是错的,因为不能在非静态方法中直接定义静态变量
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java