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