面向对象通识14(static修饰符)
static并不是字面意义上“静态”的意思,而是类的意思——
- 有
static的成员是类成员 - 没有
static的成员是实例成员
//在C语言中有静态变量这一概念,即将改变量放置于静态存储区
但Java并没有这一概念,static只能修饰成员变量 成员变量、方法、初始化块、内部类- 所以,
static不能修饰局部变量,局部变量不属于类 static也不能修饰构造器,构造器存在的目的是初始化对象,而对象对标的是实例
- 所以,
**static**成员——属于类成员——
所有的类成员,都只能用类名来调用(Java语法允许用对象来调用类成员,但这是没有意义的操作)
若遇到题目中使用对象来调用类成员,将对象改为类名
static考点
static成员不能访问非static成员- 非
static成员可以访问static成员
static成员
有static修饰的成员变量、方法、初始化块、内部类(四种)
非static成员
没有static修饰的成员变量、方法、初始化块、内部类、构造器(五种)
以下举一些static成员访问非static成员的错误范例:
public class Test1{int q=20;static int a=q;}/*static变量不能访问非static变量*/
public class TestStatic {int a;static {a=20;}}/*static初始化块不能访问非static变量*/
public class TestStatic {int a;public static void main(String[] args) {System.out.println(a);}}/*static方法不能访问非static变量*/
(总共能举例20个,在此不意义列举了)
