什么是面向过程?:c语言 看中的是过程的开发
在开发一个程序的时候,看中的是中间的过程,每一个过程步骤都需要自己去做
什么是面向对象?:Java c# js… 看中的是类的设计
当开发一个程序的时候,不看重具体过程,看中的是谁能帮我完成这件事情
前期去设计类的时候比较复杂,但是后期的复用性和扩展性比较好
面向过程和面向对象的优缺点
1.面向过程:优点:面向过程的性能比面向对象高,因为面向对象再实例化时,开销比较大
缺点:维护性、扩展性没有面向对象好
2.面向对象:优点:维护性、扩展性好
缺点:性能差,开销大
例如:
人把大象装进冰箱
面向过程:1)打开冰箱2)把大象装进冰箱3)关闭冰箱门
面向对象:
人{
打开(冰箱){冰箱.打开();}
操作(大象){大象.金属棒想的方法();}
关闭(冰箱){冰箱.关闭();}
}
冰箱{
打开();
关闭();
}
大象{
进入冰箱的方法();
}
成员变量和局部变量的区别
- 1.定义位置不同:
成员变量定义在类的内部方法之外
局部变量定义在方法内部 - 2.作用域不同
成员变量作用在类内部
局部变量作用域方法之内 - 3.初始值(默认值)不同
成员变量有默认值
局部变量没有默认值 - 4.内存中的位置不同
成员变量保存在堆里面
局部变量保存在栈里面 - 5.访问修饰符
局部变量有:private public protected 缺省
局部变量没有访问修饰符,默认与方法的修饰符相同
类和对象: - 类就想像一个汽车图纸,他是一个抽象的概念上的东西,而对象就是根据汽车图纸造出来的汽车
- 对象是类的实力,类的一个产物
汽车的设计图纸包含两部分
- 属性:颜色、品牌、价格、长度、宽度
- 行为:行驶
汽车图纸映射到Java类里面,也是两部分构成
- 成员变量(属性):定义在类下面方法之外的变量
- 成员方法(行为):去掉static(关键字),就是一个成员方法
开始造车
一个类是通常情况下是不能够直接使用的,就类似与汽车图纸,他不能直接行使
如果要使用这个类,就必须根据这个类去创建一个真正的对象来用,就类似于根据汽车图纸去造一辆汽车
怎么去创建一个对象呢?
类名 对象名= new 类名();
怎么调用属性和行为呢?
对象名.属性名;
如果属性没有赋值,将会有一个默认值,因为他在堆里面
怎么使用方法?
对象名.方法名;