day16 初识面向对象编程(类与对象、构造函数与对象,类与类)

目录

一、面向对象和面向过程的区别

二、类与对象的概念

三、构造函数和对象的关系

三、类与类的关系:组合

四、类与类的关系:依赖


一、面向对象和面向过程的区别

面向过程:强调过程步骤

面向对象:强调对象

分析:围棋程序

面向过程:  
1.黑棋落子
2.绘制棋盘
3.判断输赢
4.白棋落子
5.绘制棋盘
6.判断输赢
7.黑棋落子

面向对象:
1.棋子
2.棋盘
3.规则
对象(初步概念):你看到的,你想到的,有形的,无形的事物,都是对象。

概括来说就是:万物皆为对象

二、类与对象的概念

类:是具有相同属性和行为的对象的集合(模板)

对象:根据类的属性和行为创建的实例化。

类:定义了对象的属性和方法

        通过类可以实例化多个该类的对象,每个对象的数性值不同,可以说类好比设计图纸

        而对象好比根据图纸建设出来的多栋楼房

举例:
     类:      学生
     对象:  小明  老王  大黄  
思考:  
     类:      水果
     对象 : 苹果  西瓜  芒果
面向对象:

面向对象的思想已经不仅仅是编程思想,已经扩展到设计,测试等各个方面,面向对象指的是以对象为治本单位去分析,设计以及实现系统

三、构造函数和对象的关系

普通构造方法

<script> 
function Student(name,id,age){
        this.name=name;
        this.id=id;
        this.age=age
        this.showValue=function(){
            console.log(stu.age,stu.id,stu.name)
        }
    }
    let stu=new Student("laowang",1,18)
   stu.showValue();
</script>

ES6构造方法

<script> 
class Student{
       constructor(name,id,age){
           this.name=name;
           this.age=age;
           this.id=id;
           this.showValue=function(){
               console.log(this.name,this.id,this.age)
           }
       }
   }
   var stu=new Student("laowang",2,18)
   stu.showValue();
</script>

三、类与类的关系:组合

组合:一个类的成员属性是另一个类的对象

<script>
   class Birthday{
       constructor(y,m,d){
           this.y=y;
           this.m=m;
           this.d=d;
       }
       showValue(){
           console.log(this.y,this.m,this.d)
       }
   }
   class Student{
       constructor(name,id,bir){
           this.name=name;
           this.id=id;
           this.bir=bir;
       }
       showValue(){
           console.log(this.name,this.id)
           this.bir.showValue();

       }

   }
   let bir=new Birthday(2000,4,16)
   let stu=new Student("laowang",2,bir)
   stu.showValue();</script>

四、类与类的关系:依赖

依赖:一个类的成员方法的参数,是另一个类的对象

有一辆小汽车行驶在一条公路上,计算这量小汽车以60KM/小时的速度,行驶1000KM需要多久。

面向对象分析问题的方法

1.分析问题找出所有对象---设计类时先有对象后有类

2.根据对象抽象出其属性和行为创建类---创建对象时,先有类后有对象

3.各个对象各司其职

<script>
class Car {
        constructor(speed) {
            this.speed = speed;
        }

        //依赖
        time(r) {
            return r.length / this.speed;
        }
    }

    class Road {
        constructor(length) {
            this.length = length;
        }
    }

    let c = new Car(60);
    let r = new Road(1000);

    console.log(c.time(r));
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值