面向对象编程-基础
面向对象是一种"建模思想" 把现实中的各种事物"虚拟化到程序中"(定义类就是一种封装)
类:对现实生活中一类具有共同属性和行为的事物的抽象
特点:类是对象的数据类型
类是具有相同属性和行为的一组对象的集合
对象:对象就是有具体数值类的实体 没有类就没有对象
属性:描述对象特征的数据
行为:描述对象能进行的操作
类的定义
public class 类名{
成员变量;//属性
成员方法;//行为
}
对象的使用
创建对象
类名 对象名 = new 类名();
使用对象
使用成员变量 对象名.变量名
使用成员方法 对象名.方法名(参数列表)
构造方法
一种特殊的方法 用来创建对象 作用:对象数据的初始化
语法结构
修饰符 类名 (参数列表){
}
注意事项:
1.当没有写构造方法时 系统默认提供一个无参构造
2.当写了构造方法 系统不在提供 无参构造 需要手写无参构造
3.构造方法可以重载
成员变量和局部变量的区别
类中位置不同 类中方法外 方法中包括形参
内存中的位置 随对象堆中 随方法栈中
初始值不同 有初始值 无初始值需赋值后才能使用
作用域不同 类中 方法中
生命周期不同 随对象存在 随方法存在
面向对象的特征-封装
封装是一种思想 :隐藏实现细节 对外仅暴露公共访问方式
常见封装的应用:
1.私有成员变量 提供set get方法
2.代码抽取到方法中 对代码的封装
3.将变量 抽取到类中 对属性的一种封装 (一个人的各种属性单个独立存储 写一个类 用对象来存储)
好处:提高了代码的安全性和复用性
2个关键字
private
作用:保护成员不被别的类使用 被private 修饰的成员只能在本类中才能被使用
一个权限修饰符 可以用来修饰成员变量和方法
对于被private修饰的成员变量 可以通过提供"公共"set和get方法进行操作 来使得可以在别的类中被使用
this
代表所在类的对象引用 哪个对象调用有this的方法 this就指这个对象
作用:解决局部变量隐藏成员变量的问题 (局部变量和成员变量重名 赋值时 不使用就近原则)
一种猜想
标准方法调用 是 对象.方法名(参数列表)
在类中 直接方法名(参数列表) 实际上是 this.方法名(参数列表)
JavaBeen(java标准类)
这是一种行业规范
要求:
1.成员变量私有化
2.停供setXxx getXxx 方法
3.至少提供一个无参构造