zoukankan      html  css  js  c++  java
  • 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); }
  • 相关阅读:
    什么是模板方法模式?
    在多线程环境下,SimpleDateFormat 是线程安全的吗?
    抽象类是什么?它与接口有什么区别?你为什么要使用过 抽象类?
    依赖注入和工程模式之间有什么不同?
    什么时候使用访问者模式?
    Java 中,受检查异常 和 不受检查异常的区别?
    说出 5 个 JDK 1.8 引入的新特性?
    什么是领域驱动设计?
    列举 IoC 的一些好处?
    什么是 Spring 配置文件?
  • 原文地址:https://www.cnblogs.com/xhrr/p/11431267.html
Copyright © 2011-2022 走看看