在计算机程序中,声明在不同地方的变量具有不同的作用域,例如局部变量,全局变量等。在java中作用域是有花括号的位置决定的,它决定了其变量名的可见性与生命周期。
java中变量类型主要有3种:成员变量,静态变量和局部变量。
类的成员变量的作用域与类的实例化对象的作用域相同,当类被实例化时,成员变量就会在内存中分配空间并初始化,直到该实例的生命周期结束,成员变量的生命周期才会结束。
被static修饰的成员变量被成为静态变量或全局变量,静态变量不依赖特定的实例,而是都有实例共享的,它是在类被加载的时候jvm就会给类的静态变量分配存储空间。
局部变量就是方法中定义的变量,其可见性和生命周期是所在的花括号。
成员变量或方法也有4种作用域:
public,对所有的类或对象都是可见的,所有的类和对象都可以直接访问;
private,是私有的,只有当前类才有访问的权限;
protected,与它同一个包中的其他类、以及该类的子类都是可以见的;
default,同包的的类可见;
这四种修饰符不能用来修饰局部变量,private、protected不能用来修饰类(只有public、sbstract、final可以用来修饰类)。
一个java文件中最多只能有一个类是public修饰,并且这个类名必须与文件名保持一致。
如果java文件中的所有类都没有用public修饰,那么文件名可以与类名不一致。