1. /*
  2. Dart中的静态成员:
  3.  
  4. 1、使用static 关键字来实现类级别的变量和函数
  5. 2、静态方法不能访问非静态成员,非静态方法可以访问静态成员
  6.  
  7. */
  8.  
  9. // class Person {
  10. // static String name = '张三';
  11. // static void show() {
  12. // print(name);
  13. // }
  14. // }
  15.  
  16. // main(){
  17. // print(Person.name);
  18. // Person.show();
  19. // }
  20.  
  21. class Person {
  22. static String name = '张三';
  23. int age=20;
  24.  
  25. static void show() {
  26. print(name);
  27. }
  28. void printInfo(){ /*非静态方法可以访问静态成员以及非静态成员*/
  29.  
  30. // print(name); //访问静态属性
  31. // print(this.age); //访问非静态属性
  32.  
  33. show(); //调用静态方法
  34. }
  35. static void printUserInfo(){//静态方法
  36.  
  37. print(name); //静态属性
  38. show(); //静态方法
  39.  
  40. //print(this.age); //静态方法没法访问非静态的属性
  41.  
  42. // this.printInfo(); //静态方法没法访问非静态的方法
  43. // printInfo();
  44.  
  45. }
  46.  
  47. }
  48.  
  49. main(){
  50. // print(Person.name);
  51. // Person.show();
  52.  
  53. // Person p=new Person();
  54. // p.printInfo();
  55.  
  56. Person.printUserInfo();
  57.  
  58. }
  1. /*
  2. Dart中的对象操作符:
  3.  
  4. ? 条件运算符 (了解)
  5. as 类型转换
  6. is 类型判断
  7. .. 级联操作 (连缀) (记住)
  8. */
  9.  
  10. class Person {
  11. String name;
  12. num age;
  13. Person(this.name,this.age);
  14. void printInfo() {
  15. print("${this.name}---${this.age}");
  16. }
  17.  
  18. }
  19.  
  20. main(){
  21.  
  22. // Person p;
  23. // p?.printInfo();
  24.  
  25. // Person p=new Person('张三', 20);
  26. // p?.printInfo();
  27.  
  28. // Person p=new Person('张三', 20);
  29.  
  30. // if(p is Person){
  31. // p.name="李四";
  32. // }
  33. // p.printInfo();
  34. // print(p is Object);
  35.  
  36. // var p1;
  37.  
  38. // p1='';
  39.  
  40. // p1=new Person('张三1', 20);
  41.  
  42. // // p1.printInfo();
  43. // (p1 as Person).printInfo();
  44.  
  45. // Person p1=new Person('张三1', 20);
  46.  
  47. // p1.printInfo();
  48.  
  49. // p1.name='张三222';
  50. // p1.age=40;
  51. // p1.printInfo();
  52.  
  53. Person p1=new Person('张三1', 20);
  54.  
  55. p1.printInfo();
  56.  
  57. p1..name="李四"
  58. ..age=30
  59. ..printInfo();
  60.  
  61. }

  1. /*
  2.  
  3. 面向对象的三大特性:封装 、继承、多态
  4.  
  5. Dart中的类的继承:
  6. 1、子类使用extends关键词来继承父类
  7. 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数
  8. 3、子类能复写父类的方法 getter和setter
  9.  
  10. */
  11.  
  12. class Person {
  13. String name='张三';
  14. num age=20;
  15. void printInfo() {
  16. print("${this.name}---${this.age}");
  17. }
  18. }
  19. class Web extends Person{
  20.  
  21. }
  22.  
  23. main(){
  24.  
  25. Web w=new Web();
  26. print(w.name);
  27. w.printInfo();
  28.  
  29. }
  1. /*
  2.  
  3. 面向对象的三大特性:封装 、继承、多态
  4.  
  5. Dart中的类的继承:
  6. 1、子类使用extends关键词来继承父类
  7. 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数
  8. 3、子类能复写父类的方法 getter和setter
  9.  
  10. */
  11.  
  12. class Person {
  13. String name;
  14. num age;
  15. Person(this.name,this.age);
  16. void printInfo() {
  17. print("${this.name}---${this.age}");
  18. }
  19. }
  20.  
  21. class Web extends Person{
  22. Web(String name, num age) : super(name, age){
  23.  
  24. }
  25.  
  26. }
  27.  
  28. main(){
  29.  
  30. // Person p=new Person('李四',20);
  31. // p.printInfo();
  32.  
  33. // Person p1=new Person('张三',20);
  34. // p1.printInfo();
  35.  
  36. Web w=new Web('张三', 12);
  37.  
  38. w.printInfo();
  39.  
  40. }
  1. /*
  2.  
  3. 面向对象的三大特性:封装 、继承、多态
  4.  
  5. Dart中的类的继承:
  6. 1、子类使用extends关键词来继承父类
  7. 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数
  8. 3、子类能复写父类的方法 getter和setter
  9.  
  10. */
  11.  
  12. class Person {
  13. String name;
  14. num age;
  15. Person(this.name,this.age);
  16. void printInfo() {
  17. print("${this.name}---${this.age}");
  18. }
  19. }
  20.  
  21. class Web extends Person{
  22. String sex;
  23. Web(String name, num age,String sex) : super(name, age){
  24. this.sex=sex;
  25. }
  26. run(){
  27. print("${this.name}---${this.age}--${this.sex}");
  28. }
  29.  
  30. }
  31.  
  32. main(){
  33.  
  34. // Person p=new Person('李四',20);
  35. // p.printInfo();
  36.  
  37. // Person p1=new Person('张三',20);
  38. // p1.printInfo();
  39.  
  40. Web w=new Web('张三', 12,"男");
  41.  
  42. w.printInfo();
  43.  
  44. w.run();
  45.  
  46. }
  1. /*
  2.  
  3. 面向对象的三大特性:封装 、继承、多态
  4.  
  5. Dart中的类的继承:
  6. 1、子类使用extends关键词来继承父类
  7. 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数
  8. 3、子类能复写父类的方法 getter和setter
  9.  
  10. */
  11.  
  12. class Person {
  13. String name;
  14. num age;
  15. Person(this.name,this.age);
  16. Person.xxx(this.name,this.age);
  17. void printInfo() {
  18. print("${this.name}---${this.age}");
  19. }
  20. }
  21.  
  22. class Web extends Person{
  23. String sex;
  24. Web(String name, num age,String sex) : super.xxx(name, age){
  25. this.sex=sex;
  26. }
  27. run(){
  28. print("${this.name}---${this.age}--${this.sex}");
  29. }
  30.  
  31. }
  32.  
  33. main(){
  34.  
  35. // Person p=new Person('李四',20);
  36. // p.printInfo();
  37.  
  38. // Person p1=new Person('张三',20);
  39. // p1.printInfo();
  40.  
  41. Web w=new Web('张三', 12,"男");
  42.  
  43. w.printInfo();
  44.  
  45. w.run();
  46.  
  47. }
  1. /*
  2.  
  3. 面向对象的三大特性:封装 、继承、多态
  4.  
  5. Dart中的类的继承:
  6. 1、子类使用extends关键词来继承父类
  7. 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数
  8. 3、子类能复写父类的方法 getter和setter
  9.  
  10. */
  11.  
  12. class Person {
  13. String name;
  14. num age;
  15. Person(this.name,this.age);
  16. void printInfo() {
  17. print("${this.name}---${this.age}");
  18. }
  19. work(){
  20. print("${this.name}在工作...");
  21. }
  22. }
  23.  
  24. class Web extends Person{
  25. Web(String name, num age) : super(name, age);
  26.  
  27. run(){
  28. print('run');
  29. }
  30. //覆写父类的方法
  31. @override //可以写也可以不写 建议在覆写父类方法的时候加上 @override
  32. void printInfo(){
  33. print("姓名:${this.name}---年龄:${this.age}");
  34. }
  35. @override
  36. work(){
  37. print("${this.name}的工作是写代码");
  38. }
  39.  
  40. }
  41.  
  42. main(){
  43.  
  44. Web w=new Web('李四',20);
  45.  
  46. w.printInfo();
  47.  
  48. w.work();
  49.  
  50. }
  1. /*
  2.  
  3. 面向对象的三大特性:封装 、继承、多态
  4.  
  5. Dart中的类的继承:
  6. 1、子类使用extends关键词来继承父类
  7. 2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数
  8. 3、子类能复写父类的方法 getter和setter
  9.  
  10. */
  11.  
  12. class Person {
  13. String name;
  14. num age;
  15. Person(this.name,this.age);
  16. void printInfo() {
  17. print("${this.name}---${this.age}");
  18. }
  19. work(){
  20. print("${this.name}在工作...");
  21. }
  22. }
  23.  
  24. class Web extends Person{
  25. Web(String name, num age) : super(name, age);
  26.  
  27. run(){
  28. print('run');
  29. super.work(); //自类调用父类的方法
  30. }
  31. //覆写父类的方法
  32. @override //可以写也可以不写 建议在覆写父类方法的时候加上 @override
  33. void printInfo(){
  34. print("姓名:${this.name}---年龄:${this.age}");
  35. }
  36.  
  37. }
  38.  
  39. main(){
  40.  
  41. Web w=new Web('李四',20);
  42.  
  43. // w.printInfo();
  44.  
  45. w.run();
  46.  
  47. }

Dart静态方法、对象操作符和类的继承的更多相关文章

  1. python 静态方法,类方法 ,类的继承

    转自:  http://cowboy.1988.blog.163.com/blog/static/75105798201091141521583/ 1.关于定义类的一些奇特之处  今天在Python中 ...

  2. Class的使用,构造方法,实例属性和实例方法,静态属性和静态方法,this和super关键字,类的继承

    s6新增了一种定义对象实例的方法,Class(类)这个概念,作为对象的模板.class可以看作只是一个语法糖,通过class关键字,可以定义类.让对象原型的写法更加清晰.更像面向对象编程的语法. 一. ...

  3. java类的继承

    继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(重写)的方式,产生一个新的类型.继承是面向对 象的三个基本特征--封装.继承.多态的其中之一,我们在使用java时编写的每一个类都是 ...

  4. 游戏编程之Unity常用脚本类的继承关系

    前言学习Unity开发引擎的初学者会接触大量的脚本类,而这些类之间的关系往往容易被忽略.本文对Unity引擎开发中的一些常用类及其关系进行了简单的归纳总结. 博文首发地址:http://tieba.b ...

  5. ES6 class类 静态方法及类的继承

    一.class类 ES6之前都是定义函数以及函数的原型对象实现类型, 如果想要实现共享构造函数成员,可以用prototype来共享实现 ES6出现之后,使用class类的概念来实现原型的继承 二,静态 ...

  6. python 零散记录(七)(下) 新式类 旧式类 多继承 mro 类属性 对象属性

    python新式类 旧式类: python2.2之前的类称为旧式类,之后的为新式类.在各自版本中默认声明的类就是各自的新式类或旧式类,但在2.2中声明新式类要手动标明: 这是旧式类为了声明为新式类的方 ...

  7. python类的继承和多态,获取对象信息

    继承 类的继承机制使得子类可以继承父类中定义的方法,拥有父类的财产,比如有一个Animal的类作为父类,它有一个eat方法: class Animal(object): def __init__(se ...

  8. ES6学习笔记(二):教你玩转类的继承和类的对象

    继承 程序中的继承: 子类可以继承父类的一些属性和方法 class Father { //父类 constructor () { } money () { console.log(100) } } c ...

  9. (转)Java:类与继承

    原文地址: http://www.cnblogs.com/dolphin0520/p/3803432.html 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大 ...

随机推荐

  1. P1436 棋盘分割[dp]

    题目描述 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的两部分中的任意一块继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘.(每次 ...

  2. java.lang.RuntimeException: org.springframework.dao.DuplicateKeyException:

    java.lang.RuntimeException: org.springframework.dao.DuplicateKeyException: ### Error updating databa ...

  3. 单片机开发之C语言编程基本规范

    为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范.本标准规定了程序设计人员进行程序设计时必须遵循的规范.本规范主要针对单片机编程语言和08编译器而言,包括排版.注释.命名.变量 ...

  4. python关于字典嵌套字典,列表嵌套字典根据值进行排序

    python 对于字典嵌套字典, 列表嵌套字典排序 例:列表嵌套自字典:d = [{"name": '张三', 's': 68}, {'name': '李四', 's': 97}] ...

  5. 2019 icpc 徐州 解题报告

    A.Cat 题库链接 给定区间[l,r],求一个最长子区间,使得区间异或和小于等于s,(结论)偶数和偶数后三个数的异或和等于0 #include <bits/stdc++.h> using ...

  6. 洛谷 P816 忠诚 题解

    每日一题 day28 打卡 Analysis 这道题用线段树维护区间最小值很简单,因为没有修改所以连lazy_tag都不用,但是这道题可以用树状数组维护区间最小值,非常骚气. 线段树代码: #incl ...

  7. ELK实践

    一.ElasticSearch+FileBeat+Kibana搭建平台 在C# 里面运行程序,输出日志(xxx.log 文本文件)到FileBeat配置的路径下面. 平台搭建,参考之前的随笔. Fil ...

  8. GoCN每日新闻(2019-09-28)

     GoCN每日新闻(2019-09-28) 1. 可视化Go程序的调用图 https://truefurby.github.io/go-callvis/2. Go modules编写和发布官方教程 h ...

  9. selenium定位元素的方法

    1.id定位: find_element_by_id() 从上面定位到的搜索框属性中,有个id="kw"的属性,我们可以通过这个id定位到这个搜索框 代码: # coding = ...

  10. [luogu 5024] 保卫王国

    Problem Here Solution 这大概是一篇重复累赘的blog吧. 最小权覆盖集=全集-最大权独立集 强制取或不取,可以通过将权值修改成inf或者-inf 然后就用动态dp的套路就行了 动 ...