1.成员变量和局部变量
java
局部变量须要初始值,成员变量不须要(java自动赋值)对象
做用域不一样作用域
成员: 变量
整个类的内部可见
程序
局部变量:仅限于定义它的方法
方法
成员变量不能够重名声明,局部变量在不一样的方法中生命时能够重名,im
局部变量和成员变量同名时,局部变量具备优先级(就近原则)static
2.构造方法img
new +() 就是类加构造方法 ,初始化类co
没有返回值,方法名和类名相同
没有构造方法就无法实例化对象;
有参和无参是并存的;
3.
Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类全部,而不是某个对象全部,即被类的全部对象所共享。静态成员可使用类名直接访问,也可使用对象名进行访问。固然,鉴于他做用的特殊性更推荐用类名访问~~
只能能用 public修饰使用 static 能够修饰变量、方法和代码块。
一、 静态方法中能够直接调用同类中的静态成员,但不能直接调用非静态成员。
若是但愿在静态方法中调用非静态变量,能够经过建立类的对象,而后经过对象来访问非静态变量。
2.在普通成员方法中,则能够直接访问同类的非静态变量和静态变量
三、 静态方法中不能直接调用非静态方法,须要经过对象来访问非静态方法。如
在类的声明中,能够包含多个初始化块,当建立类的实例时,就会依次执行这些代码块。若是使用 static 修饰初始化块,就称为静态初始化块。
须要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
经过输出结果,咱们能够看到,程序运行时静态初始化块最早被执行,而后执行普通初始化块,最后才执行构造方法。因为静态初始化块只在类加载时执行一次,因此当再次建立对象 hello2 时并未执行静态初始化块。