黑马程序员--Java基础学习第五天

面向对象程序设计(Object Oriented Programming,OOP)是基于对象概念的软件设计方法。在面向对象概念中,类是数据和对数据操作的封装体,类具有封装性、继承性、多态性和抽象性。面向对象设计中,把具有属性和行为能力的实体称为对象。

一、类

1、类(class)是数据以及对数据的一组操作的封装体。类中的数据称为成员变量,类中对数据的操作称为成员方法(method),成员变量和成员方法统称为类的成员(member)。成员变量反映类的状态和特征,成员方法表示类的行为能力。

2、声明类

类声明格式如下:

[修饰符] class 类名<泛型> [extends 父类] [implements 接口列表]

类的修饰符有public访问权限、abstract抽象类、final最终类。

Java约定类名标识符首字母大写。

3、声明成员变量和成员方法

(1)成员变量声明格式如下:

[修饰符] 数据类型 变量名 [=表达式] [,变量名] [=表达式];

(2)成员方法声明格式如下:

[修饰符] 返回值类型 方法名 ([参数列表]) [throws 异常类]

{

       语句序列;

       [return [返回值] ];

}

(3)<修饰符>是一些说明成员属性的关键字,包括访问权限public、protected、private以及静态成员static、最终方法和最终变量final等。

(4)成员方法重载(reload)

一个类中可以有多个同名的成员方法,前提是参数列表必须不同,称为类的成员方法重载,重载的多个方法为一种功能提供多种实现(编译时多态)。重载方法之间必须以不同的参数类型、参数个数、参数的次序来区别。

二、对象

对象(object)是类的实例(instance),即类的取值。

1、声明对象

声明对象的格式如下:

类对象

声明对象仅仅说明了对象所属的类,必须通过赋值才能使对象获得实例。

2、创建实例

使用new运算符可调用类的一个构造方法,创建该类的一个实例,为实例分配内存空间并初始化,再将该实例赋值给一个对象,语法格式如下:

对象 = new 类的构造函数([参数列表])

3、引用对象的成员变量和成员方法

对象获得一个实例后,就可以使用点运算符“.”引用对象中的成员变量和调用成员方法,语法格式如下:

对象.成员变量

对象.成员方法([参数列表])

4、对象的引用模型

Java的类是引用数据类型,两个对象之间的赋值是引用赋值,对象赋值过程中没有创建新的实例。

5、对象的关系运算与比较相等

使用关系运算符==、!=可比较两个对象是否引用同一个实例。其他关系运算符<、<=、>、>=不能用于比较对象,Java不支持C++的运算符重载功能。

三、类的封装性

封装()是面向对象的重要概念之一,是面向对象程序设计中信息隐藏思想的具体实现技术。类的封装包含两种含义:第一,将数据和对数据的操作组合起来构成类,对象是一个不可分割的独立单位;第二,实现信息隐藏,类既要提供与外部联系的方法,又要尽可能的隐藏实现细节。

Java提供构造函数、析构函数、方法重载、设置访问控制权限等措施对类进行封装。

四、构造方法

类的构造方法()用于创建类的一个实例并对实例的成员变量进行初始化。构造函数与类中成员方法的不同之处是:构造方法与类同名;构造方法通过new运算符调用。

1、声明及调用构造方法

一个类可声明多个构造方法对成员变量进行不同需求的初始化,构造方法不需要写返回值类型,因为它返回的就是该类的一个实例。

2、默认构造方法

当一个类没有声明构造方法时,Java自动为该类提供一个无参数的默认构造方法,对各个成员变量按其数据类型进行初始化,整数、浮点数、字符、布尔和引用数据类型的初值分别为0、0.0、’\u0000’、false和null。

当一个类声明了构造方法,Java不再提供默认构造方法。

3、拷贝构造方法

一个类的构造方法,如果其参数是该类对象,称为拷贝构造方法,它将创建的新对象初始化为形式参数的实例值,实现对象的复制功能。Java不提供默认拷贝构造方法。

4、构造方法重载

Java支持构造方法重载,重载的构造方法提供创建实例时的多种初始化方案。

五、this引用和instanceof对象运算符

1、this引用有3种用法

(1)指代对象本身

this用于指代调用成员方法的当前对象自身。

(2)访问本类的成员变量和成员方法

使用this引用当前对象的成员变量,调用当前对象的成员方法。

(3)调用本类重载的构造方法

this引用可用在重载的构造方法中,调用本类已定义的构造方法。在构造方法中,this()必须放在构造函数的第一行。不能使用this调用当前构造函数。

2、instanceof对象运算符

对象运算符instanceof判断一个对象所引用的实例是否属于指定类及其子类,运算结果是布尔类型。

六、构造代码块

格式如下:

{

       语句序列;

}

在类实例化对象时,构造代码块优先于构造函数执行。

七、访问控制

Java为类及其成员提供公有、保护、缺省和私有等多级控制权限,实现信息分级隐藏技术。访问控制权限也称为可见性。类有2中访问控制权限,类中成员有4种访问控制权限。

1、类的访问控制权限

类有2种访问控制权限:公有和缺省。公有权限使用public修饰符,可被所有类访问;缺省权限没有修饰符,可被当前包(当前文件夹)中的类访问。

一个源程序文件中可以声明多个类,但用public修饰的类只能有一个,且该类名必须与文件名相同。

2、类中成员的访问控制权限

一个类的所有成员都可被本类的代码访问。为了控制其他类的访问,类的成员有4种访问控制权限,说明如下。

(1)private声明私有成员,该成员仅能被当前类的成员访问。

(2)没有修饰符表示缺省权限,说明该成员能被当前类以及当前包中的其他类访问,也称在当前包中可见。

(3)protected声明保护成员,该成员能被当前类及其子类、或当前包中的其他类访问,也称在子类中可见。

(4)public声明公有成员,该成员可被所有类访问。

public等权限修饰符不能用于修饰方法体中的局部变量。因为局部变量的作用域仅限于当前方法,对其他类不可见,不存在其他类对它的访问。

posted on 2012-03-23 00:31  黑马程序员  阅读(273)  评论(0编辑  收藏  举报

导航