本帖最后由 徐鹏辰 于 2015-8-8 23:41 编辑
面向对象 面向过程是一种思想;强调的是功能行为。 面向对象就复杂事物简单化。将功能封装进对象,强调具备了功能的对象。 面向过程是面向对象的基础。 三大特征:封装,继承,多态。 类与对象的关系: 类:对现实生活中事物的描述 对象:对这类事物,实实在在存在的个体。 描述事物其实就是描述事物的属性和行为。 属性:对应类中的成员变量。 行为:对应类中的成员函数。 定义类就是在描述事物,在定义类中的成员(成员变量和成员函数)。 成员变量与局部变量 作用范围: 成员变量:作用于整个类中; 局部变量:作用于函数中,或者语句中,作用范围结束自动释放。 在内存中的位置: 成员变量:在堆内存中,因为对象的存在,才在内存中存在; 局部变量:存在栈内存中 初始化 成员变量:有默认初始化值 局部变量:没有默认初始化值 匿名对象 是对象的简化形式。 两种使用情况 当对对象方法仅进行一次调用的时; 匿名对象可以作为实际参数进行传递。 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。 好处:将变化隔离;便于使用;提高重用性;提高安全性。 封装原则: 将不需要对外提供的内容都隐藏起来。 把属性都隐藏,提供公共方法对其访问. private关键字: 是一个权限修饰符;用于修饰成员(成员变量和成员函数);被私有化的成员只在本类中有效。 将成员变量私有化,对外提供对应的set , get两种方法对其进行访问。提高对数据访问的安全性。 注意:封装不是私有,私有仅仅是封装的一种表现形式. 构造函数 特点: 1.函数名与类名相同; 2.不用定义返回值类型; 3.不可以写return语句 作用: 给对象进行初始化。 对象一建立就调用与之对应的构造函数. 注意: 1. 默认构造函数的特点。 2. 多个构造函数是以重载的形式存在的。 注: 当类中没有定义构造函数时,系统会默认的给该类加入一个空参数的构造函数, 方便对象进行初始化。 当在类中自定义了构造函数后,默认的构造函数就没有了。 构造函数与一般函数的区别 在写法上有不同; 在运行上,构造函数是在对象一建立就运行,给对象初始化; 一般函数是对象调用才执行,是给对象添加对象具备的功能。 运行次数上,一个对象建立,构造函数只运行一次; 一般函数可以被该对象调用多次。 什么时候定义构造函数? 在分析事物时,该事物存在就具备一些特性或者行为,那么就将这些内容定义在构造函数中。 还需判断构造函数是否有未知内容参与运算。 构造代码块 作用:给对象进行初始化。(对象共性初始化内容) 对象一建立就运行,而且优先于构造函数执行。 构造代码块与构造函数的区别 构造代码块是给所有对象进行统一初始化; 构造函数是给对应的对象初始化。 this关键字 用于区分局部变量和成员变量同名情况。 代表它所在函数所属对象的引用。简单的说,哪个对象在调用this所在的函数,this就代表哪个对象。 什么时候使用this关键字呢? 1.用于区分同名变量的情况,成员与局部同名时;2.用于构造函数间调用。 当定义类中功能时,该函数内需要用到调用该函数的对象时,就用this来代表。 构造函数间相互调用 构造函数间调用只能用this语句。 一般函数不能直接调用构造函数的,因为this语句不能应用在一般函数中的,只能应用在构造函数间。 this语句,只能定义在构造函数的第一行。因为初始化动作应该先执行。 Person(String name) { this.name=name } Person(String name, int age) { //this.name=name; this(name); this. age=age; }
|