java程序初始化的顺序
父类静态变量》父类静态代码块》子类静态变量》子类静态代码块》父类非静态变量》父类非静态代码块》父类构造函数》子类非静态变量》子类非静态代码块》子类构造函数
java中的作用域有哪些??
在计算机程序中,申明在不同地方的变量有不同的作用域,例如局部变量,全局变量等。在java中,作用域有java的花括号位置决定,他决定定义变量的可见性和生命周期。
在java中,变量有三种类型:成员变量,静态变量,局部变量。
成员变量的作用范围与对象实例化的的作用范围一样,当类实例化时,类的成员变量就会在内存中分配空间并初始化。直到实例化的对象的生命周期结束,成员变量的生命周期也就结束了。
静态变量不依赖于特定的实例,而是被所有的实例共享的。只要一个类加载,JVM就会给静态变量分配空间。因此用类名.变量名来访问静态变量。
局部变量的作用域在其所处的花括号内。
public 表示该成员变量或方法是对所有的类和方法都是公开的。所有的类和对象都可以直接访问。
private表示变量和方法是私有的。只有当前的类能对其访问,其他对象和类都不能对其访问。
protected表示变量和方法是受保护的。只有与他在同一个包或其子类能够访问他。
default表示变量和方法只能是在包内可见的。如果子类和父类不在同一个包内。子类对default的变量和方法也是不可见的。
注意:这些修饰符只能用来修饰成员变量。不能用来修饰局部变量。private和protected不能用来修饰类。类只能用public,abstract,final来修饰。