Dart静态方法、对象操作符和类的继承
/* Dart中的静态成员: 1、使用static 关键字来实现类级别的变量和函数 2、静态方法不能访问非静态成员,非静态方法可以访问静态成员 */ // class Person { // static String name = '张三'; // static void show() { // print(name); // } // } // main(){ // print(Person.name); // Person.show(); // } class Person { static String name = '张三'; int age=20; static void show() { print(name); } void printInfo(){ /*非静态方法可以访问静态成员以及非静态成员*/ // print(name); //访问静态属性 // print(this.age); //访问非静态属性 show(); //调用静态方法 } static void printUserInfo(){//静态方法 print(name); //静态属性 show(); //静态方法 //print(this.age); //静态方法没法访问非静态的属性 // this.printInfo(); //静态方法没法访问非静态的方法 // printInfo(); } } main(){ // print(Person.name); // Person.show(); // Person p=new Person(); // p.printInfo(); Person.printUserInfo(); }
/* Dart中的对象操作符: ? 条件运算符 (了解) as 类型转换 is 类型判断 .. 级联操作 (连缀) (记住) */ class Person { String name; num age; Person(this.name,this.age); void printInfo() { print("${this.name}---${this.age}"); } } main(){ // Person p; // p?.printInfo(); // Person p=new Person('张三', 20); // p?.printInfo(); // Person p=new Person('张三', 20); // if(p is Person){ // p.name="李四"; // } // p.printInfo(); // print(p is Object); // var p1; // p1=''; // p1=new Person('张三1', 20); // // p1.printInfo(); // (p1 as Person).printInfo(); // Person p1=new Person('张三1', 20); // p1.printInfo(); // p1.name='张三222'; // p1.age=40; // p1.printInfo(); Person p1=new Person('张三1', 20); p1.printInfo(); p1..name="李四" ..age=30 ..printInfo(); }
/* 面向对象的三大特性:封装 、继承、多态 Dart中的类的继承: 1、子类使用extends关键词来继承父类 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数 3、子类能复写父类的方法 getter和setter */ class Person { String name='张三'; num age=20; void printInfo() { print("${this.name}---${this.age}"); } } class Web extends Person{ } main(){ Web w=new Web(); print(w.name); w.printInfo(); }
/* 面向对象的三大特性:封装 、继承、多态 Dart中的类的继承: 1、子类使用extends关键词来继承父类 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数 3、子类能复写父类的方法 getter和setter */ class Person { String name; num age; Person(this.name,this.age); void printInfo() { print("${this.name}---${this.age}"); } } class Web extends Person{ Web(String name, num age) : super(name, age){ } } main(){ // Person p=new Person('李四',20); // p.printInfo(); // Person p1=new Person('张三',20); // p1.printInfo(); Web w=new Web('张三', 12); w.printInfo(); }
/* 面向对象的三大特性:封装 、继承、多态 Dart中的类的继承: 1、子类使用extends关键词来继承父类 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数 3、子类能复写父类的方法 getter和setter */ class Person { String name; num age; Person(this.name,this.age); void printInfo() { print("${this.name}---${this.age}"); } } class Web extends Person{ String sex; Web(String name, num age,String sex) : super(name, age){ this.sex=sex; } run(){ print("${this.name}---${this.age}--${this.sex}"); } } main(){ // Person p=new Person('李四',20); // p.printInfo(); // Person p1=new Person('张三',20); // p1.printInfo(); Web w=new Web('张三', 12,"男"); w.printInfo(); w.run(); }
/* 面向对象的三大特性:封装 、继承、多态 Dart中的类的继承: 1、子类使用extends关键词来继承父类 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数 3、子类能复写父类的方法 getter和setter */ class Person { String name; num age; Person(this.name,this.age); Person.xxx(this.name,this.age); void printInfo() { print("${this.name}---${this.age}"); } } class Web extends Person{ String sex; Web(String name, num age,String sex) : super.xxx(name, age){ this.sex=sex; } run(){ print("${this.name}---${this.age}--${this.sex}"); } } main(){ // Person p=new Person('李四',20); // p.printInfo(); // Person p1=new Person('张三',20); // p1.printInfo(); Web w=new Web('张三', 12,"男"); w.printInfo(); w.run(); }
/* 面向对象的三大特性:封装 、继承、多态 Dart中的类的继承: 1、子类使用extends关键词来继承父类 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数 3、子类能复写父类的方法 getter和setter */ class Person { String name; num age; Person(this.name,this.age); void printInfo() { print("${this.name}---${this.age}"); } work(){ print("${this.name}在工作..."); } } class Web extends Person{ Web(String name, num age) : super(name, age); run(){ print('run'); } //覆写父类的方法 @override //可以写也可以不写 建议在覆写父类方法的时候加上 @override void printInfo(){ print("姓名:${this.name}---年龄:${this.age}"); } @override work(){ print("${this.name}的工作是写代码"); } } main(){ Web w=new Web('李四',20); w.printInfo(); w.work(); }
/* 面向对象的三大特性:封装 、继承、多态 Dart中的类的继承: 1、子类使用extends关键词来继承父类 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数 3、子类能复写父类的方法 getter和setter */ class Person { String name; num age; Person(this.name,this.age); void printInfo() { print("${this.name}---${this.age}"); } work(){ print("${this.name}在工作..."); } } class Web extends Person{ Web(String name, num age) : super(name, age); run(){ print('run'); super.work(); //自类调用父类的方法 } //覆写父类的方法 @override //可以写也可以不写 建议在覆写父类方法的时候加上 @override void printInfo(){ print("姓名:${this.name}---年龄:${this.age}"); } } main(){ Web w=new Web('李四',20); // w.printInfo(); w.run(); }
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
posted on 2019-06-15 10:50 LoaderMan 阅读(2242) 评论(0) 编辑 收藏 举报