美文网首页
Dart的静态属性和静态方法

Dart的静态属性和静态方法

作者: 见字如晤一 | 来源:发表于2022-02-14 16:46 被阅读0次

    学习完基本语法、函数、类和对象,给我的感觉最大的就是Dart和Java太像了,不知道是不是错觉。今天我们来学习Dart的static关键字,静态!!!

    静态有:1、没有静态类 2、静态方法 3、静态属性

    先来看一段代码:

    class Rect {
      //定义静态属性:1、通过static关键字定义静态属性
      // 2、需要给到初始化值,否则需要再static后加上late关键字标识延迟赋值
      static int height = 0;
      static late int width;
      int area = 0;
    
      Rect() {}
    
      //定义静态方法,通过static关键字实现
      static void setWidth(int w) {
        width = w;
      }
    
      //定义非静态方法,可以访问静态方法和静态属性,以及非静态属性
      //1、非静态属性可加也可不加this,this代表的是类对象
      //2、静态属性不能加this,因为静态属于类,不属于对象
      //3、访问静态方法,直接调用
      //4、访问非静态方法,直接调用
      void setMyWidth(int w) {
        print("默认面积 area = " + area.toString());
        print("高 = " + height.toString()); //
        setWidth(w);
        printInfo();
      }
      
      void printInfo(){
        print("print info");
      }
    
      //定义静态方法,可以访问的只有静态方法和静态属性,不能访问非静态属性和非静态方法
      static void setMyW(int w){
        // print("默认面积 area = " + area.toString());//不能访问非静态属性
        print("高 = " + height.toString()); //
        setWidth(w);
        // printInfo();//不能访问非静态方法
      }
    }
    

    一、静态类
    Dart中没有静态类,没有内部类(也没有静态内部类!!)

    Classes can't be declared inside other classes. 
    

    定义接口

    二、静态方法
    静态方法中,可以访问静态属性,不可以访问非静态属性。可以访问静态方法,不可以访问非静态方法。

    三、静态属性

    可以被静态方法或非静态方法访问。不能在静态属性前加this.
    

    四、非静态方法

    非静态方法,可以访问静态方法和静态属性,以及非静态属性、非静态方法。遵循下列规则:
      1、非静态属性可加也可不加this,this代表的是类对象
      2、静态属性不能加this,因为静态属于类,不属于对象
      3、访问静态方法,直接调用
      4、访问非静态方法,直接调用
    

    总结:

    Dart中的静态成员:
    1、使用static 关键字来实现类级别的变量和函数
    2、静态方法不能访问非静态成员,非静态方法可以访问静态成员

    相关文章

      网友评论

          本文标题:Dart的静态属性和静态方法

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