文章目录
1.1.面向对象概念
• 我们回想一下,前面我们完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现。一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。
• 在上面的每一个具体步骤中我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现。
• 那么什么是面向过程开发呢? 面向过程开发,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。
• 面向过程的代表语言:C语言
• 当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高。可随着需求的更改,功能的增多,发现需要面对每一个步骤很麻烦了,这时就开始思索,能不能把这些步骤和功能在进行封装,封装时根据不同的功能,进行不同的封装,功能类似的用一个类封装在一起,这样结构就清晰了很多。用的时候,找到对应的类就可以了。这就是面向对象的思想。
1.2.面向过程与面向对象的特点
面向过程:强调的是过程,所有事情都需要自己完成
面向对象:
1.是一种更符合我们思想习惯的思想(懒人思想,我把事情自己不做,交给别人去做)
2.可以将复杂的事情简单化(对使用者来说简单了,对象里面还是很复杂的)
3. 将我们从执行者变成了指挥者角色发生了转换
1.3.类与对象
1.3.1.类的定义
例:
写一个手机类:
成员变量:品牌,价格,颜色
成员方法:打电话,发短信
public class Phone{
String brand; //品牌
int price; //价格
String color; //颜色
//方法_打电话
public void call(){
System.out.println("打电话给....")
}
//方法_发短信
public void sendMessage(){
System.out.println("发短信给...");
}
}
1.4.1.一个对象的内存图
1.4.2.两个对象的内存图
两个引用共享同一个方法区
1.4.3.两个对象的内存图
两个引用指向同一个对象
1.5.成员变量与局部变量的区别
成员变量 | 局部变量 |
---|---|
在类中,方法外 | 在方法中或者方法声明上 |
在堆内存中 | 在栈内存中 |
随对象存在而存在 | 随方法调用而存在 |
有默认值 | 无默认值,必须要赋有初始值 |
1.6.封装
1.6.1封装的概述
- 是面向对象的三大特征之一
- 是面向对象编程语言对客观世界的模拟。客观世界里成员变量都是隐藏在对象内部,外界无法直接操作和修改
1.6.2.封装的原则
- 将不需要对外界提供的内容都隐藏起来
- 把属性隐藏,提供公共方法对其访问
1.6.3.好处
- 通过方法来控制成员变量的操作,提高代码的安全性
- 把代码用方法进行封装,提高代码的复用性
1.7.this关键字的概述和使用
- this:代表在类的对象引用,方法被哪个类调用,this就代表谁
- 使用场景:就是用于成员变量被隐藏的问题
1.8.构造方法的概述和使用
1.8.1.作用:
- 用于给对象的数据进行初始化
1.8.2.格式:
- 方法名与类名相同
- 没有返回值类型,连void都不能写
- 没有具体的返回值
1.8.3.注意事项:
- 如果不提供构造方法,系统会给出默认构造函数,反之,提供了,系统不再给出
- 构造函数也可以重载的