面向对象基础
一、类和对象
1.1 什么是对象
万物皆对象,客观存在的事物皆为对象
1.2 面向对象
java面向对象是指在计算机程序中,模拟现实世界中的概念,借助对象的描述在计算机程序中用类似的实体模拟现实世界中的实体。
1.3 类
1.3.1 什么是类
类是对现实生活中一类具有共同属性和行为的事物的抽象
1.3.2 类的特点
- 类是对象的数据类型
- 类是具有相同属性和行为的一组对象的集合
1.3.3 类的组成
属性
和行为
:
属性:在类中通过成员变量
来体现(类中方法外的变量)
行为:在类中通过成员方法
来体现(和前面的方法相比去掉static关键字即可)
1.3.4 类的定义
①定义类
②编写类的成员变量
③编写类的成员方法
1.4 对象的属性
对象具有的各种特征,每个对象的每个属性都拥有特定的值
1.5 对象的行为
对象能够执行的操作
1.6 类和对象的关系
类
:类是对现实生活中一类具有共同属性和行为的事物的抽象
对象
:是能够看得到摸的着的真实存在的实体
类是对象的抽象,对象是类的实体
1.7 对象的使用
创建对象:
- 格式:类名 对象名 = new 类名();
- 范例:Phone p = new Phone();
使用对象
1.使用成员变量
- 格式:对象名.变量名
- 范例:p.brand
2:使用成员方法
- 格式:对象名.方法名()
- 范例:p.call()
二、对象内存图
对象内存图(单个对象)
对象内存图(多个对象)
对象内存图(多个对象指向相同)
三、成员变量和局部变量
3.1 成员变量
成员变量:类中方法外的变量
3.2 局部变量
局部变量:方法中的变量
3.3 区别
四、封装
4.1 private关键字
是一个权限修饰符
可以修饰成员(成员变量和成员方法)
作用是保护成员不被别的类使用,被private
修饰的成员只在本类中才能访问
针对
private
修饰的成员变量,如果需要被其他类使用,提供相应的操作
提供“get变量名()
”方法,用于获取成员变量的值,方法用public
修饰
提供“set变量名(参数)
”方法,用于设置成员变量的值,方法用public
修饰
private关键字的使用
- 一标准类的编写:
- 把成员变量用private修饰
- 提供对应的getXxx()/setXxx()方法
4.2 this关键字
①this修饰的变量用于指代成员变量
- 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
- 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量
什么时候使用this呢?
解决局部变量隐藏成员变量
this:代表所在类的对象引用
- 记住:方法被哪个对象调用,this就代表哪个对象
this内存原理:
4.3 封装概述
是面向对象三大特征之一(
封装,继承,多态
)
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的
4.4 封装原则
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
成员变量private
,提供对应的getXxx()/setXxx()
方法
4.5 封装好处
通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性
五、构造方法
5.1 概述
构造方法是一种特殊的方法
作用:创建对象
格式:
public class 类名{
修饰符 类名( 参数 ) {
}
}
功能:主要是完成对象数据的初始化
5.2 注意事项
①构造方法的创建
- 如果没有定义构造方法,系统将给出一个
默认
的无参数构造方法
- 如果定义了构造方法,系统将不再提供默认的构造方法
②构造方法的重载
- 如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法
③推荐的使用方式
无论是否使用,都手工书写无参数构造方法
5.3 标准类的制作
①成员变量
- 使用
private
修饰
②构造方法
- 提供一个无参构造方法
- 提供一个带多个参数的构造方法
③成员方法
- 提供每一个成员变量对应的
setXxx()/getXxx()
- 提供一个显示对象信息的
show()
④创建对象并为其成员变量赋值的两种方式
- 无参构造方法创建对象后使用
setXxx()
赋值- 使用带参构造方法直接创建带有属性值的对象
5.4 构造方法的作用
java构造方法,指的是类构造对象时调用的方式,通常用来实例化对象。
Java构造方法,分为有参构造方法,以及无参构造方法。
作用:
1. 构造出一个类的实例
2. 对构造出来的类的实例或者说是对象进行初始化
注意:
Java构造方法的名称
,应该和定义它的类名称一样
,没有返回类型,也没有void。
Java构造方法,主要是完成针对对象的初始化,Java构造方法的调用,是在创建一个针对对象的时候,用new操作实行的。
类中一定有构造方法,如果不写出来
,系统会自动添加无参构造方法。因为接口不允许实例化,所以接口里无构造方法。不能被static或是final等进行修饰。Java构造方法在对对象进行初始化的时候,自动执行命令,通常不能显式地直接进行调用。
如果同一个类有多个构造方法,那么Java编译系统,会自动根据初始化的时候最后面一个括号的参数个数和参数类型来自动进行一一对应。
Java构造方法能够被重新载入。没有参数的构造方法名为默认构造方法,和通常的方法相同,Java构造方法能够进行任何活动。但是经常把其设计为进行各种初始化活动,例如初始化对象的属性。