Dart/Flutter基础-对象和静态
class Person {
//静态成员,静态方法
static String name = '张三';
String age = "20";
static get sex{
return '男';
}
static void method2 (){
// prinInfo();//静态方法无法访问非静态的方法
// String str = age;//静态方法无法访问非静态的属性
}
void prinInfo () {
print(name);//非静态方法可以访问静态的成员变量
print(sex);//非静态方法可以访问静态的方法
}
}
// main() {
// print(Person.name);//静态成员使用不需要new一个实例出来
// print(Person.sex);//静态方法同理,上面的get,是dart的一种写法,方法名后面不写()
// }
/**
* dart中的对象运算符
* ?条件运算符(了解)
* as 类型转换
* is 类型判断
* .. 级联操作(连缀)
*
*/
class Animal{
String name;
String legnum;
Animal(this.name,this.legnum);
void printInfo (){
print('${this.name}${this.legnum}');
}
}
main() {
//?运算符
Animal animal;
animal?.printInfo();//因为animal没有实例化,animal.prinInfo()肯定会报null异常,但是用?.去调用
//会先判断animal这个对象是否为空,如果为空不往下执行
//as表示强制转换
var person = '我是字符串';
(person as Animal).printInfo();//把person强制转换成了Animal,并调用方法,person本是string类型
//is
if(person is Animal){
print('人被转换成了动物');
}
//..
Animal animal2 = new Animal('大象', '有四条腿');
animal2.name = '鸭子';
animal2.legnum= '有两条腿';
animal2.printInfo();
//上面的三行代码可以用..级联运算符实现 效果一样
animal2..name='青蛙'
..legnum='有四条腿'
..printInfo();
}
本文标题:Dart/Flutter基础-对象和静态
本文链接:https://www.haomeiwen.com/subject/jqdfsctx.html
网友评论