static

业务逻辑:声明一个变量用于统计个数,这个变量应该被类的实例共享(可以被所有的对象访问);

               所以这个变量应该放在方法区。

所以这样的变量应该由static来声明

static可以修饰变量、方法、代码块和内部类

static属性属于这个类所有,即由该类创建的所有对象共享同一个static属性。

可以在对象创建后通过  对象名.属性名  和 类名.属性名  两种方式来访问(推荐 类名.属性名这种方式)。也可以在没有创建任何对象之前通过类名.属性名的方式来访问

static方法也可以通过对象名.方法名和类名.方法名两种方式来访问

static代码块:当类被第一次使用时(可能是调用static属性和方法,或者创建其对象)执行静态代码块,且只被执行一次,主要作用是实现static属性的初始化

static内部类:属于整个外部类,而不是属于外部类的每个对象。不能访问外部类的非静态成员(变量或者方法),.可以访问外部类的静态成员

static变量和非static变量的区别(都是成员变量,不是局部变量)

 

1.在内存中份数不同

 

不管有多少个对象,static变量只有1份。对于每个对象,实例变量都会有单独的一份

 

static变量是属于整个类的,也称为类变量。而非静态变量是属于对象的,也称为实例变量

 

2.在内存中存放的位置不同

 

静态变量存在方法区中,实例变量存在堆内存中*

 

3.访问的方式不同

实例变量:对象名.变量名stu1.name="小明明";

 

类名.变量名Student.schoolName="东三旗小学";

 

4.在内存中分配空间的时间不同

 

实例变量:创建对象的时候才分配了空间。静态变量:第一次使用类的时候

 

 

 

           

posted @ 2019-05-11 22:12  c++天下第一  阅读(278)  评论(0编辑  收藏  举报