Java中Static、final关键字

xiaoxiao2021-02-28  109

static是静态修饰符,一般用来修饰类中的成员。

当定义一个类时,类中会有相应的属性和方法,而属性和方法都是通过本类创建对象调用的。

static 可以修饰成员变量,成员方法

如:public class Person{

            static int age;

            public static void demo(){

             }

        }

static修饰成员变量 :  当一个类中的某一个成员变量,不是属于某个对象,而是属于所有对象。

如:

     public class Chinese{

        int age;

        String name;

        static String nation="中国";     / /中国人国籍都是中国,用static

}

public class Test{

    public static void main(String[] args){

       Chinese ch1=new Chinese();   //创建一个Chinese对象

       ch1.age=18;

       ch1.name="刘德华"

      /* ch1.nation="美国";  如果赋值为”美国”,那么再创建下一个Chinese对象时x.nation就直接为“美国”,static 的东          西放在了静态区/数据共享区,它们是公用的 */

       System.out.println(ch1.name+".."+ch1.nation);    / /ch1.nation 会打印“中国”    

       }

}

用法:

static 修饰的成员属于类,不属于单个这个类的某个对象

1、成员变量

       类名.成员变量名;

2、成员方法

       类名.成员方法名;

静态代码块:

      定义在成员位置,使用static修饰的代码块。

特点:

      1、在同一个类中,它优先于主方法执行,优先于构造代码块执行,当以任意形式第一次使用到该类时就执行。

      2、该类不管创建多少对象,静态代码块只执行一次。

      3、可用于给静态变量赋值,用来给类进行初始化。//数据库中用到

final

final:是个修饰符,意为最终、不可变。可以修饰类、类的成员方法、以及变量(成员变量和局部变量)

final修饰类不可以被继承,但可以继承其他类。

final 修饰方法不可以被覆盖,但父类中没有被final修饰的方法,子类覆盖后可以加final

final 修饰的变量称为常量,这些变量只能赋值一次。

引用类型的变量值为对象地址值,地址值不能变,但地址内的对象属性值可以修改。

final修饰成员变量,需要在创建对象前赋值,否则报错;

       也可以成员变量不赋值,但是构造方法必须赋值。

转载请注明原文地址: https://www.6miu.com/read-61490.html

最新回复(0)