面向对象编程介绍

面向对象编程介绍

面向过程编程

面向过程就是分析解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个的依次调用就行

面向对象编程 OOP(Object Oriented Programming)

面向对象是把事务分解成一个个对象,然后由对象之间分工与合作
在面向对象程序开发思想中,每一个对象都是功能中心,具有明确分工
面向对象编程具有灵活性,代码可复用,容易维护和开发的优点,更适合多人合作的大型软件项目

  • 面向对象的特性:
    • 封装性
    • 继承性
    • 多态性

面向过程和面向对象的对比

项目优点缺点
面向过程性能比面向对象高,适合跟各种硬件联系很紧密的例如单片机就采用的面向过程没有面向对象以维护、易复用、易扩展
面向对象易维护、易复用、易扩展,由于面向对对象有封装,继承多态性的特性,可以设计出低耦合的系统,使系统更加灵活,更加易维护性能比面向过程低

ES6中的类和对象

对象

现实生活中:万物皆对象,对象是一个具体的事物,看得见摸得着的实物,例如,一本书、一辆汽车、一个人可以是"对象"、一个数据库、一张网页、一个与远程服务器的连接亦可以是对象。
在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串,数值,数组、函数等

对象
  1. 属性 :事物的特征,在对象中用属性来表示
  2. 方法 :事物的行为,在对象中用方法来表示

类 class

创建类
//1.创建class创建一个明星类
        class Star {
            constructor(name, age) {
                this.name = name;
                this.age = age
            }
        }
        //2.利用类创建对象 new
        var fbb = new Star("老范", "30");
        var ldh = new Star("老刘", "40");
        console.log(fbb.name);
        console.log(fbb.age);
        console.log(ldh);
类constructor构造函数

constructor()方法是类的构造函数(默认方法),用于传递参数,返回实例对象,通过new命令生成对象实例时,自调用该方法。如果没有显示定义,类内部会自动给我们创建一个constructor()

类添加方法

 //1.创建class创建一个明星类
        class Star {
            constructor(name, age) {
                this.name = name;
                this.age = age
            }
			//不需要写',',不需要写function
			say(){
				console.log("changge")
			}
        }

类的继承

现实中的继承:子承父业,比如我们继承了父亲的姓。
程序中的继承:子类可以继承父类的一些方法。

继承中的属性或者方法查找原则:就近原则
  1. 继承中如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类
  2. 继承中,如果子类里面没有,就去查找父类里面有没有,如果有,就执行父类的这个方法(就近原则)

语法:

class Father {
	constructor(car, house,age,gender,deposit) {
		this.car = car;
		this.house = house;
		this.age = age;
		this.gender = gender;
		this.deposit = deposit;
	}
	briefIntroduction() {
		console.log(this.car,this.house , this.age ,this.gender,this.deposit)
	}
}
//extends关键字可以让子级继承父级
class Son extends Father {
	constructor(car, house,age,gender,deposit) {
		//super关键字用于访问和调用父级上的函数,可以调用父级的构造函数,也可以调用父级的普通函数
		super(car, house,age,gender,deposit)
	}
}
var son = new Son("BWM","Villa" , 19 ,"boy", 10000000000000000);
son.briefIntroduction()
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李学软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值