奥林阿克 发表于 2020-2-26 20:47:57

关于static的理解问题

关于这个成员变量不能在有static关键字的方法下执行,我可不可以这样理解

一个程序它打开会先去运行包括main方法在内的所有含static关键字的方法,这一步也称作初始化,由于实现运行的static关键字的内容,而后创建的成员变量,因此成员变量无法在含有static关键字的方法中使用。

可以吗?大神们

lff 发表于 2020-3-8 15:41:17

成员变量是不能在static 方法里使用
static 修饰的方法是属于 类对象的
成员变量是属于类的实例对象的,成员变量是要实例化之后才能使用的

药瓶子 发表于 2020-3-9 13:12:21

(1)特点:

1、static是一个修饰符,用于修饰成员。(成员变量,成员函数)static修饰的成员变量 称之为静态变量或类变量。

2、static修饰的成员被所有的对象共享。

3、static优先于对象存在,因为static的成员随着类的加载就已经存在。

4、static修饰的成员多了一种调用方式,可以直接被类名所调用,(类名.静态成员)。

5、static修饰的数据是共享数据,对象中的存储的是特有的数据。

(2)成员变量和静态变量的区别:

1、生命周期的不同:

成员变量随着对象的创建而存在随着对象的回收而释放。

静态变量随着类的加载而存在随着类的消失而消失。

2、调用方式不同:

成员变量只能被对象调用。

静态变量可以被对象调用,也可以用类名调用。(推荐用类名调用)

3、别名不同:

成员变量也称为实例变量。

静态变量称为类变量。

4、数据存储位置不同:

成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据。

静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。

(3)静态使用时需要注意的事项:

1、静态方法只能访问静态成员。(非静态既可以访问静态,又可以访问非静态)

2、静态方法中不可以使用this或者super关键字。

3、主函数是静态的
页: [1]
查看完整版本: 关于static的理解问题