概要
- 面向过程:强调功能行为
- 面向对象:将功能装进对象,强调具备了功能的对象,Java中有对象就用对象,没有对象就创建对象,用对象,需要维护各种对象之间的关系。
- 面向对象的三特征``
封装 :将代码和其操作的数据捆绑在一起,防止外部对数据和代码的干扰,数据和代码以封装的形式链接起来就构成一个对象。
继承:一个对象获得另一个对象的属性,通常一个对象可以从它的父类继承所有的通用属性。继承最大的好处是实现代码的高效重用,也更形象的描述现实世界中对象的关系。
多态:一个动作作用在不同对象产生不同的具体行为。
面向对象
- 定义:类和对象是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义:对象是实际存在的该类事物的每个个体,所以称为实例。
- 类与对象的关系
类:相当于汽车设计图纸(用于描述特征信息以及功能,不能实际使用)
对象:汽车实物(根据类的描述创造出来的,可以真正使用的)
类与对象的关系:类就是对象的描述,对象就是该类对象的实例 ,类不占内存,对象占内存(对象实例化)。
类
语法格式:[修饰符] class 类名{
[属性]
[构造函数]
[方法]
}
修饰符
private 私自的 (不可访问)
protected 受保护的(不可访问)
public 公共的(可以访问)
成员变量vs局部变量
相同点
1.遵循变量声明的格式:数据类型 变量名 = 初始值
2.都有作用域
不同点
1.声明位置的不同:
成员变量:声明在类里,方法外
局部变量:声明方法在方法内,方法的形参部分,代码块内。
2.成员变量的修饰符有四个:public private protected 缺省局部变量没有修饰符,与所在方法修饰符相同。
3.初始化值:一定有初始值。
成员变量如果在声明的时候,不显示的赋值,那么不同的数据类型会有不同的默认初始化值。
局部变量:一定要显示的赋值,(局部变量没有默认初始化值)
4.二者存放的位置不同:成员变量存在于堆内存中,局部变量存在于栈内存中(有具体值)
对象
使用new+构造方法创建一个新的对象
对象具有类中定义的属性及方法
使用”对象名“”对象成员“的方式访问对象成员(包括属性和方法)
格式:类名 对象名 = new 类名();
特点:对象创建时,会对其中各种类型的成员变量自动进行初始化赋值,除了基本数据类型之外都是引用类型。
一个类的多个对象,对于类中定义的属性,每个对象都拥有各自的一套副本,且互不干扰。
参数传递
***基本类型传值,对象类型传地址值***
按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本,修改参数则只是改变副本,原始值保持不变。
按引用传递意味着当将一个参数传递给一个函数时,函数接收的时原始值的地址值,所以当函数修改参数后,代码的原始值也随之改变。