类的基本概念
我们暂时将类看作函数的容器,在某些情况下,类也确实只是函数的容器,但类更多表示的是自定义数据类型。
自定义数据类型的角度介绍类。
函数容器
我们看个例子——Java API中的类Math,它里面主要包含了若干数学函数
要使用这些函数,直接在前面加Math.即可,例如Math.abs(-1)返回1。这些函数都有相同的修饰符:public static。
static表示类方法,也叫静态方法,与类方法相对的是实例方法。实例方法没有static修饰符,必须通过实例或者对象调用,而类方法可以直接通过类名进行调用,不需要创建实例。public表示这些函数是公开的,可以在任何地方被外部调用。
Math类的常用函数
与public相对的是private。如果是private,则表示私有,这个函数只能在同一个类内被别的函数调用,而不能被外部的类调用。在Math类中,有一个函数Random initRNG()就是private的,这个函数被public的方法random()调用以生成随机数,但不能在Math类以外的地方被调用。
将函数声明为private可以避免该函数被外部类误用,调用者可以清楚地知道哪些函数是可以调用的,哪些是不可以调用的。
类实现者通过private函数封装和隐藏内部实现细节,而调用者只需要关心public就可以了。可以说,通过private封装和隐藏内部实现细节,避免被误操作,是计算机程序的一种基本思维方式。
除了Math类,我们再来看一个例子Arrays。Arrays里面包含很多与数组操作相关的函数,表3-2列出了其中一些。
Arrays类的一些函数
这里将类看作函数的容器,更多的是从语言实现的角度看,从概念的角度看,Math和Arrays也可以看作自定义数据类型,分别表示数学和数组类型,其中的public static函数可以看作类型能进行的操作。接下来更为详细地讨论自定义数据类型。
自定义数据类型
我们将类看作自定义数据类型,所谓自定义数据类型就是除了8种基本类型以外的其他类型,用于表示和处理基本类型以外的其他数据。一个数据类型由其包含的属性以及该类型可以进行的操作组成,属性又可以分为是类型本身具有的属性,还是一个具体实例具有的属性,同样,操作也可以分为是类型本身可以进行的操作,还是一个具体实例可以进行的操作。
这样,一个数据类型就主要由4部分组成:
·类型本身具有的属性,通过类变量体现。
·类型本身可以进行的操作,通过类方法体现。
·类型实例具有的属性,通过实例变量体现。
·类型实例可以进行的操作,通过实例方法体现。
不过,对于一个具体类型,每一个部分不一定都有,Arrays类就只有类方法。类变量和实例变量都叫成员变量,也就是类的成员,类变量也叫静态变量或静态成员变量 。类方法和实例方法都叫成员方法,也都是类的成员,类方法也叫静态方法 。
想要了解更多Java基础知识,点击下方链接和小编一起学习java吧,此视频教程为初学者而著,零基础入门篇!