黑马程序员--面向对象

------<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的,私有方法不会再文档中体现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值