面向对象编程
1,是把事务分解成为一个个对象,然后由对象之间分工合作完成
2,先把对象找出来,再找对象有什么功能,最后把对象的功能使用起来
举个例子:
把大象装进冰箱 面向对象做法
1.大象对象:进去功能
2.冰箱对象:打开功能,关闭功能
3.使用大象和冰箱的功能
总结:
面向对象: 是以对象的功能来划分问题,而不是步骤。
面向过程:是面向步骤,一步步按照步骤来实现
面向对象的特性:
1.封装性:就是把代码封装起来方便以后重复使用
2.继承性:2个对象,一个父对象,一个子对象,子对象就继承父对象的方法
3.多态性:同一个对象在不同的时候体现不同的状态, 例如:勺子,在吃饭的时候可以用来吃饭,在喝汤的时候用来挑汤
类和对象
类:是对象的公共部分,是指一大类
对象:是指具体的对象, 例如:一本书,一个人,js里字符串,数组,函数
对象由属性和方法组成:属性是事物的特征,方法是事物的行为。
创建一个类 添加属性和方法
class Star { // constructor构造函数 constructor (name, age){ this.name = name; this.age = age } sing(song){ // console.log('唱歌') console.log(this.name + '唱'+ song) } } // 2.利用类创建对象 new let zbz = new Star('张柏芝', 18) let ldh = new Star('刘德华', 20) console.log(zbz) console.log(ldh) ldh.sing('冰雨')
类的继承
class Father { constructor(x, y, fistName){ this.fistName = fistName; this.x = x; this.y = y; } money(){ console.log('钱',1000); } sum(){ console.log('父类的加法', this.x + this.y) } say(){ return '我是父类' } } // 子继承父类 class Son extends Father { constructor(x,y, name){ super(x,y); // super调用父类中的构造函数,必须放在this前面 this.x = x; this.y = y; this.name = name } say(){ // super.say() 调用父类中的普通函数 console.log(super.say() + '的儿子') } jianfa(){ let jianfa = `${this.name}自己的减法,${this.x - this.y}` console.log(jianfa) } } var son1 = new Son(3,2) son1.money() son1.sum() son1.say() var son2 = new Son(3,2, '小明') son2.jianfa()
参考:教程 面向对象ES6:https://www.bilibili.com/video/BV1Kt411w7MP?p=27