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); }

 

上一篇:Javascript面向对象精要读书笔记


下一篇:教你学习JavaScript的this入门到进阶最全用法