面向对象
面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
-
对象
- 万物皆对象,客观存在的事物都是对象
-
类
-
什么是类
类定义了一种抽象数据类型
类就是模板,确定对象将会拥有的特征(属性)和行为(方法)
-
类的特点
- 类是对象的类型
- 具有相同的属性和放到的一组对象的集合
-
-
什么是对象的属性
属性:对象具有的各种特征,每个对象的属性有具有特定的值,可以理解为对某类事物的描述
例如:狗类
属性:品种、尺寸、颜色、年龄
注意:对象的属性既具有默认值,这个默认值与相对的类型相关
数据类型 默认值 byte 0 short 0 int 0 long 0 double 0.0 float 0.0 char 空字符 boolean false String null -
什么是对象的行为
方法:对象执行的操作
-
类和对象的关系
类是对象的抽象,仅仅是一个模板,在现实世界中是不存在的;而对象是具体的实例,是类这个模板的具体实例。
-
静态方法可以通过类名点方法名的方式调用
* * 但是不能通过类名点方法名的方式调用非静态方法
* * 可以通过类的实例化对象名点方法名的方式调用静态方法
* * 也可以通过类的实例化对象名点方法名的方式调用非静态方法
* * 静态方法可以调用静态方法但是无法直接调用非静态方法
* * 非静态方法可以调用非静态方法与可以调用静态方法
-
- 成员变量 在类中定义,用来描述对象将要有什么
-
- 局部变量 在类的方法中定义,在方法中临时保存数据
-
-
同名变量不同
-
-
-
-在同一个方法中,不允许有同名的局部变量
-
-
-
-在不同的方法中,可以有同名的局部变量
-
-
- 成员变量和局部变量的区别
-
- a)作用域不同
-
-
-局部变量的作用域仅限于定义它的方法
-
-
-
-成员变量的作用域在整个类内部都是可见的
-
-
- b)初始值不同
-
-
-成员变量有默认的初始值
-
-
-
-局部变量没有默认的初始值,必须自行设定初始值
-
-
- c)存储位置不同
-
-
-成员变量是在对象创建以后存在于堆中,对象回收时,成员变量消失
-
-
-
-局部变量是在方法被调用时存在于栈中,方法调执行结束,从栈中清除
-
-
- d)生命周期不同
-
-
-对象的创建而创建,对象回收时,成员变量消失
-
-
-
-随着方法的调用被创建,方法执行结束,从栈中清除
-
-
- 普通变量 直接赋值
-
- 引用变量 引用了一个内存地址
-
- 匿名对象 没有引用类型变量指向的对象
-
- 适用场景:使用之后直接从内存中消失 不会长期占用内存 适用于仅仅偶尔使用的场景
-
- 不适用场景:因为使用之后直接从内存中消失 如果频繁使用该对象需要频繁在内存中创建和回收该 对象,创建和回收过程都要消耗系统资源 建议频繁使用对象尽量使用引用类型变量引用