static可以用来修饰类的成员变量或成员方法,分别称为类变量(或静态变量)和类方法(或静态
方法)。相应地,没有被static修饰的类的成员变量或成员方法称为实例变量或实例方法。
1.类变量
在生成每个类的实例变量时,Java运行系统为每个对象的实例变量分配一个内存空间,实例变量指向该内存空间,不同的实例变量占用不同的内存区域。对于类变量来说,Java运行系统为类的类变量分配公共的存储空间,该类的每个实例对象共享同一类变量的存储空间。因此,每个对象对类变量的修改都会影响其他实例对象。
类变量可以通过类名直接访问,也可以通过实例对象来访问,都是对同一内存单元的操作, 类变量的使用具有如下特点:
(1)类变量可以通过类名直接访问,而不需要创建对象
(2)任何一个对象对类变量的修改,都是在同一内存单元上完成的。因此,每个对象对类变量的修改都会影响其他实例对象。
2.类方法
声明为static的方法称为类方法(或称静态方法),与此相对,没有static修饰的成员方法则为实例方法。类方法的本质是该方法属于整个类,而不是属于某个实例,可以不创建实例,直接通过类名调用。
类方法的使用具有以下特点:
(1)类方法可以通过类直接调用,而不需要创建实例对象。例如:Java Application的入口main()方法就被声明为static类方法,可以不需要创建任何实例对象对调用。
(2)类方法属于整个类,被调用时可能还没有创建任何对象实例,因此类方法内只可以访问类变量,而不能直接访问实例变量和实例方法。
(3)类方法中不能使用this关键字,因为静态方法不属于任何一个实例。
(简答题)
什么是类变量和类方法?
正确答案
答案解析
略
相似试题
(填空题)
一个包有一个名字,包中各元素的限定名就是包名加上元素的名称,如果P是包的名字,A是类的名字,则包和类表示为()。
(填空题)
在声明成员变量的时候,用关键字static修饰的变量是类变量,类变量也称为()变量。
(简答题)
关键字static在修饰类、类的成员数据和类的成员方法中的作用各是什么?
(简答题)
类的成员数据的修饰符是否和类的成员方法部分相同,部分不同。请写出与成员方法不同的修饰符是哪些?它们的含义是什么?
(判断题)
构造函数是类中的特殊方法。
(简答题)
什么是类?什么是封装?什么是多态性?
(单选题)
有关实例方法和类方法的描述正确的是()
(单选题)
有关实例方法和类方法的描述错误的是()
(简答题)
什么是类的继承?怎样定义派生类?