1,成员变量和局部变量的区别:
成员变量的作用域是整个类,局部变量的作用域是一个方法,一个方法中不能有同名的变量,不同的方法中可以有同名的变量,成员变量在定义的时候系统会自动赋值(值为0),局部变量在定义时系统不会自动赋值。局部变量可以和成员变量同名,两类变量同名时,局部变量的优先级更高。
2,构造方法是定义在java类中的一个用来初始化对象的方法,构造方法与类同名,并且没有返回值。
3,无参的构造方法系统会自动生成,如果不满意,自己也可以写一个构造方法,那样系统就不会自己生成构造方法了,当实例化对象时就会运行构造方法。有参的构造方法用来为实例化变量赋值。构造方法的重载和普通方法的重载方式是一样的。
4,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。此时就是 static 大显身手的时候了!!Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问~~
要注意哦:静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!~~
5,与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。其实之前我们一直写的 main 方法就是静态方法。
需要注意:(1) 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
(2)在普通成员方法中,则可以直接访问同类的非静态变量和静态变量。
(3)静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法,可以直接调用静态方法。
6,需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。