一、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类型