Dardo aprendizaje de idiomas 06 clases

aprendizaje de idiomas dardo 06

Autor: ScorpioDong

1. Clase

Dart es un lenguaje orientado a objetos. Es compatible con la programación orientada a objetos, tales como clases, interfaces y similares. aspectos OOP de la clase es para crear un modelo para un objeto / plantilla. Clase encapsula el objeto de datos. Dardo proporciona soporte integrado para el concepto de clase.

1.1 Exposición de la clase

  • Use classpalabras clave para declarar una clase en el Dart.
  • definición de la clase de palabras clave classal principio, seguido por el nombre de la clase.
  • nombre de la clase recomienda el uso de una gran joroba de nomenclatura.
  • Nombre de la clase seguido por el cuerpo de la clase envuelta en un par de llaves.
class Test {
    // Fields
    String name;
    // Getters and Setters
    // Constructors
    Test() {
        this.name = "张三";
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

cuerpo campos de clase, captadores y definidores, constructores y funciones son opcionales, la demanda definido

  • Los campos (campos) - campo de cualquier variable declarada en la clase, campo representa los datos relacionados con el objeto.
  • setters y getters - permiten que el valor de inicialización del campo y recuperar la clase, el captador por defecto / definidor asociado con cada clase. Sin embargo, los valores por defecto puede cambiarse mediante la definición explícita setter / getter.
  • Constructores (constructores) - responsable de asignar memoria para la clase de objeto.
  • De función (funciones) - función de la diana operación se pueden tomar, que a veces también se denominan métodos.

Ejemplos de atributos de función y de acceso de clase 1.2

Use newse crea ejemplos de palabra clave seguida por el nombre de la clase de la clase.

main() {
    var obj = new Test();
    print(obj.name);
    obj.eat();
}
class Test {
    // Fields
    String name;
    // Getters and Setters
    // Constructors
    Test() {
        this.name = "张三";
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

Propiedades y métodos de una instancia de objeto de la clase visitada por una clase. Use .puntos para acceder a los miembros de datos acumulados.

1.3 Constructor

  • Un constructor es una clase especial de funciones, es responsable de la clase variable de inicialización.
  • Dardo constructor es la misma función que el nombre de la clase.
  • El parámetro constructor puede estar presente. Constructor no devuelve ningún valor.
  • Si no es un constructor, Dardo un constructor vacío por defecto sin argumentos.
class Test {
    // Fields
    String name;
    // Getters and Setters
    // Constructors

    Test() { // <--构造函数,初始化了name变量
        this.name = "张三";
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

Dardo nombrado constructor proporcionado, por lo que la clase puede definir varios constructores.
gramática类名.构造方法名(形参列表) {函数体}

class Test {
    // Fields
    String name;
    // Getters and Setters
    // Constructors

    // 构造函数,初始化了name变量
    Test() {
        this.name = "张三";
    }

    // 命名构造函数
    Test.nameTest(String name) {
        this.name = name;
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

1.4 esta palabra clave

esta palabra clave se refiere a la instancia actual de la clase. En este caso, el nombre del parámetro y el campo de nombre de la clase es el mismo. Por lo tanto, con el fin de evitar la ambigüedad, la clase del campo con este prefijo de palabras clave.

class Test {
    // Fields
    String name;
    // Getters and Setters
    // Constructors

    // 构造函数,初始化了name变量
    Test() {
        this.name = "张三"; // this关键字的使用
    }

    // 命名构造函数
    Test.nameTest(String name) {
        // this关键字的使用,因为字段名和形参名一样,冲突
        this.name = name; 
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

1,5 Getter y Setter

Getters y setter (también llamada una unidad de acceso y cambio) permite que el programa inicializa el valor de cada clase y recuperar el campo. Use palabras clave get define captador o de acceso. Incubadora o de acceso se define mediante el conjunto de palabras clave.

El captador por defecto / definidor asociado con cada clase. Sin embargo, los valores por defecto puede cambiarse mediante la definición explícita setter / getter. getter no tiene parámetros y devuelve un valor, organismo sólo un parámetro, pero no devuelve un valor.

main(List<String> args) {
  var a = new Test();
  a.test_name = "李四";
  print(a.test_name);  
}

class Test {
    // Fields
    String name;
    // Getters and Setters

    // 定义name 的 Getter
    String get test_name {
        return name;
    }

    // 定义name 的 Setter
    void set test_name(String name) {
        this.name = name;
    }

    // Constructors

    // 构造函数,初始化了name变量
    Test() {
        this.name = "张三"; // this关键字的使用
    }

    // 命名构造函数
    Test.nameTest(String name) {
        // this关键字的使用,因为字段名和形参名一样,冲突
        this.name = name; 
    }
    // Functions
    void eat() {
        print("$name eatting...");
    }
}

1.6 paquete

  • Dardo no es privado, público y modificador de otros derechos.
  • Puede utilizar _un guión de identificadores de prefijo marcados como privados.
class Test {
    // Fields
    String _name; //标记私有外部无法访问
    // Getters and Setters

    // 定义name 的 Getter
    String get test_name {
        return _name;
    }

    // 定义name 的 Setter
    void set test_name(String name) {
        this._name = name;
    }

    // Constructors

    // 构造函数,初始化了name变量
    Test() {
        this._name = "张三"; // this关键字的使用
    }

    // 命名构造函数
    Test.nameTest(String name) {
        // this关键字的使用,因为字段名和形参名一样,冲突
        this._name = name; 
    }
    // Functions
    void eat() {
        print("$_name eatting...");
    }
}

1.7 Herencia

  • DART es compatible con el concepto de herencia, es la capacidad del programa para crear una nueva clase de una clase existente. Extendido para crear una nueva clase llamada clase no sea el padre / superclase. La clase llamada niño / subclase de nueva creación.
  • Una clase usando extendsla palabra clave heredado de otra clase. hereda de subclases de todas las propiedades y métodos que no sean el constructor de la clase padre.
  • soportes de clase de dardos único sencillo modelo de herencia, que es una clase puede tener un solo progenitor.
main(List<String> args) {
  var obj = new B();
  print(obj.a);
}

class A {
  int a = 5;
}

class B extends A {

}

ejecución

5
anulaciones método
  • mecanismo de subclases de anulación es un método para redefinir métodos de su clase padre.
  • override Método @overridebandera.
  • Método sustituir la clase de los padres y el nombre de método del método, la lista de parámetros y el tipo de retorno sean coherentes.
main(List<String> args) {
  var obj = new B();
  obj.F();
}

class A {
  int a = 5;
  F() {
    print("123");
  }
}

class B extends A {
  @override
  F() {
      print("456");
    }
}

ejecución

456
Publicado 59 artículos originales · ganado elogios 45 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/m0_37771142/article/details/105036412
Recomendado
Clasificación