Dart中的类 静态成员 操作符 类的继承

01 Dart类中静态成员 静态方法

Dart中的静态成员:
  1. 使用static 关键字来实现类级别的变量和函数
  2. 静态方法不能访问非静态成员,非静态方法可以访问静态成员
/**
 * 
 * Dart中的静态成员:
 * 
 * 1.使用static 关键字来实现类级别的变量和函数
 * 
 * 2.静态方法不能访问非静态成员,非静态方法可以访问静态成员
 * 
 */

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(age);//静态方法没法访问非静态属性

//printInfo();//静态方法没法访问非静态方法

}
}

void main(){

// 1.使用static 关键字来实现类级别的变量和函数
print(Person.name);//张三
Person.show();//张三

//2.静态方法不能访问非静态成员,非静态方法可以访问静态成员
Person p=new Person();
p.printInfo();//张三  20   张三
print(Person.printUserInfo);//20  张三
}

02 Dart中的对象操作符

 Dart中对象操作符:

  ?   条件运算符(了解)

  as   类型转换

  is   类型判断

  ..   级联操作 (连缀)

/**
 * Dart中对象操作符:
 * 
 * ?   条件运算符(了解)
 * 
 * as   类型转换
 * 
 * is   类型判断
 * 
 * ..   级联操作 (连缀)
 * 
 */
class Person{
String name="张三";
int age=23;

Person(this.age,this.name);

void getInfo(){
print("${this.name}----${this.age}");
}
}

void main(){
//?   条件运算符(了解)
// Person p;
// p?.getInfo();
//is   类型判断

Person p=new Person(20, "张三");

if (p is Person){
p.name="李四";
}

p.getInfo();//李四----20
print(p is Object);//true


//as   类型转换
var p1;
p1="";
p1=new Person(25, "老刘");
//p1.getInfo();老版本会直接报错
(p1 as Person).getInfo();//强制类型转换 老刘----25


//..   级联操作 (连缀)
Person p2=new Person(25,"王五");
p2..name="小米"
  ..age=20
  ..getInfo();
  //小米----20

}

03 Dart 类的继承( 简单继承)

面向对象的三大特性:封装 继承 多态

  Dart中的类的继承

  1.子类使用extends关键词来继承父类

  2.子类会继承父类里面可见的属性和方法 但是不会继承构造函数

  3.子类能复写父类的方法 getter和setter

/**
 * 面向对象的三大特性:封装 继承 多态
 * 
 * Dart中的类的继承
 * 
 * 1.子类使用extends关键词来继承父类
 * 2.子类会继承父类里面可见的属性和方法 但是不会继承构造函数
 * 3.子类能复写父类的方法 getter和setter
 * 
 * 
 */
class Person{

String name="张三";
int age=23;

Person(this.name,this.age);

void getInfo(){
print("${this.name}----${this.age}");
}
}

class Web extends Person{

  //实例化子类的时候给父类传参
  Web(super.name, super.age);

  //可以扩展属性和方法
  run(){
   print("${this.name}----${this.age}");
  }

}

void main(){

Web b=new Web("张三",12);

b.getInfo();//张三----12

b.run();//张三----12

}

04 Dart类的继承super关键词的使用

class Person{

String name="张三";
int age=23;

Person(this.name,this.age);

void getInfo(){
print("${this.name}----${this.age}");
}
}

class Web extends Person{
  //实例化子类的时候给父类传参
  Web(super.name, super.age);
  //可以扩展属性和方法
  run(){
   print("${this.name}----${this.age}");
  }
}

void main(){
Web b=new Web("张三",12);
b.getInfo();//张三----12
b.run();//张三----12
}

05 类的继承 覆写父类的方法

class Person{

String name="张三";
int age=23;

Person(this.name,this.age);

void getInfo(){
print("${this.name}----${this.age}");
}

work(){
print("${this.name}在工作中...");
}

}

class Web extends Person{

  //实例化子类的时候给父类传参
  Web(super.name, super.age);

  //可以扩展属性和方法
  run(){
   print("${this.name}----${this.age}");
   super.work();//子类调用父类的方法,直接调用
  }

  //覆写父类的方法
  @override   //可以写可以不写,建议在覆写父类方法的时候加上  @override 
  void getInfo(){
   print("姓名:${this.name}----年龄:${this.age}");
  }

  @override  
  work(){
   print("${this.name}的工作是写代码...");
    } 
}

void main(){
Web web=new Web("张三",20);
web.getInfo();//姓名:张三----年龄:20
web.work();//张三的工作是写代码...
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值