目录
6、对象也可以作为方法参数进行传递,也可以创造为对象数组作为方法参数
一、面向对象和面向过程
1.区别
面向过程:事物比较简单,可以用线性的思维去解决
面向对象:事务比较复杂,使用简单的线性思维无法解决问题
2.共同点:
(1)面向过程和面向对象都是解决实际问题的一种思维方式
(2)二者相辅相成,并不是对立的。解决复杂的问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式处理。
3.面向对象和面向过程思想的总结
- 都是解决问题的思维方式,都是代码组织的方式。
- 面向过程是一种“执行者思维”,解决简单问题可以使用面向过程。
- 面向对象是一种“设计者思维”,解决复杂、需要协作的问题可以使用面向对象。
- 面向对象离不开面向过程:
- 宏观上:通过面向对象进行整体设计
- 微观上:执行和处理数据,仍然是面向过程。
![](https://i-blog.csdnimg.cn/blog_migrate/d3a89f8daf6929f82fda0bd6e2d16883.png)
二、类和对象
1、什么是类和对象
类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象。
我们要造一个汽车,怎么样造?类就是这个图纸,规定了汽车的详细信息,然后根据图纸将汽车造出来。
再比如月饼模具是类,使用月饼模具制作的一个个月饼就是对象。
总结:
1.类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
2.类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。
2.定义类和创建对象
1.定义类
一个类是由三部分组成,属性,方法和构造器
(1)属性
属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。
在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。
数据类型 | 默认值 |
整型 | 0 |
浮点型 | 0.0 |
字符型 | '\u0000' |
布尔型 | false |
所有引用类型 | null |
属性定义格式:
[修饰符] 属性类型 属性名 = [默认值] ; |
(2) 方法
方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。
方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。
方法定义格式:
[修饰符] 方法返回值类型 方法名(形参列表) { // n条语句 } |
void代表没有返回值;
方法的作用:重用代码,封装功能,便于修改
2、创建对象
new关键字产生对象
类名 对象名=new 类名; |
3、成员变量和局部变量
(1)区别和定义
在类中定义的变量称为成员变量,可在整个类中使用。
在方法中定义的变量称为局部变量,只能在此方法中使用。
两个的区别主要表现在以下几方面:
成员变量 | 局部变量 | |
代码中位置不同 | 类中定义的变量 | 方法或代码块中定义的变量 |
内存中位置不同 | 堆内存 | 栈内存 |
是否有默认值 | 有 | 没有 |
代码作用范围(空间) | 当前类的方法 | 当前一个方法或代码块 |
作用时间不同 | 当前对象从创建到销毁 | 定义变量到所属方法或代码块执行完毕 |
(2)内存分配图
3、构造方法及其重载
1、定义:
构造方法(constructor)也叫构造器,用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。
2、作用
初始化对象(类中的成员变量)
3、命名格式
[修饰符] 类名(形参列表){
//n条语句
}
4、构造器的重载
构造器可以进行重载
我们在写构造器时,一般写两个就够了,一个是无参的,一个是有全部参数的
创建构造器的快捷方式为:右键单击 Generate (这一步的快捷键为Alt+Insert),然后选择Constructor 即可
5、构造器的注意事项
- 构造器的方法名必须和类名一致!
- 构造器通过new关键字调用!!
- 构造器不需要写void和return。
- 如果我们没有定义构造方法,则编译器会自动定义一个无参的构造方法。如果已定义则编译器不会自动添加构造器!
6、对象也可以作为方法参数进行传递,也可以创造为对象数组作为方法参数
4、this关键字
1、对象创建的过程
构造方法是创建Java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回该类的对象,但这个对象并不是完全由构造器负责创建。创建一个对象分为如下四步:
1. 分配对象空间,并将对象成员变量初始化为0或空
2. 执行属性值的显示初始化
3. 执行构造方法
4. 返回对象的地址给相关的变量
2、this的本质
this的本质就是“创建好的对象的地址”! 由于在构造方法调用前,对象已经创建。因此,在构造方法中也可以使用this代表“当前对象” 。
3、this最常的用法:
- 调用成员变量:区分成员变量和局部变量,如果成员变量和局部变量同名,this必须书写,用来区分两者;如果没有同名的局部变量,this可以不写,如:this.成员变量=局部变量
- 调用成员方法:这种情况下,this可以省略
- 调用构造方法:使用this关键字进行构造器之间的调用,避免相同的初始化代码。但只能在构造方法中用,并且必须位于构造方法的第一句。如:this(参数,参数,...)
- this不能用于static方法中。
5、实参和形参传递数据
实参给形参传递数据有两种方式
1、按值传递 参数为基本数据类型
2、按引用传递 参数为引用类型