A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 枪杆不如笔杆 中级黑马   /  2015-2-26 17:19  /  926 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

面向对象(一):
1. 面向对象强调的是一个整体下的某些特性,某些功能,我们对功能的操作是基于这个整体的
2. 面向对象优点:
a) 符合人们的思考习惯。
b) 将复杂的问题简单化。
c) 让曾经在过程中的执行者,变成了对象中的指挥者。
3. 面向对象的特征
a) 封装,继承,多态
4. 类和对象的关系
a) 类:就是对现实生活中事物的描述。
b) 对象:就是这类事物,实实在在存在的个体。
5. 匿名对象:如new Car()是对对象的简写
a) 对象的方法只调用一次,调用其属性是无意义的
b) 可以用作参数传递
6. 成员变量和局部变量
a) 成员变量直接定义在类下,作用范围为整个类
b) 成员变量存放于堆内存的对象中
c) 成员变量随着对象的创建而存在,随着对象的消失而消失。
d) 成员变量都有默认初始化值。
e) 局部变量局部变量定义在函数,语句,局部代码块中,只在所属的大括号区域有效。
f) 局部变量存在于栈内存的方法中。
g) 局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。
h) 局部变量没有默认初始化值。所以必须初始化
7. 面向对象特性
a) 封装性(Encapsulation) 是指隐藏对象的属性和实现细节,仅对外提供公共访问(使用访问修饰符)方式
i. 好处:将变化隔离;便于使用;提高重用性;提高安全性;
ii. 封装原则:将不需要对外提供的内容都隐藏起来;把属性都隐藏,提供公共方法对其访问
8. 构造函数:
a) 特点:函数名与类名相同;不用定义返回值类型;没有具体的返回值。
b) 作用:给对象进行初始化,构建创造对象时调用的函数(一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数。 如果在类中定义了指定的构造函数,那么类中的默认构造函数就没有了。)
9. this关键字:this代表其所在函数所属对象的引用。
a) 用途:当成员变量和局部变量重名,可以用关键字this来区分。
b) this也可以用于在构造函数中调用其他构造函数(this只能定义在构造函数的第一行。因为初始化动作要先执行。)
10. super关键字:如果要在函数内访问父类中的同名成员变量,用super进行区分。
11. 构造代码块:结构: { 内容 }
a) 构造函数块作用:给所有此类的对象进行初始化,优先于构造函数执行
b) 和构造函数的区别:
i. 构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象进行初始化。 构造代码块中定义的是不同对象共性的初始化内容。
12. static关键字用于修饰成员(成员变量和成员函数)使其变为共享的数据或方法
a) static特点:
i. static修饰的成员被所有的对象所共享。
ii. static优先于对象存在,因为static的成员随着类的加载就已经存在了。
iii. static修饰的成员多了一种调用方式,可以直接被类名调用。类名.静态成员。
iv. static修饰的数据是共享数据,对象中存储的是特有数据。
b) 被修饰成员特点:
i. 随着类的加载而加载
ii. 优先于对象存在
iii. 被所有对象所共享
iv. 可以直接被类名调用
13. 存储位置的区别:
a) 成员变量存储在堆内存的对象中,所以也叫对象的特有数据。
b) 静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
14. 注意;
a) 静态方法中不可以写this,super关键字,因为静态先于对象操作
b) 有利有弊
i. 利处: 对对象共享的数据进行单独空间的存储,没有必要每个对象都存一份
ii. 弊端:
1. 生命周期过长
2. 访问出现局限性(静态虽好,只能访问静态)
15. 什么时候定义静态函数?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
16. 静态代码块:
a) 格式:static{ 内容 } 随着类的加载而执行,只执行一次,并优先于主函数
b) 对象初始化的顺序: 静态代码块——>静态主函数——>构造代码块——>构造函数
17. 实例化对象的过程
a) 因为new用到了Person.class,所以会先找到Person.class文件并加载到内存中
b) 执行该类中的static代码块,如果有的话,给Person.class类进行初始化
c) 在堆内存中开辟空间,分配内存地址
d) 在堆内存中建立对象的特有属性,并进行默认初始化(name=null age=0 country=null)
e) 对属性进行显示初始化(也就是属性初始化,如果没有赋值就是默认初始化的值 name=null age=0 country=”cn”)
f) 对对象进行构造代码块初始化
g) 对对象进行对应的构造函数初始化
h) 将内存地址赋给栈内存中的p变量
18. 单例设计模式 实际应用中常用饿汉式,其在多线程中比较安全,懒汉式主要是面试考察多
a) 饿汉式:Single类一进内存,就已经创建好了对象 将构造函数私有化; 在类中创建一个本类对象; 提供一个公共的访问方法,可以获取到该类对象private finla static Single single =new Single();
b) 单例设计模式之懒汉式 对象是方法被调用时才初始化,也叫对象的延时加载Single类进内存,对象还没有存在,只有调用了getInstanc()e方法时,才建立对象。

评分

参与人数 1黑马币 +2 收起 理由
万合天宜 + 2 不错~

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马