面向对象—基本概念
1. 面向对象
三个特征:封装、继承、多态
类与对象
- 类:对现实生活中事物的描述
- 对象:就是这类事物实实在在存在的个体
- 类是对象的抽象,对象是类的实例
映射到Java中,描述的就是class定义的类,具体对象就是对应java在堆内存中用new建立的实体
属性对应类中的变量,行为对应类中的方法
Car c = new Car(); // c是一个类类型变量,它指向对象
2. 成员变量和局部变量
- 作用范围:成员变量作用于整个类中,局部变量作用于函数中或者语句中
- 在内存中的位置
- 成员变量:在堆内存中,因为对象的存在才在内存中存在
- 局部变量:存在于栈内存中。随着所属区域的运行而存在,结束而释放
3. 匿名对象
- 当对象的方法只调用一次时,可以用匿名对象来完成
// new Car().run();
- 可以将匿名对象作为实际参数来传递
4. private
- 定义:私有,权限修饰符,用于修饰类中的成员(成员变量,成员函数),私有只在本类中有效。私有仅仅是封装的一种体现
- 私有成员:其他类不能直接创建对象来访问,只有本类向外提供具体的公共访问接口才能访问,一般为getXxx()和SetXxx()方法
5. 构造函数
- 特点
- 函数名与类名相同
- 不可以写return语句
- 不用定义返回值类型
- 作用:给对象进行初始化。对象一建立就会调用与之对应的构造函数
- 细节
- 当类中没有定义构造函数时,系统会默认给该类加一个空参数的构造函数。当定义了构造函数后,系统会回收默认构造函数
- 一个对象建立,构造函数只会执行一次。并且一个类中的多个构造函数是以重载形式体现的
6. 构造代码块
- 作用:给对象进行初始化。对象一建立就运行,而且先于构造函数执行
- 构造代码块和构造函数的区别
- 构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象进行初始化
- 构造代码块中定义的是不用对象共性的初始化内容