美文网首页
class static

class static

作者: _Miner | 来源:发表于2020-10-12 15:19 被阅读0次

类class通过 static 关键字定义静态方法。不能在类的实例上调用静态方法,而应该通过类本身调用。不需要实例化类,即可直接通过该类来调用的方法,即称之为“静态方法”。将类中的方法设为静态方法也很简单,在方法前加上static关键字即可。这样该方法就不会被实例继承!

1.类ClassMethod的a方法前有static关键字, 表明该方法是一个静态方法, 可以直接在ClassMethod类上调用。静态方法只能在静态方法中调用,不能在实例方法中调用:

class ClassMethod{
    static a(){
        return "我是ClassMethod类中的,实例方法,无须实例化,可直接调用!"
    }
}
//通过类名直接调用
console.log(ClassMethod.a()) //我是ClassMethod类中的,实例方法,无须实例化,可直接调用!

2.静态方法调用同一个类中的其他静态方法,可使用this关键字:

class ClassMethod{
    static a(){
        return '我只能被静态方法调用'
    }
    static b(){
        //通过静态方法b来调用静态方法a
        console.log(this.a())
    }
}
ClassMethod.b() //输出:我只允许被静态方法调用 

3.通过实例方法来调静态方法会报错:

class ClassMethod{
    static a(){
        return '我只能被静态方法调用'
    }
    b(){
        console.log(this.a()) //TypeError: this.a is not a function
    }
}
var obj=new ClassMethod()
obj.b()

4.父类的静态方法,可以被子类继承:

class ClassMethod {
    static a() { //父类ClassMethod的静态方法
        return '我是父类的静态方法a'
    }
}
class Method extends ClassMethod {}
//子类Method可以直接调用父类的静态方法a
console.log(Method.a())  // 输出:我是父类的静态方法a

5.如果想通过子类的静态方法调用父类的静态方法,需要从super对象上调用:

class ClassMethod {
    static a() {
        return '我是通过super来调取出来的'
    }
}
class Method extends ClassMethod {
    static b(){
        return super.a()
    }
}
console.log(Method.b())  /// 输出:我是通过super来调取出来的

6.静态属性
静态属性指的是 Class 本身的属性, 即Class.propname, 而不是定义在实例对象( this) 上的属性:

class ClassMethod{
   constructor(){
       this.name='实例属性'
   }
}
ClassMethod.prop1='静态属性1'
ClassMethod.prop2='静态属性2'
console.log(ClassMethod.prop1,ClassMethod.prop2) //静态属性1  静态属性2

相关文章

  • swift 中 Class 和 Static 的区别

    Class 和 Static 都表示的是类方法。 无须初始化,Class 和 Static 的区别是 Class ...

  • static、class

    类型区别class 关键字专门用在 class 类型的上下文中的,可以用来修饰类方法以及类的计算属性(注意:不能用...

  • class static

    类class通过 static 关键字定义静态方法。不能在类的实例上调用静态方法,而应该通过类本身调用。不需要实例...

  • day02(数据类型)

    public class Test01 {static byte a;static short b;static ...

  • static作用与用法

    目录一、static变量二、static方法三、static代码块四、static class static表示“...

  • 类变量、static初始化

    class Father{ public static int a = 1; static{ a = 2; }...

  • c++ static 成员变量

    一 static变量在class中的使用 class中声明static变量,s_value的存在不依赖class的...

  • Image.set_fillAmount有GC

    public static class ImageUtil {public static void SetFill...

  • java 单利模式

    public class Singletion { private static class InnerSingl...

  • fibonacci数列的两种实现

    public class MyFibonacci { private static class GenerateT...

网友评论

      本文标题:class static

      本文链接:https://www.haomeiwen.com/subject/ltaupktx.html