面向对象
面向对象的特点
- 1.符合人们的思想习惯
- 2.将复杂事情简单化
- 3.让曾经在过程中的执行者变成指挥者
举例
- 比如说,公司中刚刚接取了一个项目,如果这个事情全部都交给老总做的话,可能会耗时很久很久,所以他就需要去找别人来帮他做。需要去面试选人,也就是寻找几个对象替他去完成工作。这就是面向对象的一种体现。
- 哪个对象对动作最清楚,定义在哪里
成员变量、局部变量的区别
- 成员变量
- 成员变量定义在类中,整个类都可以访问
- 成员变量存在于堆内存的对象中
- 成员变量随着对象创建而生,随对象消失而亡
- 成员变量都有默认初始值
- 局部变量
- 1.当对象对方法仅进行一次调用的时候,就可以简化成匿名对象
- 2.匿名对象可以作为实际参数进行传递
对象的内存体现
以下面这段代码为例
1
2
3
4
5
6Car c1 = new Car();
Car c2 = new Car();
c1.num = 4;
c1.color = red;
c2.num = 5;
c2.color = blue;栈中运行主函数,创建c1对象,在堆中开辟一个新的区域,将他的地址值传回栈中,他的num初始值为0,color初始值为null
- 下面这段代码和上面又有什么不同那
1
2
3
4Car c1 = new Car();
Car c2 = c1;
c1.num = 4;
c2.color = blue;
- 这里将c1赋值给c2,就是将c1地址给c2,所以c2.color = blue,通过寻址找到并更改的color值就是c1地址下的
匿名对象
- 以下面代码,作图演示
1
2
3new Car().num = 4;
new Car().color = red;
new Car().show();
基本数据类型参数传递
1 | class demo{ |
引用数据类型参数传递
1 | class demo{ |
封装
- 好处:
- 将变化隔离
- 便于使用
- 提高重用性
- 提高安全性
- 封装原则
- 将不需要对外提供的原则都隐藏起来
- 把属性都隐藏,提供公共方法对其访问
封装思想
- 封装:指隐藏对象的属性和实现细节,仅对外提供公共访问方式
- private权限修饰符
- 私有仅仅是封装的一种体现而已,封装不仅仅有私有一种方式