static:
static:静态的;用于修饰成员(成员变量;成员方法)。
被static修饰后的成员变量只有一份!
当成员被static修饰之后;就多了一种访问方式;除了可以被对象调用之外;还可以直接被类名调用;(类名.静态成员)。
static的特点:
随着类的加载而被加载。
优先于对象存在。
被所有对象共享。
被static修饰的变量成为静态变量(类变量)或者实例变量。
static注意事项:
-
静态的方法只能访问静态的成员。
-
非静态得方法即能访问静态得成员(成员变量;成员方法)又能访问非静态得成员。
-
局部变量不能被static修饰。
-
静态得方法中是不可以定义this;super关键字的;因为静态优先于对象存在;所以静态方法不可以出this。
代码演示:
StastTest类:
package com.AAA.static1_9;
public class StaticTest {
String name;
static String country;
static void print() {
System.out.println("你好" + country);
}
void print1() {
System.out.println("我好" + name);
}
}
Test类:
package com.AAA.static1_9;
public class Test {
public static void main(String[] args) {
StaticTest staticTest1=new StaticTest();
StaticTest staticTest2=new StaticTest();
StaticTest.country="国家";
staticTest1.name="猪小明";
staticTest2.name="猪小花";
StaticTest.print();
staticTest1.print1();
staticTest2.print1();
}
}
静态方法:
静态方法是属于类的;(类名.方法名进行调用)。
静态方法使用成员变量的时候成员变量需要是静态变量。
静态方法不能直接调用普通的方法。
静态代码块:
Static修饰的代码块就是静态代码块。
静态代码块只会在类加载的时候执行一次。
一般是在java连接数据库的时候使用。
Static执行的时候是优先于构造方法的。
Final:
- 通常用Final修饰的变量叫做常量;且常量只能被赋值一次。
final修饰的成员变量 要么在构造方法里面赋值 要么直接赋值
Final修饰的方法为最终方法且不能重写。
Final修饰的类为最终类不能被继承。
Final修饰的对象地址值不能发生改变;但属性可以