java面向对象-------static关键字,静态变量和普通变量区别

package java面向对象;
/**
* 测试static关键字
*/

public class TestStatic {
/*
1、static修饰的成员变量和方法,从属于类,可以通过类直接调用。普通的变量和方法从属于对象
2、静态属性和方法是所有对象共享的,普通方法可以调用静态方法和属性,但静态方法不能调用普通的方法
*/
static String name;
int age;
void say(){
sing();//可以随时调用
}
static void sing(){
// say(); 会报错,静态方法只能调用静态的

}


public static void main(String[] args) {
TestStatic ts=new TestStatic();
ts.age=18;
//3、类中的静态变量和方法只能通过类调用,生命周期随类的加载而加载,消失而消失
TestStatic.name="小明";


}
}
/**
*静态变量和成员变量的区别
* A:所属不同
* 静态变量属于类变量,
* 成员变量属于对象变量
* B:内存变量不同
* 静态变量存储在方法区的静态区
* 成员变量存储在内存的堆区
* C:内存出现的时间不同
* 静态是随着类的加载而加载,随着类的消失而消失
* 成员变量随着对象的加载而加载,随着对象的消失而消失
* D:调用不同
* 静态通过类名调用
* 成员变量通过对象调用
*/

猜你喜欢

转载自www.cnblogs.com/zzzao/p/10889043.html