zoukankan      html  css  js  c++  java
  • 类相关

    面向对象编程(OOP)的三个基本特征是:封装、继承、多态

    封装:封装是对象和类概念的主要特性。封装,把客观事物封装成抽象的类,并且把自己的部分属性和方法提供给其他对象调用, 而一部分属性和方法则隐藏。
    继承:面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
    多态:允许将子类类型的指针赋值给父类类型的指针, 同一个函数调用会有不同的执行效果 。


    Dart所有的东西都是对象,所有的对象都继承自Object类。

    Dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是Object的子类

    一个类通常由属性和方法组成。
     
    Object a=123;
    Object v=true;
    print(a);
    print(v);
     
    导入其他类
    import 'lib/Person.dart';
     

    创建自定义类

    /*
    
    Dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是Object的子类
    
    */
    
    class Person{
      String name="张三";
      int age=23;
      void getInfo(){
          // print("$name----$age");
          print("${this.name}----${this.age}");
      }
      void setInfo(int age){
        this.age=age;
      }
    
    }
    void main(){
    
      //实例化
    
      // var p1=new Person();
      // print(p1.name);
      // p1.getInfo();
    
      Person p1=new Person();
      // print(p1.name);
    
      p1.setInfo(28);
      p1.getInfo();
    
    }
    View Code

    自定义类默认构造函数

    class Person{
      String name='张三';
      int age=20; 
      //默认构造函数
      Person(){
        print('这是构造函数里面的内容  这个方法在实例化的时候触发');
      }
      void printInfo(){   
        print("${this.name}----${this.age}");
      }
    }
    
    张三  李四  王五
    
    class Person{
      String name;
      int age; 
      //默认构造函数
      Person(String name,int age){
          this.name=name;
          this.age=age;
      }
      void printInfo(){   
        print("${this.name}----${this.age}");
      }
    }
    
    
    class Person{
      String name;
      int age; 
      //默认构造函数的简写
      Person(this.name,this.age);
      void printInfo(){   
        print("${this.name}----${this.age}");
      }
    }
    
    
    void main(){
      
      Person p1=new Person('张三',20);
      p1.printInfo();
    
    
      Person p2=new Person('李四',25);
      p2.printInfo();
    
    }
    View Code

    类初始化属性默认值

    // Dart中我们也可以在构造函数体运行之前初始化实例变量
    
    class Rect{
    
      int height;
      int width;
      Rect():height=2,width=10{
        
        print("${this.height}---${this.width}");
      }
      getArea(){
        return this.height*this.width;
      } 
    }
    
    void main(){
      Rect r=new Rect();
      print(r.getArea()); 
       
    }
    View Code

    命名构造函数

    /*
    dart里面构造函数可以写多个
    */
    class Person{
      String name;
      int age; 
      //默认构造函数的简写
      Person(this.name,this.age);
      
      Person.now(){
        print('我是命名构造函数');
      }
    
      Person.setInfo(String name,int age){
        this.name=name;
        this.age=age;
      }
    
      void printInfo(){   
        print("${this.name}----${this.age}");
      }
    }
    
    void main(){
    
    
      var d=new DateTime.now();   //实例化DateTime调用它的命名构造函数
      print(d);
    
    
      Person p1=new Person('张三', 20);   //默认实例化类的时候调用的是 默认构造函数
    
      Person p1=new Person.now();   //命名构造函数
    
    
    
      Person p1=new Person.setInfo('李四',30);
      p1.printInfo(); 
    
    }
    View Code

    私有方法和私有属性

    /*
    Dart和其他面向对象语言不一样,Data中没有 public  private protected这些访问修饰符合
    
    但是我们可以使用_把一个属性或者方法定义成私有。
    
    */
    
    import 'lib/Animal.dart';
    
    void main(){
     
     Animal a=new Animal('小狗', 3);
    
     print(a.getName());
    
      a.execRun();   //间接的调用私有方法
     
    
    }
    View Code

    setter和getter修饰符

    /*
    Dart和其他面向对象语言不一样,Data中没有 public  private protected这些访问修饰符合
    
    但是我们可以使用_把一个属性或者方法定义成私有。
    
    */
    
    import 'lib/Animal.dart';
    
    void main(){
     
     Animal a=new Animal('小狗', 3);
    
     print(a.getName());
    
      a.execRun();   //间接的调用私有方法
     
    
    }
    View Code
  • 相关阅读:
    查看Oracle的redo日志切换频率
    MySQL 5.6 my.cnf 参数说明(转)
    MySQL性能优化之参数配置
    centos7安装mysql(MariaDB)
    centos6.5安装sendmail
    zabbix安装配置
    linux设置安全连接设置(私钥)
    linux本机root账户无法登录,但是远程ssh可登录
    ORACLE AWR
    maven 依赖(依赖范围,聚合,继承等)
  • 原文地址:https://www.cnblogs.com/jiefangzhe/p/13550477.html
Copyright © 2011-2022 走看看