package com.gao;
/*
* static修饰成员,所有对象共享static修饰的成员
* 当成员被static修饰后,除了可以被对象调用,也可以直接被类名调用,方式是:类名.成员名
* 被static所修饰的成员变量存在于特定的区域(方法区/数据区/共享区)
*
* static的特点:
* 1、随着类的加载而加载(静态的成员会随着类的消失而消失,说明静态的成员生命周期最长)
* 2、优先于对象存在(静态是先存在的,对象是后创建的)
* 3、被所有对象共享
* 4、可以被类名直接调用
*
* 实例变量和类变量的区别
* 1.类变量随着类的加载存在于方法区中,实例变量随着对象的建立存在于堆内存中。
* 2.类变量生命周期最长,实例变量的生命周期随着对象的消失而消失
* 注意事项:
* 1.静态方法只能访问静态成员,非静态方法能够访问一切(静态的和非静态的)
* 2.静态方法中不可以使用this、super关键字,因为静态优先于对象存在,所以静态中不可以使用this关键字
* 3.主函数是静态的
*
* 利处:静态的成员可以节省内存空间
* 弊端:生命周期太长,访问出现局限性
* */
class Person3
{
String name;//成员变量,实例变量
static String country="CN";
public void show()
{
System.out.println(name+","+country);
}
}
public class StaticDemo
{
public static void main(String[] args)
{
Person3 p = new Person3();
p.name="haohao";
p.show();
Person3 p1 = new Person3();
p1.name="lele";
p1.show();
System.out.println(Person3.country);
}
}
写出来与大家共勉,呵呵呵 |
|