一、面向对象编程(OOP)的三个基本特征是:封装、继承、多态
OOP基本特征.png封装:封装是对象和类概念的主要特性。封装,把客观事物封装成抽象的类,并且把自己的部分属性和方法提供给其他对象使用。
继承:面向对象编程(00P) 语言的一个主要功能就是“继承”。基于对象,基于类的封装, 继承的类拥有和父类相同的属性和方法。
多态:允许将子类类型的指针赋值给父类类型的指针,同一个函数调用会有不同的执行效果。
二、Dart也遵循OOP思想
Dart所有的东西都是对象,所有的对象都继承自object类。
Dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是0bject的子类一个类通常由属性和方法组成。
三、Dart 类的创建与使用
注意:定义类的时候 首字母要大写,
1、创建一个类
class Person {
// 类的属性
String name = '张三';
int age = 18;
// 类的方法
getInfo(){
print('name=${this.name}------age=${this.age}');
}
}
}
//使用
//导入
import 'Person.dart';
void main(List<String> args) {
//初始化
Person p = new Person();
// 打印属性值
print(p.name);
//调用方法
p.getInfo();
2、默认的构造函数
构造函数会在这个类实例化的时候触发
class Person{
String name='张三';
int age=20;
//默认构造函数
Person(){
print('这是构造函数里面的内容 这个方法在实例化的时候触发');
}
void printInfo(){
print("${this.name}----${this.age}");
}
}
Person p1=new Person();
p1.printInfo();
默认构造函数传值:
class Person{
late String name;
late int age;
//默认构造函数
Person(String name,int age){
this.name=name;
this.age=age;
}
void printInfo(){
print("${this.name}----${this.age}");
}
}
Person p1=new Person('张三',20);
p1.printInfo()
默认构造函数的简写:
class Person{
late String name;
late int age;
//默认构造函数的简写
Person(this.name,this.age);
void printInfo(){
print("${this.name}----${this.age}");
}
}
2、命名构造函数
Dart里面构造函数可以写多个,这个时候我需要通过命名构造函数来实现。
命名构造函数示例代码:
class Person {
late String name;
late 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}");
}
}
实例化命名构造函数
Person p2=new Person.now(); //命名构造函数
网友评论