1。概念所谓成员变量是指直接定义在类中的变量(不是方法或其他代码块)。根据是否带有static关键字,成员变量分为静态变量(类变量)和实例变量(对象变量)。成员变量在整个类内有效,可以在当前类的任何方法中使用。另外,如果成员变量没有被private修饰,也可以在其他类中被引用。2.实例变量实例变量也称为对象变量,是指类中定义的非静态变量。实例变量具有以下特点:●实例变量在类中声明,但在方法、构造方法和语句块之外;●当一个对象被实例化时,每个实例变量的值都相应地确定;●实例变量在创建对象时创建,在对象销毁时销毁;●实例变量对类中的方法、构造方法或语句块可见。一般来说,我们应该将实例变量设置为private,访问修饰符可以让实例变量对子类可见;●实例变量有默认值。数值变量的默认值为0,布尔变量的默认值为false,引用变量的默认值为null。变量的值可以在声明时指定,也可以在构造方法中指定;●可以通过变量名直接访问实例变量。但在静态方法和其他类中,您应该使用完全限定名称:ObjectReference.VariableName。3.静态变量静态变量,也称为类变量,是由static修饰的,直接定义在类中(方法外)的变量。它具有以下特点:●静态变量可以被public、private、final和static修饰;●静态变量定义在方法外,但可以在静态语句块中初始化,初始化后不能更改;●静态变量和实例变量具有相似的可见性。但是为了对类的用户可见,大多数静态变量都被声明为public类型;●静态变量的默认值与实例变量相似;●静态变量通过ClassName.VariableName的形式访问;●静态变量存放在静态存储区;●静态变量在第一次被访问时创建,程序结束时销毁;●无论在一个类中创建了多少个对象,一个类只有一个类变量的副本;●静态变量声明为public当使用staticfinal类型时,一般建议变量名使用大写字母。4.权限修饰符大家要注意的是,可以通过权限修饰符来修改成员变量的作用域。也就是说,我们可以给一个成员变量不同的修饰符,给变量不同的权限。比如,我们可以给一个人分配不同的“角色标签”,来改变这个人的“权力”。在Java中,有以下四种权限修饰符:1.private私有修饰符:可以修饰成员变量、成员方法、构造函数,但不能修饰类(内部类除外)。private修饰的成员只能在被修饰的类中访问,不能在其他类中调用。一般由private修饰的成员变量通过public的set和get方法对外提供访问。2.Defalut默认修饰符:不用写任何关键字,可以修饰类、成员变量、成员方法、构造方法。变量被默认权限修改后,只能被本类和同包下的其他类访问。3.protected保护修饰符:可以修饰成员变量、成员方法、构造函数,但不能修饰类(内部类除外)。成员变量被protected修饰后,可以在同一个类内部和同一个包内的其他类中访问。如果不同包中的类要访问protected修饰的成员,则该类必须是它的子类。4.public修饰符:是最有权限的修饰符,可以修饰类、成员变量、成员方法、构造方法。成员变量被public修饰后,可以在任何类中任意使用,不管是不是同一个包。5.案例以下案例中,一哥定义了2个成员变量供大家参考:publicclassDemo01{privateintage=18;//实例变量,对象变量,在当前Demo01类内部有效publicstaticStringmsg="你好,兄弟Yiyi";//静态变量和类变量,因为是public的,可以在当前Demo01类和其他类中使用。publicstaticvoidmain(String[]args){//注意:静态静态方法中不能引用非静态变量//System.out.println("age="+age);System.out.println("msg="+msg);}}
