Dart中的静态成员:
1、使用static 关键字来实现类级别的变量和函数
2、静态方法不能访问非静态成员,非静态方法可以访问静态成员
class Person {
static String name = '张三';
static void show() {
print(name);
}
}
//静态成员无法通过 new 来访问,只能通过类来访问
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();
}
}
//方法调用
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}");
}
}
is 类型判断
Person p = new Person('张三', 20);
if (p is Person) {
p.name = "李四";
}
p.printInfo();
print(p is Object);
as 的使用
var p1;
p1 = '';
p1 = new Person('张三1', 20);
// p1.printInfo();
(p1 as Person).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 {
}
Web w = new Web();
print(w.name);
w.printInfo();
子类更改父类数据
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('', age) {
this.age += 100;
}
}
Web w = new Web('张三', 12);
w.printInfo();
子类中扩展自己的属性、方法
class Person {
String name;
num age;
Person(this.name, this.age);
void printInfo() {
print("${this.name}---${this.age}");
}
}
class Web extends Person {
late String sex;
Web(String name, num age, String sex) : super(name, age) {
this.sex = sex;
}
run() {
print("${this.name}---${this.age}--${this.sex}");
}
}
Web w = new Web('张三', 12, "男");
w.printInfo();
w.run();
子类重写父类方法
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}的工作是写代码");
//super.work(); //子类调用父类的方法
}
}
Web w=new Web('李四',20);
w.printInfo();
w.work();
此文章仅做学习记录使用,如有不足之处请各位大神指出,谢谢