• dart中的类


    1. static:在方法前加了static修饰那他就是静态类,静态属性和静态方法我们可以通过类来访问不需要类实例再访问。静态方法不能访问非静态成员,非静态方法可以访问静态成员。

    class person{
        static string name = '张三';
        int age = 20;
        static void show(){
            print('static');
        }|
        void pointInfo(){
        //此时调用不要用this了,因为this表示当前类实例
            print(name);
            show();
        }
    }

    2. as操作符

    class person{
        string name = '李四';
        int age = 1;
        sayhi(){
            print('hi');
        }
    }
    var p1;
    p1 = ' ';
    p1 = new person('啊啊');
    //as表示类型转换
    (p1 as person).sayhi();

    3. 级联操作“  ..   ”

    class person{
        string name ;
        int age;
              person(this.name, this.age); 
        void sayhi(){
            print('hi');
        }
    }
    
    person p1 = new person('aa', 1);
    p1.sayhi();
    //p1.name = '张三aa';
    //p1.age = 2;
    //p1.sayhi();
    
    //以上三行代码可以简化成
    p1..name = "李四"
       ..age = 30
       ..sayhi();

    4. is操作符

    class person{
        string name;
        age int;
        sayhi(){
            print('aa');
        }
    }
    person p = new person('zs', 20);
    //判断p这个对象是否属于person这个类型
    if(p is person){
        p.name = "name";
    } 

    5. 继承 

    class person{
        string name;
        int age;
        person(this.name,this.age);
        void sayhi(){
            print('hi');
        }
    }
    
    class stu extends person{
        string sex;
         //定义继承类时stu会报错,因为person中的构造函数中有参数,stu中也应有构造函数给父类传参;super表示把实例化子类的时候,把赋值的参数传给父类
          stu(string name, num age, string sex) : super(name, age){
                //name, age都传给了父类,sex是把sex传的值传给定义时的string sex
                this.sex = sex
          };
          
     }
    main(){
        stu  s1 = new person();
        print(s1.name);
    }子类重写父类

     子类重写父类

    class person{
        string name;
        int age;
        person(this.name,this.age);
        void sayhi(){
            print('hi');
        }
    }
    class stu extends person{
        stu(string name, num age):super(name,age);
    run(){
        //子类调用父类方法和属性
        super.sayhi();
        this.name;
       }
    //重写父类方法、建议用@override修饰 @override void sayhi(){}    } main(){ stu s = new person('lisi',20); }
  • 相关阅读:
    Java关键字——instanceof
    C#基础知识整理 IList接口——非泛型
    .Net 中HashTable,HashMap 和 Dictionary<key,value> 和List<T>和DataTable的比较
    JS 判断是否为null
    java数组与字符串相互转换、整型与字符串相互转换
    数组元素的反转
    IOS系统中点击失效
    vue中计算属性和方法的区别,演示代码
    VUE中使用的插件有哪些?为什么,不能自动补全,script,methods和export default?
    【VueJS】实例中data属性的三种写法及区别
  • 原文地址:https://www.cnblogs.com/xhrr/p/11431267.html
Copyright © 2020-2023  润新知