美文网首页dart系列
Dart8(八)对象、类、构造函数、私有属性和方法

Dart8(八)对象、类、构造函数、私有属性和方法

作者: Kernel521 | 来源:发表于2020-06-29 21:05 被阅读0次

一、面向对象编程(oop)的三个基本特征:

  • 封装:封装是对象和类概念的主要特征。封装,把客观事物封装成抽象的类,并把自己的属性和方法提供给其他对象
  • 继承:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
  • 多态:允许将子类类型的指针赋值给父类类型的指针,同一个函数调用会有不同的执行效果。
  • Dart所有的东西都是对象,所有的对象都继承自object类
  • Dart 是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是object 的子类
  • 一个类通常由属性和方法组成

二、构造函数 ( 实例化类的时候自动触发的方法 )

1、默认构造函数 (只能写一个)

class Person {
String name;
int age;
Person ( String this.name, int this.age );默认构造函数
void printInfo () { // 方法,需要通过实例去调用
print("${ this.name } ----- ${ this.age }")
}
}
void main() {
Person p1 = new Person("张三",20); 一初始化就调用默认构造函数
p1. printInfo();
}

2、命名构造函数(可以写多个)

class Person {
String name;
int age;
Person.now () { }  命名构造函数
void printInfo () {
print("${ this.name } ----- ${ this.age }")
}
}
void main() {
Person p1 = new Person.now("张三",20);
p1. printInfo();
}

三、私有属性 私有方法 (前面加_)

四、get set

class Ract {
num width;
num height;
Ract( this.width, this.height );
get area { // get 调用的时候不用加()
return this.height * this.width
}
set areaHeight( value ) {
this.height = value;
}
}
void main {
 Ract  r = new Ract ( 10, 2 );
r.areaHeight = 6;
print(" 面积 : ${ r.area }")
}

五、初始化列表

构造函数运行之前初始化实例变量

class Ract {
int width;
int height;
Ract() : height = 2, width = 10 {
print( "${this.height} --- ${this.width}" );
}
getArea ( ) {
return this.height * this.width;
}
}
void main {
Ract  r = new Ract ( );
print( r.getArea() );
}

六、继承

  • extends
  • @override 在复写父类方法的时候写上
  • 子类调用父类的方法 super.方法名
class Person {
String name;
num age;
Person ( this.name, this.age );
void printInfo() {
print( "${this.name} --- ${this.age}");
}
}
class Child extends Person {
String sex;
Child( this.name, this.age, String sex ) : super( name, age ) {
this.sex = sex;
}
run () {
}
} 
void main() {
Child c = new Child( '张三',12 );
c.printInfo(); // 张三 12
}

相关文章

  • Dart8(八)对象、类、构造函数、私有属性和方法

    一、面向对象编程(oop)的三个基本特征: 封装:封装是对象和类概念的主要特征。封装,把客观事物封装成抽象的类,并...

  • python 13面向对象

    构造函数 析构函数 私有 类方法 静态方法 属性方法

  • Python基础(10)——属性

    属性定义 直接在类里定义 构造函数定义 私有属性 私有属性添加getter和setter方法 使用property...

  • 类和实例

    类的特征 公有方法私有方法属性私有变量析构函数:(析构函数与构造函数相反,当对象结束其生命周期,如对象所在的函数已...

  • Python 之路06 - 面向对象

    本节大纲: 特性:class、object 封装 继承 多态语法\属性\方法构造函数\析构函数私有方法\私有属性类...

  • JavaScript 构造函数私有、公有、静态、特权方法

    3. 构造函数的私有、公有、静态、特权方法 私有属性和方法创建:在构造函数内部创建的变量是私有属性,创建的函数是私...

  • js 继承

    构造函数继承 类式继承是在函数对象内调用父类的构造函数,使得自身获得父类的方法和属性。call和apply方法为类...

  • 2016.12.3 JS

    构造函数 通过相同构造函数(类)生成的对象,他们具有相同的属性和方法 内置构造函数首字母大写:Object,Arr...

  • JS继承这点儿事

    对象冒充 构造函数使用this关键字给所有属性和方法赋值(即采用类声明的构造函数方式)。因为构造函数只是一个函数,...

  • 原型和原型链(javascript)

    使用对象---->使用对象中的属性和对象中的方法,使用对象就要先有构造函数构造函数

网友评论

    本文标题:Dart8(八)对象、类、构造函数、私有属性和方法

    本文链接:https://www.haomeiwen.com/subject/fbiofktx.html