Static(静态)关键字入门

一.static 有什么用?

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

2,不可修饰局部变量(局部变量属于类的,不属于方法,而静态是定义在类上的)。

二.static成员 的特点

1,被类中对象共享。

2,通过类名进行调用。

3,随着类的加载而加载。

4,优先于对象存在

三.static方法的访问特点

1,静态方法只能调用静态成员(静态成员变量,静态成员方法)。

2.非静态方法可以调用任意成员。

原因:类优先于方法存在,非静态属于对象方法,静态属于类的方法,先进内存不能访问后进内存,非静态方法需要创建对象,用对象进行调用。

同理:静态方法中也不能用this,因为this是对象,类优先于对象存在,对象还没存在,所以不能写。

四.Java中可以重写private or static 的方法?

不可以

原因;1.private 修饰的方法是不可被重写的,private修饰只能在本类使用。

2.静态方法可以被继承,但没有意义,因为子类不是重写而是产生一个于父类毫无关系的静态方法,父类的隐藏了。

So,子类不能继承父类私有的或者是静态的方法

五.抽象方法可以被static修饰吗?

不能,抽象方法没有方法体,调没方法体的方法没意义。

六.静态内部类

静态内部类可以定义静态和非静态的成员变量和方法。

非静态的内部类只能定义非静态的成员(成员变量,成员方法)。

静态内部类只能访问内部静态和非静态的成员,只能访问外部类中的静态成员。

非静态类可以全访问,(内部静态和非静态的成员,外部的静态成员和非静态成员)

七,静态代码块

随着类的加载而加载,优先于构造方法执行,只执行一次,作用是:用于类的初始化,加载驱动。

八.static是把双刃剑

利:

1共享静态方法,节省空间,没必要每个对象储存一份。

2.可以通过类名调用。(工具类,单例模式)

弊:

1.静态方法随着类的加载而加载,随着类的消失而消失,生命周期长。

2.访问局限,只能访问外部静态资源。

猜你喜欢

转载自www.cnblogs.com/fengtangjiang/p/11104526.html