java web 05 : static、final

static

1.可以修饰成员变量,成员方法

2.随着类的加载而加载,优先于对象加载

3.只加载一次就会一直存在,不再开辟空间

4.静态变量全局唯一,全局共享,多个对象间共享

5.可以直接被类名调用

6.静态方法只能调用静态变量和方法,不能用this调用非静态变量和方法。非静态方法可以随意调用

   static方法不可以重写,即使一模一样的声明也不是重写,因为静态资源是随着类存在的

7.static里不能出现this 和super ,因为static 在类加载时加载,此时还没有对象

 ************************************************************************************

补充:静态类

 

 public class Outer {
    private String name;
    private int age;

    public static class Builder {
        private String name;
        private int age;

        public Builder(int age) {
            this.age = age;
        }

        public Builder withName(String name) {
            this.name = name;
            return this;
        }

        public Builder withAge(int age) {
            this.age = age;
            return this;
        }

        public Outer build() {
            return new Outer(this);
        }
    }

    private Outer(Builder b) {
        this.age = b.age;
        this.name = b.name;
    }
}

 

 ***************************************************************************************

final 关键字:

1.在继承结构中,父类的功能可以全都给子类用。

   但是子类想要修改功能时,会发生重写,为了限制子类权限,用final将父类方法修饰为最终的。

 即final修饰的方法不能被重写,但可以被继承

2.final修饰的成员变量要么声明时赋值,要么在构造方法里赋值,不能被重新赋值,但可以被继承

3.final修饰类时,这个类不能被继承

posted @ 2020-07-11 11:14  Saturn5  阅读(24)  评论(0)    收藏  举报