您的位置:首页 > 职场人生

黑马程序员--面向对象

2015-07-23 13:08 561 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

对象

1.1 面向对象的概念:

面向对象是相对于面向过程而言的,由执行者过渡到了指挥者。

下面具体的例子:

如:把大象放入冰箱中。

面向过程的步骤:

 打开冰箱-->放入大象-->关闭冰箱

 “打开”,“放入”,“关闭”我们可以理解为为具体的动作。在代码中体现的是函数或者方法。

面向对象的步骤:

 冰箱打开-->冰箱存储-->冰箱关闭

 三个动作都是以冰箱为主题的,我们只是指挥它执行了他自己的功能,在代码中我们就把这些功能封装成为了对象。

1.2 面向对象的开发、设计、特征:

开发:其实就是不断的找对象,建立对象,使用对象的过程。

设计:其实就是管理和维护对象的过程

特征:封装、继承、多态

2.1 类与对象的关系

类实现了对事物的功能和特性的描述。

对象是这类食物实际存在的个体。

形象的例子:图纸--->汽车

其中:图纸可以理解为类,汽车可以理解为对象,由此可见,一个类可以对应多个对象。

2.2 类的定义

类就是描述事物的属性和功能(行为)。

属性:对应类中的成员变量。

功能:对应类中的函数。

2.3 成员变量与局部变量的区别

成员变量:

1.定义在类中,整个类都可以访问。

2.随着对象的产生而建立(堆内存中分配一部分内存),随着对象的消失而消失。

3.有默认初始化值。

局部变量:

1.定义在函数、语句内等,只能在所属的区域访问。

2.存在于栈内存中,作用区域结束,释放内存。

3.局部变量没有初始化值。

2.4 匿名对象

匿名对象为对象的简化形式。

特点:对对象中的方法只调用了一次,可以作为实际参数进行传递。

如何理解:作为实际参数进行传递,即作为一个参数传给某个方法。在方法中可调用对象中的成员。

区分:基本数据类型参数及引用数据类型参数传递的区别

基本数据参数存在于栈内存中,作用区域为其方法区域,随方法的结束释放内存。

引用数据类型指向的堆内存中的数据,方法结束后堆内存没有马上结束,所以可以进行参数传递。

2.5 封装

定义:指隐藏对象的属性和细节,仅对外提供公共的访问方式。

好处:将变化隔离,便于使用,提高重用性,提高安全性。

原则:将不需要外界访问的内容都封装起来,对外提供方法访问。

关键字:private(私有)

1.私有只是封装的一种体现形式而已,即封装不是私有。

2.用于修饰成员(成员变量和成员函数),被私有的成员只能在本类中访问。

3.对私有的成员变量,对外提供setxxx和getxxx访问,提高了访问的安全性。

2.6 构造函数、构造代码块、静态代码块

构造函数:

特点:函数名于类名相同,不需要定义返回值类型,不用return语句。

注意:

1.一个类没有定义构造函数时,系统会默认定义一个空(类名(){})构造函数。

2.构造函数只在对象建立时调用一次,而一般函数可多次调用。

3.当分析事物时,事物本身就具备的特性或者行为,这定义在构造函数中。

构造代码块

特点:

1.对象一建立就运行,优先于构造函数

2.构造代码块给所有的对象进行初始化,而构造函数只给传入特定属性的对象初始化

静态代码块

随着类的加载而加载,只执行一次,优先于主函数,对类进行初始化。

2.7 静态(static)

用法:是一个修饰符,可修饰成员变量或成员函数,当被静态修饰后,可直接用类名调用。

特点:

1.随着类的加载而加载,消失而消失,主体是类不是对象;

2.有限与对象而存在;

3.被所有对象共存;

4.可以直接被类名调用。

使用注意事项:

1.静态方法只能访问静态成员,若要访问非静态成员需要建立对象后访问。

2.不能使用this、super关键字。

3.主函数是静态的。

静态的利弊

利:对共享且不需要改变的数据进行单独储存,节省存储空间(存储在方法区内存中),可以直接被类名调用。

弊:静态方法只能访问静态成员。

2.8 解析主函数

主函数是一个特殊的函数,作为程序的入口,可以直接被jvm(虚拟机)调用

public static void main(String[] args)

public: 代表主函数函数访问权限是最大的

static: 代表主函数是随着类的加载而存在的

void:   代表主函数没有集体的返回值类型

main:   不是关键字,但是特殊的单词,被jvm识别调用

String[] args: 传入的参数类型是字符串数组。

2.9 文档注释(index.html文件)

格式:

类开头:

/**

*对所建立的类进行功能描述

*@author 作者

*@version 版本

*/

方法开头:

/**

*对方法进行功能性描述

*@param 对接受数据类型进行描述

*@Return 若有返回值类型,对返回值类型进行描述。

*/

如果要对一个类进行文档化,该类必须是public的,私有方法不会再文档中体现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: