/* 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(); }