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

}

原文地址:https://www.cnblogs.com/loaderman/p/11026807.html

时间: 2024-08-30 17:52:42

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

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

s6新增了一种定义对象实例的方法,Class(类)这个概念,作为对象的模板.class可以看作只是一个语法糖,通过class关键字,可以定义类.让对象原型的写法更加清晰.更像面向对象编程的语法. 一.  Class的基本用法 1.  constructor方法 1 //定义类 2 class Point { 3 constructor(x, y) { 4 this.x = x; 5 this.y = y; 6 } 7 8 toString() { 9 return '(' + this.x +

【Unity】常用脚本类的继承关系(入门篇)

前言 学习Unity开发引擎的初学者会接触大量的脚本类,而这些类之间的关系往往容易被忽略. 本文对Unity引擎开发中的一些常用类及其关系进行了简单的归纳总结. 博文首发地址:http://blog.csdn.net/duzixi Unity常用脚本类继承关系图 对Unity开发稍有了解的朋友都知道,在Unity开发框架中有4个基本层次:工程(应用程序).场景.游戏对象和组件. 在脚本中,整个应用程序和场景由Application类控制:而游戏对象和组件类均继承于Object类. 在Object

java类的继承

继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(重写)的方式,产生一个新的类型.继承是面向对 象的三个基本特征--封装.继承.多态的其中之一,我们在使用java时编写的每一个类都是在继承,因为在java语言 中,java.lang.object类是所有类最根本的基类(或者叫父类.超类),如果我们新定义的一个类没有明确地指定继承自哪个基类,那么java 就会默认为它是继承自object类的. 1.为什么需要使用继承? 提高代码的重用性. 提高程序的扩展性. 2.Java继承的语

python-装饰器,类与对象,私有字段,析构,__call__,继承,多继承,接口

1.装饰器执行流程 装饰器:将原函数替换为wrapper函数 def outer() @outer  --- func1作为参数传入outer() def wrapper()  --- wrapper()放入内存 return wrapper   --- 返回wrapper地址,Func1重新赋值为wrapper Func1()  --- 调用func1函数 def wrapper() print '验证' def Func1() print 'func1' [[email protected]

201671010116. 2016-2017-4《Java程序设计》认识对象与类及继承

1.  类和对象是面向对象编程思想中的核心和基础.类是作为对象的抽象而存在的,所有的对象都依据相应的类来产生,在面向对象的术语中,这个产生对象的过程称为"实例化".类就是对一类事物或者一类对象的一个归类或者说划分.我们甚至可以说,"类"只是一个形容词,而'对象'就是这个形容词所形容的其中一个"实体对象".当然也有例外,比如我们都知道Java里面有一个关键字 'static',大家都知道被static所修饰的变量或者方法,在使用的时候是不需要实例化

递归函数、二分查找、面相对象初识、类空间,对象空间、组合、继承

一.递归函数 一般递归100多次,都没有解决的问题,放弃递归. 默认递归深度:998 修改默认递归次数 import sys sys.setrecursionlimit(100000) #设置十万次 count = 0 def func1(): global count count += 1 print(count) func1() func1() 用递归 解决一个年龄问题. alex 他比佩奇 大两岁.  4   age(3) + 2 佩奇 他比日天 大两岁.  3   age(2) + 2

类与继承(一)

在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的). 在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初始化: 1)对于  char.short.byte.int.long.float.double等基本数据类型的变量来说会默认初始

Objective-C对象之类对象和元类对象

作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/8592492 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢! 作为C语言的超集,面向对象成为Objective-C与C语言的最大区别,因此,对象是Objective-C中最重要的部分之一.目前面向对象的语言有很多,Objective-C中的对象又和其他语言中的对象有什么区别呢?下面来简单介绍Objectiv

java继承2——类与继承(转)

一.你了解类吗? 在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的). 在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初始化: 1)对于  char.short.byte.int.long.float.double等基本数据类型的