面向对象:
一. 面向过程和面向对象的区别:
面向过程和面向对象都是一种编程思想,不同的思维方式
面向过程:”如何完成|如何实现?”然后一步一步实现就可以了
面向对象:”这件事情应该找谁来完成?”完成的这个人就是对象,不关注实现过程,只关注对象
面向对象依托于面向过程
二. 面向对象的优点
1)面向对象的思维方式更贴近于现实生活的思维方式
2)面向对象思维方式更体现于管理者,面向过程体现于执行者
3)可以将复杂的问题简单化
三. 面向对象提出了2个概念
以面向对象的思维方式编程就是让程序和现实生活产生联系
类:一类|系列事物的模板(定义的是一系列事物的共性) 对象:现实生活中真实存在的某个事物
没有类就没有办法创建对象(例如: 没有图纸就没办法造车)
四. 自定义类:
根据一系列事物分析:
第一步分析:手机能做什么? 打电话,上网,聊天,发信息,听歌… 动词,功能—>成员方法定义功能
第二步分析:手机的特征? 颜色,品牌,尺寸,价钱… 名词,属性–>成员变量
格式
pubic class 类名{
//属性
修饰符 数据类型 变量名=变量值;
//功能
修饰符 返回值类型|void 方法名(参数列表){
方法体;
}
}
注意:成员不加static
new
new创建对象会执行的步骤:
* 1.在堆中为对象开辟空间,当前类的成员属性会跟随对象进入到堆内存并附默认值
* 2.调用构造器为对象初始化信息(一般为成员属性第一次赋值)
* 3.将对象的地址返回给引用
* 构造器|构造方法|构造函数:
* 作用:
* 初始化对象信息
* 定义:
* 修饰符 类名([参数]){
* ….
* }
* 1.没有返回值类型,没有void
* 2.可以根据需求存在return,提前结束方法
* 3.构造器不能和static,abstract,final一起使用
* 调用:
* 跟随new使用,new其中的一步
* 1.如果没有显示构造器,编译器会隐式为你提供一个空构造
* 2.如果存在自定义构造器,编译器不会再为你提供任何构造器, 包括空构造
* 3.定义多个构造器,参数列表不同,构成构造器的重载,调用根据()中的实参匹配不同的构造器
* 4.构造器的修饰符可以是private,私有的,只能在当前类中使用这个构造器
* 根据不同的需求定义不同的构造器,一般都会存在至少一个空构造