static和final两种修饰符

在javaEE第一天的课程中我们学了用java输出"HelloWorld",

他的代码是,

public class Demo01 {

    public static void main(String[] args) {
        System.out.println("HelloWorld");

}

那么这里就用到了一个static,主方法中就被static修饰过了,那么这个static是什么意思,怎么用,为什么要这么用呢,通过今天的学习可以有深入的了解

static是静态修饰符,一般修饰成员。

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

static修饰的成员被多个对象共享。

被static修饰的成员又叫类成员,不叫对象的成员。

static  使用格式:

类名.静态成员变量名

类名.静态成员方法名(参数)

代码演练

class Demo {

   //静态成员变量

   publicstaticintnum = 100;

   //静态方法

   publicstaticvoidmethod(){

      System.out.println("静态方法");

   }

}

class Test {

   publicstaticvoidmain(String[] args) {

      System.out.println(Demo.num);

      Demo.method();

   }

}

Static如果修饰了代码块,那么这个代码块就叫做静态代码块

特点:

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

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

可用于给静态变量赋值,用来给类进行初始化。

public class Person {

   privateString name;

   privateint age;

 //静态代码块

   static{

      System.out.println("静态代码块执行了");

   }

}

======================================================

final修饰符

final的意思是最终,不可变的,那么在java中的应用也是顾名思义

final是个修饰符,它可以用来修饰:类、方法、局部变量以及成员变量。

final在使用中的特点和方法

1.1     final的特点

final修饰类

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

class Yy {}

finalclass Fu extends Yy{} //可以继承Yy

class Zi extendsFu{} //不能继承Fu

 

final修饰方法

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

class Fu {

    // final修饰的方法,不可以被覆盖,但可以继承使用

publicfinalvoid method1(){}

publicvoidmethod2(){}

}

class Zi extends Fu {

    //重写method2方法

    publicfinalvoid method2(){}

}

final修饰局部变量

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

finalinti = 20;

i = 30; //赋值报错,final修饰的变量只能赋值一次

 

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

final Person p = new Person();

Person p2 = newPerson();

p = p2; //final修饰的变量p,所记录的地址值不能改变

p.name = "小明";//可以更改p对象中name属性值

p不能为别的对象,而p对象中的name或age属性值可更改。

final修饰成员变量

l  修饰成员变量,需要在创建对象前赋值,否则报错。(当没有显式赋值时,多个构造方法的均需要为其赋值。)

class Demo {

    //直接赋值

    finalintm = 100;

   

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

    finalintn;

    publicDemo(){

        //可以在创建对象时所调用的构造方法中,为变量n赋值

        n = 2016;

    }

}



 

 

 

 

 

发布了56 篇原创文章 · 获赞 3 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章