黑马程序员----面向对象1

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------

1、理解面向对象

面向对象是相对面向过程而言的。

面向过程:强调的是功能行为。

面向对象:将功能封装进对象,强调具备了功能的对象。从执行者转变为指挥者。

面向对象有三个特征:封装、继承、多态。

以后的开发:其实就是找对象使用。没有对象,就创建一个对象。

面向对象其实就是:找对象,建立对象,使用对象,维护对象的关系。

类和对象的关系:

类:就是对现实生活中事物的描述。(提取对象中的共性内容,是对具体的抽象)

对象:就是这类事物,是一个实实在在存在的个体。(具体的)

映射到java中,描述就是class定义的类。而具体对象就是对应java在堆内存中用new建立的实体。

 

描述事物就是在描述事物的属性行为。属性对应类中的变量,行为对应类中的方法(函数)。属性和行为共同构成了类中的成员。

成员变量和局部变量:

成员变量作用于整个类中。存在堆内存中。

局部变量作用于函数中,或者语句中。存在栈内存中。

匿名对象:

使用方式一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简单。如:new Car().run();

使用方式二:可以讲匿名对象作为实际参数进行传递。

2、封装

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

优点:将变化隔离;便于使用;提高重用性;提高安全性。

原则:把属性都隐藏,提供公共方法对其访问。

private:私有,权限修饰符,用于修饰类中的成员(成员函数,成员变量)。私有只在本类中有效。

私有仅仅是封装的一种表现形式。

3、构造函数

对象一建立就会调用与之相应的构造函数。构造函数的作用:可以用于给对象进行初始化。

构造函数的小细节:当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数。然而,当在类中自定义了构造函数后,默认的构造函数就没有了。

构造函数和一般函数在写法上有所不同,在运行上也不同。构造函数是在对象一建立就运行,是给对象初始化。而一般方法是对象调用才执行,是给对象添加对象具有的功能。

一个对象建立,构造函数只运行一次,而一般方法可以被调用多次。

 特点:

a、函数名与类名相同

b、不用定义返回值类型

c、不可以写return语句

什么时候定义构造函数呢?

构造代码块:作用是给对象进行初始化,在对象一建立就运行,而且优先于构造函数执行。

构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象进行初始化。

构造代码块中定义的是不同对象共性的初始化内容。

4、this

this:代表它所在函数所属对象的引用。简单说:哪个对象在调用this所在的函数,this就代表哪个对象。

this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this表示这个对象。

this语句:用于构造函数之间互相调用。如:this(name);

this语句只能放在构造函数的第一行。因为初始化要先执行。

5、static

用法:是一个修饰符,用于修饰成员(成员变量、成员函数)。

当成员被静态修饰后,就多了一种调用方式,还可以直接被类名调用。

特点:

a、随着类的加载而加载。随着类的消失而消失,生命周期最长。

b、优先于对象存在。静态先存在,对象后存在。

c、被所有对象所共享

d、可以直接被类名所调用。

实例变量和类变量的区别:

a、存放位置:类变量随着类的加载而存在于方法区(共享区、静态区)中。实例变量随着对象的建立而存在于堆内存中。

b、生命周期

 静态使用注意:

a、静态方法只能访问静态成员。非静态方法既可以访问静态也可以访问非静态。

b、静态方法中不可以定义this,super关键字。因为静态优先于对象存在,所以静态方法中不可以出现this。

c、主函数是静态的。

优点:对对象的共享数据进行单独空间的存储,节省空间。

缺点:生命周期过长。访问出现局限性。(即静态方法访问不了非静态的)

什么时候使用静态?

a、什么时候定义静态变量呢?         

当对象中出现共享数据时,该数据应该被静态所修饰。对象中的特有数据要定义成非静态,存在于堆内存中。

b、什么时候定义静态函数呢?

当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义为静态的。

6、主函数

主函数是一个特殊的函数,作为程序的入口,可以被jvm调用。

主函数的定义:

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

static:代表主函数随类的加载就已经存在了。

void:主函数没有具体的返回值。

main:不是关键字,但是是一个特殊单词,可以被jvm识别。

(String args[])函数的参数:参数类型是一个数组。

主函数的格式固定,用于jvm识别。

7、帮助文档javadoc的制作

程序的说明书。java的说明书通过文档注释(/**     */)来完成。

/**

说明书

@author  张三

@version V1.1

*/
javadoc -d 存放文件目录 -author -version   java源文件

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值