1.1对象数组,对象指针
对象数组和对象指针
类实际是一种自定义数据类型,既然是一种数据类型,就可以用它来定义各种不同的变量(即对象)。对象数组就是用类定义的数组,它的每个元素都是对象。
也可以定义对象的指针,用指针指向类对象。对象指针与结构指针的访问方法相同,用“->”或“(*指针).”两种操作符访问其所指对象的成员。
1.2静态成员和静态变量
1、静态成员
java允许类的成员定义为静态成员。静态数据成员是属于类的,整个类只有一份拷贝,相当于类的全局变量,能够被该类的所有对象共用。
(1) 静态成员的声明:
在类数据成员的声明前加上关键字static,就将该成员指定成了静态成员数据。静态数据成员遵守public,private,protected访问权限的限制规则,形式如下:
Class x{
……
Static 类型 静态成员名;
……
}
(2) 静态成员的定义:
在类的声明中将数据成员指定为静态成员,只是一种声明,并不会为该成员分配内存空间,在使用之前应该对它进行定义,与类成员函数的定义方法一样,其定义形式如下:
类型 类名::静态成员名;
类型 类名::静态成员名=初始值;
注意:
在类外定义静态数据成员时,不能加上static限定词。
在定义静态数据成员时可以指定它的初始值(第2种定义形式),若定义时没有指定初始值,系统默认初始值为0。
原则上类的静态成员必须在类外定义,否则会出错。但在一些编译器中,若没有在类外进行静态数据成员的定义,它会在定义该类的第一个对象时定义相关的静态数据成员(即为所有的静态数据成员分配内存空间),并将这些静态数据成员初始化为0。
(3) 静态数据成员的访问:
静态成员属于整个类,如果将它定义为类的公有成员,在类外可用下面两种方式访问。
通过类名访问(这种访问方式是非静态成员不具有的):
类名::静态成员名;
通过对象访问:
对象名.静态成员名
静态数据成员的一种典型应用是用来统计相关类的对象个数。
1.3this指针
类的每个对象都有自己的数据成员,有多少个对象,就有多少分数据成员的拷贝。然而类的成员函数只有一份拷贝,不论多少个对象,都用以这份成员函数。那么对象是怎样公有这份成员函数的呢?换句话说,在程序运行过程中,成员函数怎样知道哪个对象在调用它,它应该处理哪个对象的数据成员呢?答案就是this指针。
静态成员,this指针
最新推荐文章于 2023-06-04 18:51:36 发布