Java面向对象:类和对象

引题程序
在这里插入图片描述

一、什么是面向过程?c语言 (看中的是过程的开发)
在开发一个程序的时候,看中的是中间的过程,每一个过程步骤都需要自己去做
**二、什么是面向对象?**java c# js…… (看中的是类的设计)
在开发一个程序的时候,不看重具体的过程,看中的是谁能帮我去完成这件事,找人(对象)帮我去做
前期设计类的时候比较复杂,但是后期的复用性扩展性比较好
例子:
人把大象装进冰箱
面向过程:(1)打开冰箱(2)把大象装进冰箱(3)关闭冰箱门
面向过程:
人{
打开(冰箱){冰箱.打开()}
操作(大象){大象.进入冰箱的方法()}
关闭(冰箱){冰箱.关闭()}
}
冰箱类{
打开();
关闭();
}
大象类{
进入冰箱的方法();
}
三、面向过程和面向对象的优缺点
1.面向过程:面向过程的性能比面向对象高。因为面向对象在实例化时开销比较大
缺点:维护性、扩展性没有面向对象好
2.面向对象:维护性、扩展性好
缺点:性能低开销大
四、类和对象
1.类就像一个汽车图纸,他是一个抽象的概念上的定义。而对象就是根据汽车图纸真正造出来的汽车。
对象是类的实例,是类的产物
2.汽车的设计图纸包含两部分:
属性:颜色 品牌 价格 长度 宽度……
行为:行驶
把汽车图纸映射到java类里面也是由两部分构成:
成员变量(属性):定义在类下面方法之外的变量
成员方法(行为):去掉static关键字,就是一个成员方法
3.//汽车图纸类
在这里插入图片描述

//开始造车
类是通常情况下是不能够直接使用的,就类似于汽车图纸他是不能够直接行驶的
如果想用这个类,就必须根据这个类去创建一个真正的对象来用,就类似于根据汽车图纸去造一辆汽车。
4.怎么去创建一个对象呢?
类名 对象名=new 类名();
在这里插入图片描述

5.怎么调用属性和行为呢?
对象名.属性名;
如果属性没有赋值,将会有一个默认值,因为他在堆里面
在这里插入图片描述

6.怎么使用方法?
对象名.方法名;
在这里插入图片描述

内存中的体现
在这里插入图片描述

五、成员变量和局部变量的区别
1.定义的位置不同
成员变量定义在类内部的方法之外
局部变量定义在方法内部
在这里插入图片描述

2.作用域不同
成员变量作用在类内部
局部变量作用在方法之内
在这里插入图片描述

3.默认值不同
成员变量有默认值
局部变量没有默认值
4.内存中的位置不同
成员变量保存在堆里面
局部变量保存在栈里面
5.成员变量有四种访问修饰符 private 缺省 protected public
局部变量没有访问修饰符,默认方法与修饰符相同
在这里插入图片描述


版权声明:本文为The_best_L原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>