七.类和对象

1.面向过程和面向对象基本概念
使用面向过程开发:
在这里插入图片描述
使用面向对象开发:
在这里插入图片描述

  • 什么是面向过程?c语言 看中的是过程的开发
    在开发一个程序的时候,看重的是中间的过程,每一个郭晨步骤都要自己去做
  • 什么是面向对象?java c# js… 看重的是类的设计
    当开发一个程序的时候,不看重具体的过程,看重的是谁能帮我去完成这件事,找人(对象)帮我去做
    前期设计类的时候比较复杂,但是后期的复用性扩展性比较好
  • 人把大象装进冰箱
    面向过程:①打开冰箱②把大象装到冰箱里③关闭冰箱门
    面向对象:设计类:人类 冰箱类 大象类
    人{
    打开(冰箱){冰箱.打开();
    操作(大象){大象.进入冰箱的方法();}
    关闭(冰箱){冰箱.关闭();}
    }
    }
    冰箱类{
    打开();
    关闭();
    }
    大象类{
    进入冰箱的方法();
    }
  • 面向过程和面向对象的优缺点:
    1.面向过程:
    优:面向过程的性能比面向对象高,因为面向对象在实例化时,开销比较大
    缺:维护性,扩展性没有面向对象好
    2.面向对象:
    优:维护性,扩展性好
    缺:性能低,开销大
    面向对象的三大特征:封装 继承 多态
    2.类和对象
  • 关系:类就像一个汽车图纸,它是一个抽象的概念上的定义,而对象就是根据汽车图纸真正造出来的汽车,对象是类的实例,类的一个产物,类不占内存,对象才占内存
  • 汽车的设计图纸包含两部分:属性(颜色 品牌 价格 长度 宽度) 行为(行驶)
    把汽车图纸映射到java类,也是由两部分构成:
    成员变量(属性):定义在类下面方法之外的变量
    成员方法(行为):去掉static关键字,就是一个成员方法
    在这里插入图片描述
    一个类通常情况下是不能直接使用的,就类似于汽车图纸,不能直接行驶,如果想用这个类,就必须根据这个类去创建一个真正的对象来用,就类似于根据汽车图纸造车
  • 怎么去创建一个对象呢?
    类名 对象名=new 类名();
  • 怎么去调用属性和行为呢?
    对象名.属性名
    如果属性没有赋值,将会有一个默认值,因为他在堆里面
  • 怎么使用方法呢?
    对象名.方法名
    在这里插入图片描述
    运行结果:null(未赋值品牌 默认值)
    赋值:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    输出结果:和第二辆小汽车一样

    输出结果:car1 car2都变成宝马
    3.成员变量和局部变量
  • 成员变量和局部变量的区别:
    ①定义的位置不同:成员变量定义在内部,方法之外;局部变量定义在方法内部
    在这里插入图片描述
    ②作用域不同:成员变量是作用在类内部;局部变量作用在方法之内
    ③初始值(默认值)不同:成员变量(在堆里面)有默认值;局部变量(在栈里面)没有默认值
    ④内存中的位置不同:成员变量保存在堆里面;局部变量保存在堆里面
    ⑤访问修饰符:成员变量有四种访问修饰符private 缺省 protceted public;局部变量没有访问修饰符,默认与方法的修饰符相同
    在这里插入图片描述
  • 例题:利用面向对象的编程方法,设计类Circle计算圆的面积
    在这里插入图片描述
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/fuchsia_/article/details/107806546