一、static关键字
1、静态变量
静态变量是属于类的,和对象没有关系。
非静态变量是属于对象的,每个对象都有该数据的副本。
而静态变量只有一个。
public class StaticTest { int commonint=0;//非静态变量 static int staticint=0;//静态变量 StaticTest(int x){ this.commonint=x; } public static void main(String[] args) { StaticTest s1=new StaticTest(1); StaticTest s2=new StaticTest(2); System.out.println("s1.commonint="+s1.commonint); System.out.println("s2.commonint="+s2.commonint); s1.staticint=1; System.out.println("s1.staticint"+s1.staticint); System.out.println("s1.staticint"+s2.staticint); s2.staticint=15; System.out.println("s1.staticint"+s1.staticint); System.out.println("s1.staticint"+s2.staticint); } }
访问静态变量是通过类名.变量名来访问的,以上只是演示效果。
2、静态方法
用static修饰的方法称为静态方法。
访问静态方法是通过(类名.方法名)来访问
1、静态方法不能访问非静态变量
2、非静态方法可以访问静态变量
静态属性或方法是在类加载的时候产生的
非静态的属性或方法是在new的时候产生的。
3、静态常量
public static final int x=100;
二、final关键字
使用final关键字修饰过的都是不可改变的。
1、final修饰变量
恒定不变的属性,可以使用final来进行修饰。
变量名建议使用大写。
2、final修饰方法
继承无法覆盖该方法。
重载不会收到限制。
3、final修饰类
该类不能作为任何类的父类
类中的方法会全部被自动定义称为final类型