希望你能在里面找到你需要的:
static特点:
* 1.随着类的加载而加载。
* 也就是说,静态类会随着类的消失而消失。说明它的生命周期最长。
* 2.优先于对象存在。
* 明确一点:静态是先存在,对象是后存在的。
* 3.被所有对象所共享。
* 4.可以直接被类名所调用。
*
* 实例变量和类变量的区别:
* 1.存放位置。
* 类变量随着类的加载而存在于方法区中。
* 实例变量随着对象的建立而存在于堆内存中。
* 2.生命周期。
* 类变量生命周期最长,随着类的消失而消失。
* 实例变量生命周期随着对象的消失而消失。
*
* 静态使用注意事项:
* 1.静态方法只能访问静态成员。
* 非静态方法既可以访问静态也可以访问非静态。
* 静态只能覆盖静态。
* 2.静态方法中不可以定义this,super关键字。
* 因为静态优先于对象存在。所以静态方法中不可以出现this。
* 3.主函数是静态的
加点代码吧,你可以去测试代码:class Person{
static String name ;//成员变量,实例变量
static String country = "CN";//静态的成员变量,类变量。
public static void show(){
System.out.println(name+":::::"+country); //可以尝试着把name和country改成非静态的来理解静态。
// this.haha(); //不可以用this
}
public void haha(){
System.out.println("jajajja");
}
}
public class StaticDemo {
public static void main(String[] args) {
Person p = new Person();
p.name = "zhangsan";
p.show();
System.out.println();
System.out.println(Person.country);
Person.name = "haha";
Person.show();
}
}
|